1 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
3 Implement C++17 node extraction and insertion (P0083R5)
4 * doc/xml/manual/status_cxx2017.xml: Document status.
5 * doc/html/*: Regenerate.
6 * include/Makefile.am: Add bits/node_handle.h and reorder.
7 * include/Makefile.in: Regenerate.
8 * include/bits/hashtable.h (_Hashtable::node_type)
9 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
10 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
11 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
12 (_Hash_merge_helper): Define primary template.
13 * include/bits/node_handle.h: New header.
14 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
16 (map::node_type, map::insert_return_type, map::extract, map::merge)
17 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
19 (_Rb_tree_merge_helper): Specialize for map.
20 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
22 (multimap::node_type, multimap::extract, multimap::merge)
23 (multimap::insert(node_type&&))
24 (multimap::insert(const_iterator, node_type&&)): Define.
25 (_Rb_tree_merge_helper): Specialize for multimap.
26 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
28 (multiset::node_type, multiset::extract, multiset::merge)
29 (multiset::insert(node_type&&))
30 (multiset::insert(const_iterator, node_type&&)): Define.
31 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
33 (set::node_type, set::insert_return_type, set::extract, set::merge)
34 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
36 (_Rb_tree_merge_helper): Specialize for set.
37 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
38 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
39 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
40 (_Rb_tree::_M_reinsert_node_hint_unique)
41 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
42 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
43 (_Rb_tree_merge_helper): Specialize for multiset.
44 * include/bits/unordered_map.h (unordered_map): Declare
45 unordered_map<> and unordered_multimap<> as friends.
46 (unordered_map::node_type, unordered_map::insert_return_type)
47 (unordered_map::extract, unordered_map::merge)
48 (unordered_map::insert(node_type&&))
49 (unordered_map::insert(const_iterator, node_type&&))
50 (unordered_multimap): Declare _Hash_merge_helper as friend.
51 (unordered_multimap::node_type, unordered_multimap::extract)
52 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
53 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
54 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
55 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
56 Declare _Hash_merge_helper as friend.
57 (unordered_set::node_type, unordered_set::insert_return_type)
58 (unordered_set::extract, unordered_set::merge)
59 (unordered_set::insert(node_type&&))
60 (unordered_set::insert(const_iterator, node_type&&)): Define.
61 (unordered_multiset::node_type, unordered_multiset::extract)
62 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
63 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
64 (_Hash_merge_helper): Specialize for unordered sets and multisets.
65 * include/debug/map.h (map): Add using declarations or forwarding
66 functions for new members.
67 * include/debug/map.h (multimap): Likewise.
68 * include/debug/map.h (multiset): Likewise.
69 * include/debug/map.h (set): Likewise.
70 * include/debug/unordered_map (unordered_map, unordered_multimap):
72 * include/debug/unordered_set( unordered_set, unordered_multiset):
74 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
76 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
77 (StdNodeHandlePrinter): Define printer for node handles.
78 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
79 * testsuite/23_containers/map/modifiers/extract.cc: New.
80 * testsuite/23_containers/map/modifiers/merge.cc: New.
81 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
82 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
83 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
84 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
85 * testsuite/23_containers/set/modifiers/extract.cc: New.
86 * testsuite/23_containers/set/modifiers/merge.cc: New.
87 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
88 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
89 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
91 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
92 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
94 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
95 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
96 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
97 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
99 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
101 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
103 Fix tests on old arm platforms for optional.
104 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
106 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
108 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
109 recent change to _Variant_storage.
110 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
113 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
114 std::forward and ::new. Cast pointer to void*.
115 * include/std/variant (_Variant_storage, _Union, _Variant_base)
116 (__access, __visit_invoke, variant, visit): Qualify std::forward.
117 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
119 2016-09-22 Tim Shen <timshen@google.com>
121 * include/std/variant (variant::operator=): Fix assignment
123 * testsuite/20_util/variant/compile.cc: Add test.
125 2016-09-22 Tim Shen <timshen@google.com>
128 * include/std/variant (_Variant_storage::_Variant_storage):
129 Change _Variant_storage's union to be default constructible.
130 * testsuite/20_util/variant/compile.cc: New test.
132 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
135 * include/std/optional (__is_optional_impl, __is_optional): Remove.
136 (__converts_from_optional, __assigns_from_optional): New.
137 (optional(_Up&&)): Use is_same instead of __is_optional.
138 (optional(const optional<_Up>&)): Constrain with
139 __converts_from_optional.
140 (optional(optional<_Up>&&)): Likewise.
141 (operator=(_Up&&)): Use is_same instead of __is_optional, check
142 is_same and is_scalar.
143 (operator=(const optional<_Up>&)): Constrain with
144 __converts_from_optional and __assigns_from_optional.
145 (operator=(optional<_Up>&&)): Likewise.
146 * testsuite/20_util/optional/77288.cc: New.
147 * testsuite/20_util/optional/cons/value.cc: Adjust.
149 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
151 Implement LWG 2729 for tuple.
152 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
153 Suppress conditionally.
154 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
155 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
156 (_Tuple_impl(const _Head&)): Constrain.
157 (_Tuple_impl(_UHead&&)): Likewise.
158 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
159 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
160 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
161 (operator=(const tuple&)): Enable conditionally.
162 (operator=(tuple&&)): Suppress conditionally.
163 (operator=(const tuple<_UElements...>&)): Constrain.
164 (operator=(tuple<_UElements...>&&)): Likewise.
165 (operator=(const tuple&)): Enable conditionally (2-param tuple).
166 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
167 (operator=(const tuple<_U1, _U2>&)): Constrain.
168 (operator=(tuple<_U1, _U2>&&)): Likewise.
169 (operator=(const pair<_U1, _U2>&)): Likewise.
170 (operator=(pair<_U1, _U2>&&)): Likewise.
171 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
172 * testsuite/20_util/tuple/tuple_traits.cc: New.
174 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
177 Implement LWG 2729 for pair.
178 * include/bits/stl_pair.h (_PCC): New.
179 (_ConstructiblePair, _ImplicitlyConvertiblePair):
180 Turn into static member functions of _PCC.
181 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
183 (pair(const _T1&, const _T2&)): Adjust.
185 (pair(const pair<_U1, _U2>&)): Adjust.
186 (pair(_U1&&, const _T2&)): Likewise.
187 (pair(const _T1&, _U2&&)): Likewise.
188 (pair(_U1&&, _U2&&)): Likewise.
189 (pair(pair<_U1, _U2>&&)): Likewise.
190 (operator=(const pair&)): Make conditionally deleted.
191 (operator=(pair&&)): Make conditionally suppressed.
192 (operator=(const pair<_U1, _U2>&)): Constrain.
193 (operator=(pair<_U1, _U2>&&): Likewise.
194 * include/std/type_traits (__nonesuch): New.
195 * testsuite/20_util/pair/traits.cc: New.
197 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
200 * include/bits/stl_construct.h: (_Construct_novalue): New.
201 (_Destroy_n_aux, _Destroy_n): New.
202 * include/bits/stl_uninitialized.h: (type_traits):
203 New include in C++11 mode.
204 (__uninitialized_default_novalue_1): New.
205 (__uninitialized_default_novalue_n_1): Likewise.
206 (__uninitialized_default_novalue): Likewise.
207 (__uninitialized_default_novalue_n): Likewise.
208 (__uninitialized_copy_n_pair): Likewise.
209 (uninitialized_default_construct):
210 Use __uninitialized_default_novalue.
211 (uninitialized_default_construct_n):
212 Use __uninitialized_default_novalue_n.
213 (uninitialized_value_construct): Use __uninitialized_default.
214 (uninitialized_value_construct_n): Use __uninitialized_default_n.
215 (uninitialized_move): Use uninitialized_copy.
216 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
217 (destroy_at): Use _Destroy.
219 (destroy_n): Likewise.
220 * testsuite/20_util/specialized_algorithms/
221 memory_management_tools/1.cc: Add tests for exceptions,
222 add tests for trivial cases for construct and move.
224 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
226 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
227 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
229 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
232 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
233 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
234 division to int to work with Python 3.
236 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
238 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
239 display_hint to be set by subclasses.
240 (StdVariantPrinter): Use array for display_hint. Adjust output to be
241 more similar to std::any and std::optional output.
242 (register_type_printers): Add type printers for basic_string_view
243 typedefs and experimental::any. Adjust type printers for
244 fundamentals_v1 templates to match fundamentals_v2 and later.
245 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
248 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
250 (ListWorkerBase.get_value_from_node): Define new method.
251 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
253 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
255 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
256 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
257 Register for C++17 components in namespace std. Strip inline namespace
260 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
262 * doc/xml/manual/profile_mode.xml: Fix typo.
263 * doc/html/manual/profile_mode_devel.html: Regenerate.
265 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
266 Marc Glisse <marc.glisse@inria.fr>
268 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
269 (operator new(size_t, align_val_t)): Replace modulus operator with
272 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
274 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
275 Increase alignment if less than sizeof(void*).
276 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
277 Increase size if not a multiple of alignment.
279 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
281 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
282 * doc/html/*: Regenerate.
284 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
286 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
288 2016-09-14 Marek Polacek <polacek@redhat.com>
290 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
293 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
295 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
296 Move dg-do directive before dg-skip.
297 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
298 Move dg-do directive before dg-require.
299 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
300 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
301 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
302 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
303 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
304 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
305 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
306 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
307 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
308 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
309 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
310 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
311 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
312 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
313 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
315 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
316 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
317 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
318 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
319 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
321 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
323 Implement P0040R3, Extending memory management tools.
324 * include/bits/stl_uninitialized.h (utility): New include
326 (uninitialized_default_construct): New.
327 (uninitialized_default_construct_n): Likewise.
328 (uninitialized_value_construct): Likewise.
329 (uninitialized_value_construct_n): Likewise.
330 (uninitialized_move): Likewise.
331 (uninitialized_move_n): Likewise.
332 (destroy_at, destroy, destroy_n): Likewise.
333 * testsuite/20_util/specialized_algorithms/memory_management_tools/
336 2016-09-12 Jason Merrill <jason@redhat.com>
338 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
340 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
342 Implement P0253R1, Fixing a design mistake in the searchers
343 interface in Library Fundamentals.
344 * include/std/functional: (utility): New include in C++17 mode.
345 (default_searcher): Use a pair as return type, adjust the definition.
346 (boyer_moore_searcher): Likewise.
347 (boyer_moore_horspool_searcher): Likewise.
348 * testsuite/20_util/function_objects/searchers.cc: Adjust.
350 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
352 Implement C++17 string searchers.
353 * include/std/functional: (unordered_map, vector): New includes
355 (array, bits/stl_algo.h): Likewise.
356 (default_searcher, __boyer_moore_map_base): New.
357 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
358 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
359 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
360 (make_boyer_moore_searcher): Likewise.
361 (make_boyer_moore_horspool_searcher): Likewise.
362 * testsuite/20_util/function_objects/searchers.cc: New.
364 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
366 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
367 Move dg-do directive before dg-require.
368 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
369 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
371 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
372 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
373 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
374 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
375 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
376 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
377 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
378 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
379 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
380 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
381 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
382 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
383 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
385 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
387 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
388 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
389 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
391 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
393 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
395 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
397 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
399 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
401 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
403 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
405 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
407 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
409 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
411 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
413 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
415 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
417 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
419 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
421 * testsuite/23_containers/forward_list/debug/
422 iterator_self_move_assign_neg.cc: Likewise.
423 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
425 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
427 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
429 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
431 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
433 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
435 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
437 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
439 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
440 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
441 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
442 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
443 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
444 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
445 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
446 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
447 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
448 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
449 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
451 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
452 * testsuite/23_containers/map/debug/60499.cc: Likewise.
453 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
454 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
455 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
456 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
457 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
458 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
459 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
461 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
462 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
463 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
464 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
465 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
466 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
467 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
468 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
469 * testsuite/23_containers/multimap/debug/
470 iterator_self_move_assign_neg.cc: Likewise.
471 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
473 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
474 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
475 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
476 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
477 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
478 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
479 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
480 * testsuite/23_containers/multiset/debug/
481 iterator_self_move_assign_neg.cc: Likewise.
482 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
484 * testsuite/23_containers/set/debug/60499.cc: Likewise.
485 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
486 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
487 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
488 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
489 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
490 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
491 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
493 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
494 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
495 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
496 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
497 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
499 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
500 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
501 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
503 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
505 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
507 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
508 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
509 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
510 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
511 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
512 * testsuite/23_containers/unordered_map/debug/
513 invalid_local_iterator_compare_neg.cc: Likewise.
514 * testsuite/23_containers/unordered_map/debug/
515 invalid_local_iterator_range_neg.cc: Likewise.
516 * testsuite/23_containers/unordered_map/debug/
517 iterator_self_move_assign_neg.cc: Likewise.
518 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
520 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
522 * testsuite/23_containers/unordered_map/debug/
523 use_erased_local_iterator_neg.cc: Likewise.
524 * testsuite/23_containers/unordered_map/debug/
525 use_invalid_iterator_neg.cc: Likewise.
526 * testsuite/23_containers/unordered_map/debug/
527 use_invalid_local_iterator_neg.cc: Likewise.
528 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
529 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
531 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
533 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
535 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
537 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
539 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
541 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
543 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
545 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
547 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
549 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
551 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
553 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
555 * testsuite/23_containers/unordered_multimap/debug/
556 invalid_local_iterator_compare_neg.cc: Likewise.
557 * testsuite/23_containers/unordered_multimap/debug/
558 invalid_local_iterator_range_neg.cc: Likewise.
559 * testsuite/23_containers/unordered_multimap/debug/
560 iterator_self_move_assign_neg.cc: Likewise.
561 * testsuite/23_containers/unordered_multimap/debug/
562 max_load_factor_neg.cc: Likewise.
563 * testsuite/23_containers/unordered_multimap/debug/
564 self_move_assign_neg.cc: Likewise.
565 * testsuite/23_containers/unordered_multimap/debug/
566 use_erased_local_iterator_neg.cc: Likewise.
567 * testsuite/23_containers/unordered_multimap/debug/
568 use_invalid_iterator_neg.cc: Likewise.
569 * testsuite/23_containers/unordered_multimap/debug/
570 use_invalid_local_iterator_neg.cc: Likewise.
571 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
573 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
575 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
577 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
579 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
581 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
583 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
585 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
587 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
589 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
591 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
593 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
595 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
597 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
599 * testsuite/23_containers/unordered_multiset/debug/
600 invalid_local_iterator_compare_neg.cc: Likewise.
601 * testsuite/23_containers/unordered_multiset/debug/
602 invalid_local_iterator_range_neg.cc: Likewise.
603 * testsuite/23_containers/unordered_multiset/debug/
604 iterator_self_move_assign_neg.cc: Likewise.
605 * testsuite/23_containers/unordered_multiset/debug/
606 max_load_factor_neg.cc: Likewise.
607 * testsuite/23_containers/unordered_multiset/debug/
608 self_move_assign_neg.cc: Likewise.
609 * testsuite/23_containers/unordered_multiset/debug/
610 use_erased_local_iterator_neg.cc: Likewise.
611 * testsuite/23_containers/unordered_multiset/debug/
612 use_invalid_iterator_neg.cc: Likewise.
613 * testsuite/23_containers/unordered_multiset/debug/
614 use_invalid_local_iterator_neg.cc: Likewise.
615 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
616 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
617 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
618 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
620 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
621 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
622 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
624 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
626 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
628 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
629 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
630 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
631 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
632 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
633 * testsuite/23_containers/unordered_set/debug/
634 invalid_local_iterator_compare_neg.cc: Likewise.
635 * testsuite/23_containers/unordered_set/debug/
636 invalid_local_iterator_range_neg.cc: Likewise.
637 * testsuite/23_containers/unordered_set/debug/
638 iterator_self_move_assign_neg.cc: Likewise.
639 * testsuite/23_containers/unordered_set/debug/
640 max_load_factor_neg.cc: Likewise.
641 * testsuite/23_containers/unordered_set/debug/
642 self_move_assign_neg.cc: Likewise.
643 * testsuite/23_containers/unordered_set/debug/
644 use_erased_local_iterator_neg.cc: Likewise.
645 * testsuite/23_containers/unordered_set/debug/
646 use_invalid_iterator_neg.cc: Likewise.
647 * testsuite/23_containers/unordered_set/debug/
648 use_invalid_local_iterator_neg.cc: Likewise.
649 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
650 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
651 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
652 * testsuite/23_containers/vector/debug/
653 iterator_self_move_assign_neg.cc: Likewise.
654 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
656 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
657 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
658 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
659 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
660 * testsuite/29_atomics/atomic/60658.cc: Likewise.
661 * testsuite/29_atomics/atomic/60695.cc: Likewise.
662 * testsuite/29_atomics/atomic/62259.cc: Likewise.
663 * testsuite/29_atomics/atomic/64658.cc: Likewise.
664 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
665 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
666 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
669 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
671 * libsupc++/new_opant.cc: Include exception_defines.h.
672 * libsupc++/new_opvant.cc: Likewise.
674 2016-09-09 Jason Merrill <jason@redhat.com>
676 Implement P0035R4, C++17 new of over-aligned types.
677 * libsupc++/new: Declare aligned new/delete operators.
678 * config/abi/pre/gnu.ver: Export them.
679 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
681 * libsupc++/new_opa.cc: New.
682 * libsupc++/new_opant.cc: New.
683 * libsupc++/new_opva.cc: New.
684 * libsupc++/new_opva.cc: New.
685 * libsupc++/del_opa.cc: New.
686 * libsupc++/del_opant.cc: New.
687 * libsupc++/del_opsa.cc: New.
688 * libsupc++/del_opva.cc: New.
689 * libsupc++/del_opvant.cc: New.
690 * libsupc++/del_opvsa.cc: New.
691 * libsupc++/Makefile.am: Build them.
693 2016-09-05 Tim Shen <timshen@google.com>
695 * include/std/variant: include bits/move.h for std::addressof.
697 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
699 * include/std/variant (_Variant_storage::_M_storage()): Use
700 std::addressof instead of operator& to take address.
702 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
704 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
705 setrlimit on both native and cross targets.
706 * configure: Regenerate.
708 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
710 * include/bits/shared_ptr.h (_Assignable): New alias template.
711 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
712 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
713 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
715 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
716 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
717 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
718 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
720 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
721 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
723 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
725 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
726 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
727 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
728 expected errors. Remove unnecessary code.
729 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
731 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
733 * testsuite/23_containers/set/move_comparison.cc: New test.
735 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
738 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
741 * include/std/type_traits (is_constructible): Forward-declare...
742 (__is_base_to_derived_ref): ...and use here.
743 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
744 * testsuite/20_util/is_constructible/77395.cc: New.
745 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
746 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
748 * testsuite/20_util/tuple/77395.cc: New.
750 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
752 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
753 directive above dg-require-namedlocale directive.
754 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
755 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
756 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
757 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
758 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
760 2016-08-27 Tim Shen <timshen@google.com>
763 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
764 _M_expression_term): Modify to support dash literal.
765 * include/bits/regex_scanner.h: Add dash as a token type to make
766 a different from the mandated dash literal by escaping.
767 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
768 token in bracket expression parsing.
769 * testsuite/28_regex/regression.cc: Add new testcases.
771 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
774 * doc/xml/manual/intro.xml: Document DR 2127 change.
775 * doc/html/*: Regenerate.
776 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
777 (operator++(), operator++(int)): Use injected class name.
778 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
780 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
781 using -std in dg-options.
783 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
784 Pedro Alves <palves@redhat.com>
786 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
787 and restore dg-interpreter-batch-mode.
788 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
789 gdb-dg-runtest instead of dg-runtest.
790 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
792 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
794 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
795 precise patterns for basic_string constructors.
796 (GLIBCXX_3.4.23): Export new constructors.
797 * doc/xml/manual/intro.xml: Document LWG 2583 status.
798 * doc/html/*: Regenerate.
799 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
800 (basic_string(const basic_string&, size_type, const Alloc&)): Add
801 new constructor for LWG 2583.
802 (basic_string(const basic_string&, size_type, size_type)): Remove
804 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
805 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
806 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
807 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
809 2016-08-24 Aditya Kumar <hiraditya@msn.com>
811 * include/bits/algorithmfwd.h: Remove trailing whitespace.
812 * include/bits/shared_ptr_base.h: Likewise.
814 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
816 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
817 * include/profile/array (array): Likewise.
818 (array::swap): Fix exception specification for zero-sized arrays.
821 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
822 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
823 * testsuite/23_containers/map/77334.cc: New test.
825 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
826 * doc/html/*: Regenerate.
828 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
829 * testsuite/experimental/feat-lib-fund.cc: Likewise.
832 * include/bits/stl_iterator.h
833 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
834 define for C++98 mode.
835 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
836 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
838 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
839 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
840 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
841 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
843 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
844 difference operator for C++98.
845 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
847 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
848 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
849 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
850 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
851 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
853 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
854 _GLIBCXX14_CONSTEXPR.
855 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
856 * include/std/array (array::begin, array::end, array::rbegin)
857 (array::rend, array::cbegin, array:cend, array::crbegin)
858 (array::crend, array::operator[], array::at, array::front)
859 (array::back, array::data): Likewise.
860 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
861 with separate tests for C++11, C++14, and C++17.
862 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
863 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
864 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
866 2016-08-22 Tim Shen <timshen@google.com>
868 Split _M_dfs() into smaller functions.
869 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
870 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
871 (_M_handle_line_end_assertion, _M_handle_word_boundary)
872 (_M_handle_subexpr_lookahead, _M_handle_match)
873 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
874 Add separate function declarations.
875 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
877 2016-08-22 Gleb Natapov <gleb@scylladb.com>
880 * config/abi/pre/gnu-versioned-namespace.ver: Export
881 __cxa_init_primary_exception and std::exception_ptr(void*).
882 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
883 export __cxa_init_primary_exception and std::exception_ptr(void*).
884 * include/Makefile.am: Add new headers.
885 * include/Makefile.in: Regenerate.
886 * libsupc++/Makefile.am: Add new headers.
887 * libsupc++/Makefile.in: Regenerate.
888 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
889 * libsupc++/cxxabi_init_exception.h: New header.
890 (__cxa_init_primary_exception): Declare.
891 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
892 (__cxa_throw): Use __cxa_init_primary_exception.
893 * libsupc++/exception (std::exception): Move to ...
894 * libsupc++/exception.h: New header.
895 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
897 (__exception_ptr::__dest_thunk): New function template.
898 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
899 Use __cxa_allocate_exception and __cxa_init_primary_exception to
900 create exception_ptr.
901 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
902 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
904 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
906 * doc/xml/api.xml: Replace hardcoded links for specific versions with
907 link to docs for all releases.
908 * doc/html/*: Regenerate.
911 * doc/xml/manual/intro.xml: Document DR 2062 change.
912 * include/std/functional (function::swap): Add noexcept.
913 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
914 * testsuite/20_util/function/77322.cc: New test.
916 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
918 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
919 *-*-solaris* instead of -pthreads.
920 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
921 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
922 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
923 * testsuite/23_containers/list/pthread1.cc: Likewise.
924 * testsuite/23_containers/list/pthread5.cc: Likewise.
925 * testsuite/23_containers/map/pthread6.cc: Likewise.
926 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
927 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
928 * testsuite/30_threads/shared_mutex/*: Likewise.
929 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
930 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
931 default_weaktoshared.cc: Likewise.
932 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
933 mutex_weaktoshared.cc: Likewise.
934 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
935 dg-require-effective-target instead of using -std option.
936 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
938 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
939 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
941 * testsuite/30_threads/async/*: Likewise.
942 * testsuite/30_threads/call_once/*: Likewise.
943 * testsuite/30_threads/condition_variable/*: Likewise.
944 * testsuite/30_threads/condition_variable_any/*: Likewise.
945 * testsuite/30_threads/future/*: Likewise.
946 * testsuite/30_threads/lock/*: Likewise.
947 * testsuite/30_threads/mutex/*: Likewise.
948 * testsuite/30_threads/packaged_task/*: Likewise.
949 * testsuite/30_threads/promise/*: Likewise.
950 * testsuite/30_threads/recursive_mutex/*: Likewise.
951 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
952 * testsuite/30_threads/shared_future/*: Likewise.
953 * testsuite/30_threads/shared_lock/*: Likewise.
954 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
955 * testsuite/30_threads/this_thread/*: Likewise.
956 * testsuite/30_threads/thread/*: Likewise.
957 * testsuite/30_threads/timed_mutex/*: Likewise.
958 * testsuite/30_threads/try_lock/*: Likewise.
959 * testsuite/30_threads/unique_lock/*: Likewise.
961 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
962 * doc/html/*: Regenerate.
963 * include/experimental/functional (_Not_fn, not_fn): Match C++17
965 * include/std/functional (_Not_fn, not_fn): Define for C++17.
966 * testsuite/20_util/not_fn/1.cc: New.
967 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
968 Remove test for volatile-qualified wrapper.
970 * include/std/atomic (atomic::is_always_lock_free): Define.
971 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
972 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
973 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
974 * doc/xml/manual/status_cxx2017.xml: Update status.
975 * doc/html/*: Regenerate.
977 * include/experimental/tuple (apply): Qualify call to __apply_impl.
978 * include/std/tuple (apply): Likewise.
979 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
981 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
982 * testsuite/experimental/type_traits/value.cc: Likewise.
984 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
986 * doc/html/*: Regenerate.
988 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
990 Implement the latest proposed resolution of LWG 2756.
991 * include/std/optional (Optional_base(const _Tp&))
992 (Optional_base(_Tp&&), using _Base::_Base): Remove.
993 (optional(nullopt_t)): New.
994 (optional(_Up&&)): Invoke base directly with in_place
995 rather than creating a temporary, add default template
996 argument, change constraints.
997 (optional(const optional<_Up>&)): Invoke base directly
998 with in_place, remove unnecessary constraints.
999 (optional(optional<_Up>&& __t)): Likewise.
1000 (optional(in_place_t, _Args&&...)): New.
1001 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1002 (operator=(_Up&&)): Add default template argument, change constraints.
1003 (operator=(const optional<_Up>&)): Put is_same first in the
1005 (operator=(optional<_Up>&&)): Likewise.
1006 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1007 verify assignment from something that can't be perfect-forwarded.
1008 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1009 that a nested optional is disengaged when constructed
1010 from a disengaged element type, and to verify that assignments
1011 from an engaged element type engage the optional.
1013 2016-08-18 Tim Shen <timshen@google.com>
1017 * include/Makefile.am: Add new file std/variant.
1018 * include/Makefile.in: Generated from Makefile.am.
1019 * include/bits/enable_special_members.h: Add a tag type to allow
1020 the construction in non-default constructor.
1021 * include/bits/uses_allocator.h: Add convenience traits to
1022 detect constructibility.
1023 * include/std/variant: Implement <variant>.
1024 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1025 * testsuite/20_util/variant/run.cc: Runtime tests.
1027 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1029 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1030 (test.new_tests): Rewrite section.
1031 (tests.dg.directives): New section.
1032 * doc/html/*: Regenerate.
1034 * doc/xml/manual/test.xml: Improve documentation of test targets.
1035 Document new-abi-baseline, check-debug, and check-parallel targets.
1037 * doc/xml/manual/build_hacking.xml: New section on shared library
1040 * doc/xml/manual/build_hacking.xml: Improve markup.
1041 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1043 * doc/xml/faq.xml: Change link text to "Testing".
1045 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1046 dg-options directive.
1048 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1050 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1051 directive and use effective target instead of dg-options.
1053 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1054 instead of -std in dg-options.
1055 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1056 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1057 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1058 * testsuite/20_util/hash/quality.cc: Likewise.
1059 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1060 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1061 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1062 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1063 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1064 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1066 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1067 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1068 * testsuite/27_io/rvalue_streams.cc: Likewise.
1070 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1072 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1073 Remove duplicate dg-options directive.
1075 * testsuite/ext/profile/all.cc: Use effective target instead of
1076 -std=gnu++11. Use dg-additional-options instead of repeating options.
1078 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1079 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1080 instead of dg-excess-errors.
1082 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1084 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1085 * testsuite/experimental/ratio/value.cc: Likewise.
1086 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1088 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1089 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1090 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1091 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1092 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1093 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1094 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1095 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1096 * testsuite/tr1/5_numerical_facilities/special_functions/
1097 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1098 C++17 compatibility.
1100 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1101 expected signatures for C++14 compatibility.
1104 * include/bits/basic_string.h (operator=(__sv_type)
1105 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1106 (replace(size_type, size_type, __sv_type))
1107 (replace(const_iterator, const_iterator, __sv_type))
1108 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1109 (compare(size_type, size_type, __sv_type)): Reformat.
1110 (_If_sv): Define helper for SFINAE constaints.
1111 (append(const _Tp&, size_type, size_type))
1112 (assign(const _Tp&, size_type, size_type))
1113 (insert(size_type, const _Tp&, size_type, size_type))
1114 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1116 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1118 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1120 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1122 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1124 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1126 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1128 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1130 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1132 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1134 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1136 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1139 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1142 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1143 pointers to start and end of storage.
1144 * testsuite/23_containers/vector/bool/72847.cc: New test.
1145 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1146 _M_finish after deallocating.
1147 (vector<bool>::_M_fill_insert): Likewise.
1148 (vector<bool>::_M_insert_range): Likewise.
1149 (vector<bool>::_M_insert_aux): Likewise.
1151 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1153 Implement LWG 2744 and LWG 2754.
1154 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1155 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1156 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1158 (emplace(_Args&&...)): Likewise.
1159 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1160 * include/std/utility: (__is_in_place_type_impl): New.
1161 (__is_in_place_type): Likewise.
1162 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1164 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1165 in_place constructor.
1166 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1167 * testsuite/20_util/any/requirements.cc: Add a test for
1168 in_place-constructing a non-default-constructible type.
1170 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1172 Add a feature macro for C++17 make_from_tuple.
1173 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1174 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1175 Qualify the call to get<>().
1176 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1178 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1180 * src/filesystem/ops.cc: Always include ostream and
1181 ext/stdio_filebuf.h.
1182 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1183 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1184 sendfile fails with ENOSYS or EINVAL.
1186 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1189 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1192 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1194 Implement C++17 make_from_tuple.
1195 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1196 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1198 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1201 * include/bits/basic_string.h
1202 (append(__sv_type, size_type, size_type)): Turn into a template,
1203 change parameter type, constrain, add a conversion to __sv_type
1204 from the dependent parameter type.
1205 (assign(__sv_type, size_type, size_type)): Likewise.
1206 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1207 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1209 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1211 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1213 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1215 * doc/xml/manual/status_cxx2017.xml: Update status table.
1216 * doc/html/manual/status.html: Regenerate.
1218 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1221 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1222 Qualify new operator.
1223 * testsuite/20_util/function/cons/72820.cc: New test.
1225 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1226 * doc/html/manual/status.html: Regenerate.
1227 * include/Makefile.am: Add new header.
1228 * include/Makefile.in: Regenerate.
1229 * include/bits/invoke.h: New header.
1230 (__invoke): Make constexpr. Add && to types in exception specification.
1231 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1232 names. Include <bits/invoke.h> and use std::__invoke.
1233 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1235 (invoke): Add && to types in exception specification.
1236 * include/std/tuple (apply, __apply_impl): Define for C++17.
1237 * testsuite/20_util/tuple/apply/1.cc: New test.
1238 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1241 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1243 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1244 * doc/html/manual/status.html: Regenerate.
1246 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1247 * testsuite/20_util/duration_cast/rounding.cc: New test.
1248 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1249 * doc/xml/manual/status_cxx2017.xml: Update status table.
1250 * doc/html/manual/status.html: Regenerate.
1251 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1253 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1254 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1255 * testsuite/20_util/duration/literals/range.cc: Likewise.
1257 * include/std/functional (__callable_functor): Remove.
1258 (_Function_handler::_M_invoke): Use __invoke instead of
1259 __callable_functor or mem_fn.
1260 (function::_Callable): Use lvalue in result_of expression.
1261 (function): Remove TODO comments about allocators.
1262 * testsuite/20_util/function/cons/refqual.cc: New test.
1264 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1266 * doc/xml/manual/status_cxx2017.xml: Update status table.
1267 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1268 (__invoke_impl): Remove exception specifications.
1269 (__invoke, invoke): Add exception specifications using
1270 __is_nothrow_callable.
1271 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1272 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1273 (__is_callable, __is_nothrow_callable): New traits.
1274 (is_callable, is_callable_v): New C++17 traits.
1275 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1276 * testsuite/20_util/is_callable/requirements/
1277 explicit_instantiation.cc: New test.
1278 * testsuite/20_util/is_callable/requirements/
1279 explicit_instantiation_ext.cc: New test.
1280 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1281 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1283 * testsuite/20_util/is_callable/value.cc: New test.
1284 * testsuite/20_util/is_callable/value_ext.cc: New test.
1285 * testsuite/20_util/is_nothrow_callable/requirements/
1286 explicit_instantiation.cc: New test.
1287 * testsuite/20_util/is_nothrow_callable/requirements/
1288 explicit_instantiation_ext.cc: New test.
1289 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1291 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1293 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1294 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1296 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1297 * doc/html/manual/status.html: Regenerate.
1299 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1300 effective target not dg-options. Move check for feature-test macro to:
1301 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1304 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1306 (__invoke_impl): Remove unused template parameters.
1307 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1309 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1310 and test __invoke extension for C++11.
1312 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1314 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1315 Define feature-test macro.
1316 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1319 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1320 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1321 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1322 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1323 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1325 * include/std/utility (as_const): Define.
1326 * testsuite/20_util/as_const/1.cc: New test.
1327 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1329 * include/bits/shared_ptr.h (owner_less): Add default template
1331 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1333 (owner_less<void>): Define specialization.
1334 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1336 * testsuite/20_util/owner_less/void.cc: New test.
1337 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1339 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1340 Define feature-test macro.
1341 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1342 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1343 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1344 (__cpp_lib_type_trait_variable_templates): Define.
1346 * include/bits/stl_function.h: Remove commented-out macro.
1347 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1348 Define feature-test macro.
1349 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1351 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1352 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1354 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1355 do #error for C++17.
1356 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1357 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1358 * include/tr1/bessel_function.tcc: Likewise.
1359 * include/tr1/beta_function.tcc: Likewise.
1360 * include/tr1/cmath: Likewise.
1361 * include/tr1/ell_integral.tcc: Likewise.
1362 * include/tr1/exp_integral.tcc: Likewise.
1363 * include/tr1/gamma.tcc: Likewise.
1364 * include/tr1/hypergeometric.tcc: Likewise.
1365 * include/tr1/legendre_function.tcc: Likewise.
1366 * include/tr1/modified_bessel_func.tcc: Likewise.
1367 * include/tr1/poly_hermite.tcc: Likewise.
1368 * include/tr1/poly_laguerre.tcc: Likewise.
1369 * include/tr1/riemann_zeta.tcc: Likewise.
1370 * include/tr1/special_function_util.h: Likewise.
1371 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1373 * include/std/type_traits (has_trivial_default_constructor): Remove.
1374 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1375 * testsuite/20_util/has_trivial_copy_assign/requirements/
1376 explicit_instantiation.cc: Remove test.
1377 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1379 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1381 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1382 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1383 explicit_instantiation.cc: Likewise.
1384 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1385 typedefs.cc: Likewise.
1386 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1387 * testsuite/20_util/has_trivial_default_constructor/requirements/
1388 explicit_instantiation.cc: Likewise.
1389 * testsuite/20_util/has_trivial_default_constructor/requirements/
1390 typedefs.cc: Likewise.
1391 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1393 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1394 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1395 and has_trivial_copy_assign are not defined.
1396 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1398 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1399 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1400 dg-error line number.
1401 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1404 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1406 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1407 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1408 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1410 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1412 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1414 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1416 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1418 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1421 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1424 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1425 dg-error to relevant line.
1426 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1428 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1430 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1432 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1433 options are present that aren't valid for C.
1434 * testsuite/abi/header_cxxabi.c: Likewise.
1436 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1437 check_value.cc: Do not add special functions to namespace std in TR1
1440 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1441 run for C++11 and later.
1442 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1444 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1445 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1446 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1447 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1448 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1450 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1452 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1453 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1455 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1457 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1459 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1460 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1461 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1462 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1463 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1464 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1465 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1466 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1468 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1469 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1470 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1471 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1473 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1474 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1475 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1476 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1478 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1479 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1480 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1481 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1483 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1484 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1485 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1486 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1487 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1489 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1490 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1491 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1492 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1494 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1495 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1496 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1497 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1498 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1499 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1500 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1501 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1502 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1503 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1504 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1505 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1506 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1507 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1508 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1509 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1510 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1511 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1512 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1513 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1514 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1515 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1516 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1517 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1518 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1519 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1520 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1521 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1522 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1523 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1524 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1525 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1526 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1527 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1528 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1529 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1531 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1532 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1533 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1534 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1535 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1536 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1537 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1538 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1540 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1541 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1542 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1543 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1544 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1545 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1547 * testsuite/tr1/5_numerical_facilities/special_functions/
1548 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1550 * testsuite/tr1/5_numerical_facilities/special_functions/
1551 09_cyl_bessel_j/check_value.cc: Likewise.
1552 * testsuite/tr1/5_numerical_facilities/special_functions/
1553 10_cyl_bessel_k/check_value.cc: Likewise.
1554 * testsuite/tr1/5_numerical_facilities/special_functions/
1555 11_cyl_neumann/check_value.cc: Likewise.
1556 * testsuite/tr1/5_numerical_facilities/special_functions/
1557 21_sph_bessel/check_value.cc: Likewise.
1558 * testsuite/tr1/5_numerical_facilities/special_functions/
1559 23_sph_neumann/check_value.cc: Likewise.
1561 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1563 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1564 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1565 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1566 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1567 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1568 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1570 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1572 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1575 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1576 additional flags for compiling libtestc++.a objects.
1578 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
1580 * include/bits/basic_string.h (data() const): Update comment.
1581 (data()): Add non-const overload for C++17.
1582 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1583 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1585 * include/bits/basic_string.tcc: Disable explicit instantiation
1586 declarations for C++17.
1588 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1589 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1590 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1592 * testsuite/26_numerics/headers/cmath/
1593 c99_classification_macros_c++11.cc: Likewise.
1594 * testsuite/26_numerics/headers/cmath/
1595 c99_classification_macros_c++98.cc: Likewise.
1596 * testsuite/26_numerics/headers/cmath/
1597 c99_classification_macros_c.cc: Likewise.
1599 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1600 for different construct/destroy counts in C++98 mode.
1602 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1604 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1606 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1609 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1610 C++98-compatible initialization for array.
1612 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1613 unused header and variable from compile-only test.
1614 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1615 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1616 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1617 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1620 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1621 Remove duplicate dg-options directive.
1623 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1624 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1626 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1627 linker options from compile-only tests.
1628 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1631 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1632 supported for C++11 and later.
1633 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1634 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1636 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
1638 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1640 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1642 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1645 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1646 Ensure test is compiled with optimization.
1648 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1649 Adjust dg-prune-output pattern for error in C++98 mode.
1651 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1652 run for C++11 or later.
1654 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1655 test to not rely on GNU extension (escaped normal characters in POSIX
1656 BRE). Enable tests for other strings which are now supported.
1658 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1659 c++11 instead of setting -std=gnu++14.
1662 * include/std/array (get): Use positive message for static assertions.
1663 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1664 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1665 specialization for invalid indices, with static assertion.
1666 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1668 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1669 dg-error to relevant line.
1670 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1672 * testsuite/23_containers/forward_list/requirements/dr438/
1673 assign_neg.cc: Likewise.
1674 * testsuite/23_containers/forward_list/requirements/dr438/
1675 constructor_1_neg.cc: Likewise.
1676 * testsuite/23_containers/forward_list/requirements/dr438/
1677 constructor_2_neg.cc: Likewise.
1678 * testsuite/23_containers/forward_list/requirements/dr438/
1679 insert_neg.cc: Likewise.
1680 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1682 * testsuite/26_numerics/random/linear_congruential_engine/
1683 requirements/non_uint_neg.cc: Likewise.
1684 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1685 Likewise. Also test for std::atomic_address.
1687 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
1689 Add missing variable traits, fix testsuite failures.
1690 * include/bits/uses_allocator.h (uses_allocator_v): New.
1691 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1693 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1694 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1695 * testsuite/20_util/duration/literals/range.cc: Likewise.
1696 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1697 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1698 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1699 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1700 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1702 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1703 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1706 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1708 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1709 not test 128-bit types.
1710 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1711 * testsuite/20_util/is_integral/value.cc: Likewise.
1712 * testsuite/20_util/is_signed/value.cc: Likewise.
1713 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1714 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1715 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1716 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1718 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1721 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1723 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1725 Implement C++17 variable templates for type traits.
1726 * include/std/chrono (treat_as_floating_point_v): New.
1727 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1728 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1729 (ratio_greater_equal_v): Likewise.
1730 * include/std/system_error (is_error_code_enum_v)
1731 (is_error_condition_enum_v): Likewise.
1732 * include/std/tuple (tuple_size_v): Likewise.
1733 * type_traits (conjunction_v, disjunction_v, negation_v)
1734 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1735 (is_array_v, is_pointer_v, is_lvalue_reference_v)
1736 (is_rvalue_reference_v, is_member_object_pointer_v)
1737 (is_member_function_pointer_v, is_enum_v, is_union_v)
1738 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1739 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1740 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1741 (is_trivially_copyable_v, is_standard_layout_v)
1742 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1743 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1744 (is_constructible_v, is_default_constructible_v)
1745 (is_copy_constructible_v, is_move_constructible_v)
1746 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1747 (is_destructible_v, is_trivially_constructible_v)
1748 (is_trivially_default_constructible_v)
1749 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1750 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1751 (is_trivially_move_assignable_v, is_trivially_destructible_v)
1752 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1753 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1754 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1755 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1756 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1757 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1758 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1759 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1761 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1762 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1763 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1765 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
1767 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1768 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1769 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1771 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
1773 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1774 * doc/html/manual/abi.html: Regenerate.
1776 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1777 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1779 * configure: Regenerate.
1780 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1782 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1783 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1784 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1785 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1787 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1788 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1789 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1791 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
1793 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1794 Adjust dg-prune-output pattern for error in C++98 mode.
1795 * testsuite/23_containers/deque/requirements/dr438/
1796 constructor_1_neg.cc: Likewise.
1797 * testsuite/23_containers/deque/requirements/dr438/
1798 constructor_2_neg.cc: Likewise.
1799 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1801 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1803 * testsuite/23_containers/list/requirements/dr438/
1804 constructor_1_neg.cc: Likewise.
1805 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1807 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1809 * testsuite/23_containers/vector/requirements/dr438/
1810 constructor_1_neg.cc: Likewise.
1811 * testsuite/23_containers/vector/requirements/dr438/
1812 constructor_2_neg.cc: Likewise.
1813 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1816 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1817 for different construct/destroy counts in C++98 mode.
1819 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1820 dg-options to dg-additional-options so that default options are used.
1821 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1823 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1824 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1826 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1827 Use dg-additional-options instead of repeating the common options.
1829 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1830 dg-do compile directive.
1831 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1833 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1835 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
1837 Implement std::string_view and P0254r2,
1838 Integrating std::string_view and std::string.
1839 * include/Makefile.am: Add string_view and string_view.tcc
1840 to the exported headers.
1841 * include/Makefile.in: Likewise.
1842 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
1844 (basic_string(__sv_type, const _Alloc&)): Likewise.
1845 (operator=(__sv_type)): Likewise.
1846 (operator __sv_type()): Likewise.
1847 (operator+=(__sv_type)): Likewise.
1848 (append(__sv_type __sv)): Likewise.
1849 (append(__sv_type, size_type, size_type)): Likewise.
1850 (assign(__sv_type)): Likewise.
1851 (assign(__sv_type, size_type, size_type)): Likewise.
1852 (insert(size_type, __sv_type)): Likewise.
1853 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1854 (replace(size_type, size_type, __sv_type)): Likewise.
1855 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1857 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
1858 (find(__sv_type, size_type)): Likewise.
1859 (rfind(__sv_type, size_type)): Likewise.
1860 (find_first_of(__sv_type, size_type)): Likewise.
1861 (find_last_of(__sv_type, size_type)): Likewise.
1862 (find_first_not_of(__sv_type, size_type)): Likewise.
1863 (find_last_not_of(__sv_type, size_type)): Likewise.
1864 (compare(__sv_type)): Likewise.
1865 (compare(size_type, size_type, __sv_type)): Likewise.
1866 (compare(size_type, size_type, __sv_type, size_type, size_type)):
1868 * include/bits/string_view.tcc: New.
1869 * include/std/string_view: Likewise.
1870 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1871 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1872 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1874 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1876 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1878 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1880 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1882 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1884 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1886 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1888 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1890 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1892 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1894 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1896 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
1897 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
1898 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
1899 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
1900 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
1901 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
1902 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
1903 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
1904 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
1905 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1907 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1909 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1911 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1913 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1915 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1917 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1919 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1921 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1922 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
1923 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
1924 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
1925 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1927 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1929 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1931 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1933 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1935 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1937 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1939 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1941 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1943 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1945 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1947 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1949 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1951 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1953 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1955 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1957 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1959 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1961 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1963 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1965 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1967 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1969 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1971 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1973 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1975 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1977 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1979 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1981 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1983 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1985 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1987 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1989 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1991 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
1992 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1994 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1996 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1998 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2000 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2002 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2004 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2006 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2008 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2010 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2011 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2013 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2015 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2017 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2019 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2020 _S_concat enumerator.
2021 * testsuite/ext/rope/6.cc: New test.
2023 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2025 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2026 std::mt19937, std::thread and std::atomic to simplify test.
2027 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2029 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2032 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2033 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2034 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2035 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2036 * testsuite/23_containers/set/allocator/71964.cc: New test.
2038 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2039 delete[] instead of delete.
2041 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2043 * include/experimental/propagate_const (propagate_const::__t): Rename
2044 to _M_t and remove comment. Qualify std::move and std::forward.
2045 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2047 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2048 Define sized deallocation function.
2049 * testsuite/util/testsuite_new_operators.h:
2050 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2051 deallocation function.
2053 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2054 reads past the end of strings.
2055 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2057 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2058 invalid array accesses.
2059 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2060 Fix read past the end of string.
2061 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2063 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2064 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2066 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2067 leak) memory for arguments to placement delete.
2068 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2069 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2070 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2073 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2075 * doc/xml/manual/intro.xml: Document DR 2684 status.
2076 * doc/html/*: Regenerate.
2078 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2079 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2080 (atomic_uint64_t): Define (LWG 2441).
2081 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2083 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2085 * doc/xml/manual/intro.xml: Document DR 2441 status.
2087 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2088 to use perfect forwarding (LWG 2328).
2089 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2090 * doc/xml/manual/intro.xml: Document DR 2328 status.
2092 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2093 static objects for catching nullptr as pointer to member types.
2095 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2097 Clean up optional's comments.
2098 * include/std/optional: Remove incorrect section headers
2099 from comments when redundant, replace bare section
2100 headers with more descriptive comments.
2102 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2104 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2105 * include/bits/move.h: Likewise.
2106 * include/bits/postypes.h: Likewise.
2107 * include/debug/bitset: Likewise.
2108 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2109 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2111 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2112 * testsuite/util/thread/all.h: Likewise.
2114 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2118 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2119 nullptr match handlers of pointer type.
2121 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2123 Implement C++17 P0025 clamp.
2124 * include/bits/algorithmfwd.h: Declare clamp overloads.
2125 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2126 * testsuite/25_algorithms/clamp/1.cc: New test.
2127 * testsuite/25_algorithms/clamp/2.cc: New test.
2128 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2129 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2131 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2134 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2136 Fix the constraints for any's assignment operator template to properly
2137 reject assignment from a non-copyable lvalue.
2138 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2139 type for is_copy_constructible,
2140 * testsuite/20_util/any/requirements.cc: Add a test for
2141 non-copyable lvalues.
2143 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2145 * include/experimental/functional: Include <parallel/algorithm> in
2148 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2152 * include/bits/forward_list.h (forward_list): Update doxygen comments
2153 to reflect allocator propagation semantics. Remove ambiguous
2154 statements about data being lost.
2155 * include/bits/stl_deque.h (deque): Likewise.
2156 * include/bits/stl_list.h (list): Likewise.
2157 * include/bits/stl_map.h (map): Likewise.
2158 * include/bits/stl_multimap.h (multimap): Likewise.
2159 * include/bits/stl_multiset.h (multiset): Likewise.
2160 * include/bits/stl_set.h (set): Likewise.
2161 * include/bits/stl_vector.h (vector): Likewise.
2162 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2164 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2167 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2169 Implement P0032R3, Homogeneous interface for variant, any and optional,
2170 for the parts concerning any and optional.
2171 * include/std/any (_Storage()): Make constexpr and have it
2173 (any()): Make constexpr.
2174 (any(const any&)): Adjust.
2175 (any(any&&)): Likewise.
2176 (__any_constructible_t): New.
2177 (any(_ValueType&&)): Constrain.
2178 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2179 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2182 (operator=(const any&)): Likewise.
2183 (operator=(any&&)): Likewise.
2184 (operator=(_ValueType&&)): Constrain.
2185 (emplace(_Args&&...)): New.
2186 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2189 (swap(any&)): Adjust.
2193 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2194 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2195 (make_any(_Args&&...)): Likewise.
2196 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2197 * include/std/optional (in_place_t, in_place): Remove.
2198 (bad_optional_access): Add a comment referring to LEWG 72.
2199 (emplace(_Args&&...)): Constrain.
2201 (reset()): Likewise.
2202 (make_optional(_Args&&...)): Likewise.
2203 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2204 * include/std/utility (in_place_tag): New.
2205 (__in_place, __in_place_type, __in_place_index): Likewise.
2206 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2207 (in_place(__in_place*)): Likewise.
2208 (in_place(__in_place_type<_Tp>*)): Likewise.
2209 (in_place(__in_place_index<_Idx>*)): Likewise.
2210 * testsuite/20_util/any/assign/1.cc: Adjust.
2211 * testsuite/20_util/any/assign/emplace.cc: New.
2212 * testsuite/20_util/any/assign/self.cc: Adjust.
2213 * testsuite/20_util/any/cons/1.cc: Likewise.
2214 * testsuite/20_util/any/cons/in_place.cc: New.
2215 * testsuite/20_util/any/make_any.cc: Likewise.
2216 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2217 * testsuite/20_util/any/misc/swap.cc: Likewise.
2218 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2219 * testsuite/20_util/any/requirements.cc: New.
2220 * testsuite/20_util/in_place/requirements.cc: Likewise.
2221 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2222 * testsuite/20_util/optional/in_place.cc: Likewise.
2223 * testsuite/20_util/optional/make_optional.cc: Add tests for
2224 the new overloads of make_optional.
2226 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2228 Implement P0307R2, Making Optional Greater Equal Again.
2229 * include/experimental/optional (_Has_addressof): Fix the comment.
2230 * include/std/optional (_Has_addressof): Likewise.
2231 (operator=(_Up&&)): Constrain.
2232 (operator=(const optional<_Up>&)): Likewise.
2233 (operator=(optional<_Up>&&)): Likewise.
2234 (__optional_relop_t): New.
2235 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2236 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2237 Constrain and make transparent.
2238 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2239 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2240 Constrain and make transparent.
2241 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2242 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2243 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2244 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2245 (operator!=(const optional<_Tp>&, _Tp const&)):
2246 Constrain and make transparent.
2247 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2248 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2249 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2250 (operator>(const optional<_Tp>&, const _Tp&)):
2251 Constrain and make transparent.
2252 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2253 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2254 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2255 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2256 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2257 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2258 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2259 * testsuite/20_util/optional/relops/1.cc: Likewise.
2260 * testsuite/20_util/optional/relops/2.cc: Likewise.
2261 * testsuite/20_util/optional/relops/3.cc: Likewise.
2262 * testsuite/20_util/optional/relops/4.cc: Likewise.
2263 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2264 that optional's relops are transparent and don't synthesize
2265 operators. Also test that assignment sfinaes.
2267 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2270 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2271 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2272 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2273 on _GLIBCXX_ASSERTIONS.
2274 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2275 Include <unistd.h> for sleep.
2276 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2277 * include/parallel/merge.h: Likewise.
2278 * include/parallel/multiway_merge.h: Likewise.
2279 * include/parallel/partition.h: Likewise.
2280 * include/parallel/queue.h: Likewise.
2281 * include/parallel/sort.h: Likewise.
2282 * testsuite/25_algorithms/headers/algorithm/
2283 parallel_algorithm_assert.cc: New.
2285 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2286 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2287 Forward to different overload.
2289 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2292 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2294 Revert "Add non-const overload of std::string::data()".
2296 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2298 Implement P0307R2, Making Optional Greater Equal Again.
2299 * include/experimental/optional (_Has_addressof): Fix the comment.
2300 * include/std/optional (_Has_addressof): Likewise.
2301 (operator=(_Up&&)): Constrain.
2302 (operator=(const optional<_Up>&)): Likewise.
2303 (operator=(optional<_Up>&&)): Likewise.
2304 (__optional_relop_t): New.
2305 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2306 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2307 Constrain and make transparent.
2308 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2309 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2310 Constrain and make transparent.
2311 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2312 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2313 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2314 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2315 (operator!=(const optional<_Tp>&, _Tp const&)):
2316 Constrain and make transparent.
2317 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2318 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2319 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2320 (operator>(const optional<_Tp>&, const _Tp&)):
2321 Constrain and make transparent.
2322 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2323 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2324 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2325 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2326 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2327 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2328 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2329 * testsuite/20_util/optional/relops/1.cc: Likewise.
2330 * testsuite/20_util/optional/relops/2.cc: Likewise.
2331 * testsuite/20_util/optional/relops/3.cc: Likewise.
2332 * testsuite/20_util/optional/relops/4.cc: Likewise.
2333 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2334 that optional's relops are transparent and don't synthesize
2335 operators. Also test that assignment sfinaes.
2337 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2339 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2341 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2342 instead of _M_data().
2343 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2345 (append(const basic_string&)): Likewise.
2346 (append(const basic_string&, size_type, size_type)): Likewise.
2347 (assign(const basic_string&, size_type, size_type)): Likewise.
2348 (insert(size_type, const basic_string&)): Likewise.
2349 (insert(size_type, const basic_string&, size_type, size_type)):
2351 (replace(size_type, size_type, const basic_string&, size_type,
2352 size_type)): Likewise.
2353 (replace(__const_iterator, __const_iterator, const basic_string&)):
2355 (c_str(), data()): Use c_str() instead of _M_data().
2356 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2357 (compare(const basic_string&)): Use data() instead of _M_data().
2358 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2359 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2360 Pass raw pointers to _S_copy.
2361 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2363 (find(const _CharT*, size_type, size_type)): Use data instead of
2365 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2366 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2367 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2369 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2371 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2372 * doc/xml/manual/intro.xml: Document DR 2458 status.
2373 * doc/html*: Regenerate.
2375 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2376 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2377 Only include <array>.
2378 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2380 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2381 * doc/html*: Regenerate.
2383 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2384 Add testcase from LWG 2164.
2386 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2388 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2389 to _M_realloc_insert.
2390 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2391 (_M_realloc_insert): Declare new function.
2392 (_M_emplace_back_aux): Remove definition.
2393 * include/bits/vector.tcc (emplace_back(_Args...)):
2394 Use _M_realloc_insert.
2395 (insert(const_iterator, const value_type&)): Likewise.
2396 (_M_insert_rval, _M_emplace_aux): Likewise.
2397 (_M_emplace_back_aux): Remove declaration.
2398 (_M_realloc_insert): Define.
2399 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2400 Adjust expected results for emplacing an lvalue with reallocation.
2402 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2404 Implement std::optional.
2405 * include/Makefile.am: Add optional to exported headers.
2406 * include/Makefile.in: Likewise.
2407 * include/std/optional: New.
2408 * testsuite/20_util/optional/typedefs.cc: Likewise.
2409 * testsuite/20_util/optional/relops/2.cc: Likewise.
2410 * testsuite/20_util/optional/relops/3.cc: Likewise.
2411 * testsuite/20_util/optional/relops/4.cc: Likewise.
2412 * testsuite/20_util/optional/relops/5.cc: Likewise.
2413 * testsuite/20_util/optional/relops/1.cc: Likewise.
2414 * testsuite/20_util/optional/relops/6.cc: Likewise.
2415 * testsuite/20_util/optional/nullopt.cc: Likewise.
2416 * testsuite/20_util/optional/in_place.cc: Likewise.
2417 * testsuite/20_util/optional/make_optional.cc: Likewise.
2418 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2419 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2420 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2421 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2422 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2423 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2424 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2425 * testsuite/20_util/optional/cons/default.cc: Likewise.
2426 * testsuite/20_util/optional/cons/move.cc: Likewise.
2427 * testsuite/20_util/optional/cons/value.cc: Likewise.
2428 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2429 * testsuite/20_util/optional/requirements.cc: Likewise.
2430 * testsuite/20_util/optional/observers/2.cc: Likewise.
2431 * testsuite/20_util/optional/observers/3.cc: Likewise.
2432 * testsuite/20_util/optional/observers/4.cc: Likewise.
2433 * testsuite/20_util/optional/observers/5.cc: Likewise.
2434 * testsuite/20_util/optional/observers/1.cc: Likewise.
2435 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2436 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2437 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2438 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2439 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2440 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2441 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2442 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2443 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2444 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2445 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2446 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2447 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2448 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2449 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2450 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2451 * testsuite/20_util/optional/swap/1.cc: Likewise.
2453 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2455 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2457 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2459 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2460 * doc/html/*: Regenerate.
2462 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2465 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2466 * include/Makefile.in: Likewise.
2467 * include/std/any: New.
2468 * testsuite/20_util/any/assign/1.cc: Likewise.
2469 * testsuite/20_util/any/assign/2.cc: Likewise.
2470 * testsuite/20_util/any/assign/self.cc: Likewise.
2471 * testsuite/20_util/any/cons/1.cc: Likewise.
2472 * testsuite/20_util/any/cons/2.cc: Likewise.
2473 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2474 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2475 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2476 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2477 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2478 * testsuite/20_util/any/misc/swap.cc: Likewise.
2479 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2480 * testsuite/20_util/any/observers/type.cc: Likewise.
2481 * testsuite/20_util/any/typedefs.cc: Likewise.
2483 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2485 Add a new header for diagnosing the use of C++17 facilities
2487 * include/bits/c++17_warning.h: New.
2489 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2491 Implement LWG 2451, optional<T> should 'forward' T's
2492 implicit conversions.
2493 * include/experimental/optional (__is_optional_impl, __is_optional):
2495 (optional()): Make constexpr and default.
2496 (optional(_Up&&), optional(const optional<_Up>&),
2497 optional(optional<_Up>&& __t): New.
2498 (operator=(_Up&&)): Constrain.
2499 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2500 * testsuite/experimental/optional/cons/value.cc:
2501 Add tests for the functionality added by LWG 2451.
2502 * testsuite/experimental/optional/cons/value_neg.cc: New.
2504 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2507 any_cast doesn't work with rvalue reference targets and cannot
2508 move with a value target.
2509 * include/experimental/any (any(_ValueType&&)): Constrain and
2510 add an overload that doesn't forward.
2511 (any_cast(any&&)): Constrain and add an overload that moves.
2512 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2513 the functionality added by LWG 2509.
2515 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2517 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2519 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2522 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2524 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2525 Define inline. Forward to _M_emplace_aux.
2526 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2527 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2528 (_Temporary_value): New RAII type using allocator to construct/destroy.
2529 (_S_insert_aux_assign): Remove.
2530 (_M_insert_aux): Make non-variadic.
2531 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2532 Use _Temporary_value.
2533 (emplace(const_iterator, _Args&&...)): Remove definition.
2534 (_M_insert_rval, _M_emplace_aux): Define.
2535 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2536 (_M_fill_insert): Use _Temporary_value.
2537 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2538 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2539 Adjust expected results for emplacing an lvalue with reallocation.
2540 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2541 expected results to account for construction/destruction of temporary
2543 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2545 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2548 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2549 Call remove_all for children of a directory.
2550 * testsuite/experimental/filesystem/operations/create_directories.cc:
2553 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
2555 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2556 dg-error line numbers.
2557 * testsuite/23_containers/array/tuple_interface/
2558 tuple_element_debug_neg.cc: Likewise.
2559 * testsuite/25_algorithms/lexicographical_compare/debug/
2560 irreflexive_neg.cc: Remove.
2562 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2564 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2565 than specific target.
2567 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
2570 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2573 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
2575 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2578 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2580 * configure.host: Remove mep-* support.
2582 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2584 * configure: Regenerate.
2585 * configure.host: Remove support for knetbsd.
2586 * crossconfig.m4: Likewise.
2588 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
2591 * include/tr1/hashtable_policy.h
2592 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2593 dereferenceable to avoid check on lower_bound result.
2594 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2595 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2596 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2597 Always return a value greater than input value. Set _M_next_resize to
2598 max value when reaching highest prime number.
2599 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2601 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2602 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2604 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2605 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2608 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
2611 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2612 Remove irreflexive checks.
2613 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2614 binary_search): Likewise.
2615 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2616 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2617 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2618 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2619 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2620 Add constructor from array.
2622 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
2624 * include/debug/debug.h
2625 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2626 (__glibcxx_requires_subscript): Move...
2627 * include/debug/assertions.h: ...here and add __builtin_expect.
2628 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2629 * include/bits/stl_deque.h
2630 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2631 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2632 (std::deque<>::back()): Likewise.
2633 (std::deque<>::pop_front()): Likewise.
2634 (std::deque<>::pop_back()): Likewise.
2635 (std::deque<>::swap(deque&)): Add allocator check.
2636 * include/bits/stl_vector.h
2637 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2638 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2639 (std::vector<>::back()): Likewise.
2640 (std::vector<>::pop_back()): Likewise.
2641 (std::vector<>::swap(vector&)): Add allocator check.
2643 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
2645 Provide swappable traits (p0185r1)
2646 * include/std/type_traits (is_swappable, is_nothrow_swappable,
2647 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2648 is_nothrow_swappable_v, is_swappable_with_v,
2649 is_nothrow_swappable_with_v): New.
2650 * include/bits/stl_pair.h: Use it as per p0185r1.
2651 * include/bits/stl_queue.h: Likewise.
2652 * include/bits/stl_stack.h: Likewise.
2653 * include/bits/unique_ptr.h: Likewise.
2654 * include/std/tuple: Likewise.
2655 * include/std/array: Likewise. Fix zero-size member swap.
2656 * include/bits/hashtable.h: Use __and_.
2657 * testsuite/20_util/is_nothrow_swappable/requirements/
2658 explicit_instantiation.cc: Change test options to std=gnu++17.
2659 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2661 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2662 * testsuite/20_util/is_swappable/requirements/
2663 explicit_instantiation.cc: Likewise.
2664 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2665 * testsuite/20_util/is_swappable/value.cc: Likewise.
2666 * testsuite/20_util/is_nothrow_swappable/requirements/
2667 explicit_instantiation_ext.cc: New.
2668 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2670 * testsuite/20_util/is_nothrow_swappable/value.h: New.
2671 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2672 * testsuite/20_util/is_nothrow_swappable_with/requirements/
2673 explicit_instantiation.cc: New.
2674 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2676 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2677 * testsuite/20_util/is_swappable/requirements/
2678 explicit_instantiation_ext.cc: New.
2679 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2680 * testsuite/20_util/is_swappable/value.h: New.
2681 * testsuite/20_util/is_swappable/value_ext.cc: New.
2682 * testsuite/20_util/is_swappable_with/requirements/
2683 explicit_instantiation.cc: New.
2684 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2685 * testsuite/20_util/is_swappable_with/value.cc: New.
2686 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2687 dg-error line numbers.
2688 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2691 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
2693 * include/std/array: Remove trailing whitespace.
2694 * include/std/atomic: Likewise.
2695 * include/std/bitset: Likewise.
2696 * include/std/chrono: Likewise.
2697 * include/std/complex: Likewise.
2698 * include/std/condition_variable: Likewise.
2699 * include/std/fstream: Likewise.
2700 * include/std/functional: Likewise.
2701 * include/std/future: Likewise.
2702 * include/std/iomanip: Likewise.
2703 * include/std/iosfwd: Likewise.
2704 * include/std/istream: Likewise.
2705 * include/std/limits: Likewise.
2706 * include/std/ratio: Likewise.
2707 * include/std/scoped_allocator: Likewise.
2708 * include/std/sstream: Likewise.
2709 * include/std/stdexcept: Likewise.
2710 * include/std/string: Likewise.
2711 * include/std/system_error: Likewise.
2712 * include/std/thread: Likewise.
2713 * include/std/tuple: Likewise.
2714 * include/std/type_traits: Likewise.
2715 * include/std/utility: Likewise.
2716 * include/std/valarray: Likewise.
2717 * include/std/vector: Likewise.
2719 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2720 new overloaded functions.
2721 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2722 to avoid creating a redundant temporary.
2723 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2726 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
2728 * include/bits/stl_deque.h
2729 (std::deque<>::operator=): Call _M_assign_aux.
2730 (std::deque<>::assign(initializer_list<>)): Likewise.
2731 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2732 (std::deque<>::insert(const_iterator, initializer_list<>)):
2733 Call _M_range_insert_aux.
2734 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2736 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2737 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2738 * include/bits/deque.tcc
2739 (std::deque<>::operator=): Call _M_range_insert_aux.
2740 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2742 * include/bits/stl_vector.h
2743 (std::vector<>::operator=): Call _M_assign_aux.
2744 (std::vector<>::assign(initializer_list<>)): Likewise.
2745 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2746 (std::vector<>::insert(const_iterator, initializer_list<>)):
2747 Call _M_range_insert.
2748 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2750 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
2752 * include/std/tuple (_Head_base<>): Default specialization condition at
2755 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2757 Support allocators in tuples of zero size.
2758 * include/std/tuple (tuple<>::tuple(),
2759 tuple<>::tuple(allocator_arg_t, const _Alloc&),
2760 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2761 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2763 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
2766 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2767 Add or remove permissions according to perms argument.
2768 * testsuite/experimental/filesystem/operations/permissions.cc: New
2771 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2773 Protect allocator-overloads of tuple-from-tuple constructors
2774 from cases that would create dangling references.
2775 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2776 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2777 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2778 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2780 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
2782 * doc/xml/manual/backwards_compatibility.xml: Adjust
2783 lists.debian.org link to https.
2784 * doc/html/manual/backwards.html: Regenerate.
2786 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
2788 * doc/xml/manual/abi.xml: Adjust URL to use https.
2789 * doc/html/manual/*: Regenerate.
2791 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
2794 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2795 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2796 check for _NotSameTuple.
2797 * include/std/tuple (_TMCT): New.
2798 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2799 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2800 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2801 const tuple<_UElements...>&)): Likewise.
2802 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2803 tuple<_UElements...>&&)): Likewise.
2804 * testsuite/20_util/tuple/cons/66338.cc: New.
2806 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
2808 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2809 * configure: Regenerate.
2810 * config.h.in: Regenerate.
2812 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2813 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2814 Remove const qualification on function. Replace
2815 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2816 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2817 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2819 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
2821 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2822 * include/bits/hashtable_policy.h
2823 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2824 having load factor management.
2825 (_Mask_range_hashing): New.
2827 (_Power2_rehash_policy): New.
2828 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2829 partial specializations only depend on whether iterators are constant
2831 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2832 test new hash policy.
2833 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2835 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2837 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2839 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2841 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2843 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
2844 using the new hash policy.
2845 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
2847 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
2849 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
2851 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
2853 * include/debug/safe_iterator.h
2854 (_Safe_iterator<>::operator->()): Implement using underlying iterator
2856 * include/debug/safe_local_iterator.h
2857 (_Safe_local_iterator<>::operator->()): Likewise.
2859 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
2861 * testsuite/experimental/memory_resource/1.cc: Add required argument
2862 to dg-require-atomic-builtins.
2864 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
2867 * include/debug/bitset: Add #pragma GCC system_header.
2868 * include/debug/deque: Likewise.
2869 * include/debug/list: Likewise.
2870 * include/debug/map: Likewise.
2871 * include/debug/set: Likewise.
2872 * include/debug/string: Likewise.
2873 * include/debug/unordered_map: Likewise.
2874 * include/debug/unordered_set: Likewise.
2875 * include/debug/vector: Likewise.
2876 * include/debug/functions.h: Adjust whitespace.
2878 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
2881 * testsuite/experimental/memory_resource/1.cc: Require atomics.
2883 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
2886 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
2887 exception constructors with __sso_string parameters.
2889 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
2891 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
2892 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2893 Test begin and end functions.
2894 * testsuite/experimental/filesystem/iterators/
2895 recursive_directory_iterator.cc: Likewise.
2898 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
2899 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
2901 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2902 Overload operator* to move from rvalues.
2905 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
2906 * testsuite/experimental/filesystem/operations/create_directory.cc:
2910 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
2911 base path to exception.
2912 * testsuite/experimental/filesystem/operations/canonical.cc: Test
2913 paths contained in exception.
2915 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
2919 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2921 (directory_iterator::operator++(int)): Return proxy.
2922 (recursive_directory_iterator::operator++(int)): Likewise.
2923 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2924 Test post-increment.
2925 * testsuite/experimental/filesystem/iterators/
2926 recursive_directory_iterator.cc: Likewise.
2928 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
2931 * testsuite/experimental/filesystem/iterators/
2932 recursive_directory_iterator.cc: Fix test02 to not call member
2933 functions on invalid iterator, and use VERIFY not assert.
2935 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
2937 Avoid endless run-time recursion for copying single-element
2938 tuples where the element type is by-value constructible
2940 * include/std/tuple (_NotSameTuple): New.
2941 * include/std/tuple (tuple(_UElements&&...): Use it.
2942 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
2944 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
2947 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
2948 Initialize scalar member variables in default constructor.
2949 * testsuite/experimental/filesystem/iterators/
2950 recursive_directory_iterator.cc: Test default construction.
2952 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2954 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
2956 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
2958 * testsuite/experimental/filesystem/path/native/string.cc: Add
2959 dg-require-filesystem-ts directive.
2961 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
2964 * include/experimental/memory_resource
2965 (__resource_adaptor_imp::do_allocate): Do not default-construct
2967 (__resource_adaptor_imp::do_deallocate): Likewise. Use
2968 allocator_traits to get pointer type.
2969 (__null_memory_resource::do_allocate): Remove unused parameters.
2970 (__null_memory_resource::do_deallocate): Likewise.
2971 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
2972 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
2973 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
2975 * testsuite/experimental/memory_resource/1.cc: Here.
2976 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
2977 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
2979 2016-04-29 Chris Gregory <czipperz@gmail.com>
2981 * config/*: Remove trailing whitespace.
2983 * testsuite/tr1/*: Likewise.
2984 * testsuite/util/*: Likewise.
2986 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
2989 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
2991 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
2993 * include/std/atomic (atomic<_Tp>): Likewise.
2994 * include/std/shared_mutex (shared_lock): Likewise.
2995 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
2996 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
2997 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
2998 * testsuite/29_atomics/atomic/70766.cc: New test.
2999 * testsuite/30_threads/shared_lock/70766.cc: New test.
3001 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3002 __detail::_Insert): Improve comments.
3004 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3007 * include/std/limits: Update comments about DRs.
3008 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3009 numeric_limits<const volatile _Tp>): Define unconditionally.
3011 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3014 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3015 static counter to return a different path on every call.
3017 2016-04-22 Tim Shen <timshen@google.com>
3020 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3021 Fix the match_not_bow and match_not_eow behavior.
3022 * testsuite/28_regex/regression.cc: Add testcase.
3024 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3027 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3028 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3030 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3033 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3034 Override endianness bit in mode.
3035 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3036 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3037 that little_endian mode is ignored.
3038 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3041 * src/filesystem/ops.cc (close_fd): New function.
3042 (do_copy_file): Set permissions before copying file contents. Check
3043 result of closing file descriptors. Don't copy streambuf when file
3045 (copy(const path&, const path&, copy_options, error_code&)): Use
3046 lstat for source file when copy_symlinks is set.
3047 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3049 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3050 operator~ operator&=, operator|=, operator^=): Add noexcept to
3051 overloaded operators for copy_options, perms and directory_options.
3052 * src/filesystem/ops.cc (make_file_type, make_file_status,
3053 is_not_found_errno, file_time): Add noexcept.
3055 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3057 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3059 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3062 * include/bits/random.h: Reword static assertion messages to state
3063 positive conditions.
3064 * include/bits/random.tcc: Likewise.
3065 * include/bits/uniform_int_dist.h: Likewise.
3066 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3069 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3071 * config/cpu/sh/atomicity.h: Fix typo in comment.
3074 * include/std/thread (operator<, operator==): Move definitions to
3076 * testsuite/30_threads/thread/id/70294.cc: New test.
3078 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3079 -Wno-pedantic to dg-options.
3080 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3081 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3083 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3084 Remove extra semi-colon.
3085 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3086 Always supply second argument to static_assert.
3087 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3089 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3091 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3092 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3093 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3094 alignof when operand is an object not a type.
3095 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3096 * testsuite/decimal/make-decimal.cc: Likewise.
3097 * testsuite/experimental/type_traits/value.cc: Always supply second
3098 argument to static_assert.
3099 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3102 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3104 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3105 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3106 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3107 Likewise. Add licence and change to compile-only test.
3109 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3111 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3113 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3116 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3118 * include/bits/specfun.h: Trivial comment misspelling.
3120 2016-04-14 Jason Merrill <jason@redhat.com>
3122 Revert Jonathan's empty ABI change from yesterday.
3124 2016-04-13 Martin Sebor <msebor@redhat.com>
3127 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3128 upper bound is positive.
3130 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3132 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3133 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3134 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3135 of functions taking empty structs by value. Add a template parameter
3136 to overloads without hints. Rename overloads with hints to
3138 (_Hashtable::_M_erase(true_type, const_iterator),
3139 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3140 by reordering parameters.
3141 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3142 _M_emplace_hint instead of _M_emplace.
3143 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3144 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3145 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3146 __shared_ptr): Likewise.
3147 * include/bits/stl_algo.h (replace_if): Likewise.
3148 * include/bits/stl_pair.h (piecewise_construct_t,
3149 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3150 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3151 __uses_alloc0): Likewise.
3152 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3153 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3154 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3155 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3156 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3157 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3158 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3160 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3162 Document C++17/TR29124 C++ Special Math Functions.
3163 * include/bits/specfun.h: Add Doxygen markup.
3165 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3167 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3169 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3171 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3172 * src/Makefile.in: Regenerate.
3174 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3177 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3178 __atomic_fetch_add for bool.
3179 * configure: Regenerate.
3181 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3184 * src/c++11/thread.cc (execute_native_thread_routine,
3185 execute_native_thread_routine_compat): Give internal linkage.
3186 * testsuite/30_threads/thread/70503.cc: New test.
3188 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3191 * include/bits/stl_pair.h (_ConstructiblePair,
3192 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3193 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3194 for same-type cases.
3195 * testsuite/20_util/pair/70437.cc: New.
3197 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3200 * config/abi/pre/gnu.ver: Add new symbol.
3201 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3202 * testsuite/18_support/free_eh_pool.cc: New test.
3204 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3206 * include/Makefile.am (install-freestanding-headers): Add
3207 concept_check.h and move.h to the installed headers.
3208 * include/Makefile.in: Regenerated.
3209 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3210 freestanding implementations.
3211 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3212 that this macro has no effect for freestanding implementations.
3213 * doc/html/manual/using_macros.html: Likewise.
3215 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3218 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3220 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3222 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3223 * doc/html/*: Regenerate.
3226 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3227 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3228 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3229 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3230 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3231 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3232 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3234 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3235 namespace before including TR1 headers.
3236 * testsuite/tr1/headers/c++200x/math.cc: New test.
3238 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3241 * include/c_global/cstdarg: Undefine __need___va_list.
3242 * include/c_global/cstddef: Undefine all kinds of __need_*.
3244 2016-02-16 Tim Shen <timshen@google.com>
3247 * include/bits/regex_scanner.h: Add different special character
3248 sets for grep and egrep regex.
3249 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3250 * testsuite/28_regex/regression.cc: Add new testcase.
3252 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3254 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3255 added 'constexpr' in previous commit.
3256 * configure: Regenerate.
3259 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3260 checks for all targets except *-*-solaris2.* and ensure we find the
3261 libc math.h header not our own.
3262 * configure: Regenerate.
3264 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3266 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3267 New file. Copied over from s390-linux-gnu.
3269 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3272 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3273 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3274 * config.h.in: Regenerate.
3275 * configure: Regenerate.
3276 * testsuite/21_strings/c_strings/char/69626.cc: New.
3278 * doc/html/index.html: Regenerate.
3280 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3281 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3282 * doc/html/*: Regenerate.
3284 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3287 * include/c_compatibility/math.h: Move header guards.
3288 * include/c_compatibility/stdlib.h: Likewise.
3290 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3293 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3295 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3298 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3299 isinf and isnan functions into two independent checks. Check on hpux.
3300 * config.h.in: Regenerate.
3301 * configure: Regenerate.
3302 * include/c_global/cmath (isinf(double), isnan(double)): Use
3303 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3306 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3308 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3310 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3313 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3314 -ffp-contract=off, and -ffloat-store to disable excess precision.
3315 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3318 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3321 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3322 random_access_iterator_tag>): Check is_move_assignable when moving.
3323 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3325 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3326 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3327 * testsuite/25_algorithms/move/69478.cc: New.
3328 * testsuite/25_algorithms/move_backward/69478.cc: new.
3330 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3332 * include/c_compatibility/stdlib.h: Include wide character related
3333 definitions only when they are available in cstdlib.
3335 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3338 * include/Makefile.am: Add new header.
3339 * include/Makefile.in: Regenerate.
3340 * include/bits/random.h (uniform_int_distribution): Move to
3341 bits/uniform_int_dist.h.
3342 * include/bits/random.tcc (uniform_int_distribution::operator(),
3343 uniform_int_distribution::__generate_impl): Likewise.
3344 * include/bits/uniform_int_dist.h: New header.
3345 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3346 <bits/uniform_int_dist.h> instead of <random>.
3347 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3348 move_iterators/1.cc: Include correct header for uninitialized_copy.
3349 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3350 move_iterators/1.cc: Likewise.
3351 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3353 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3355 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3358 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3360 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3362 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3363 * include/c_compatibility/math.h: Import the TR29124 functions
3364 into the global namespace.
3365 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3366 xfail and make compile-only.
3367 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3368 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3369 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3370 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3371 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3372 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3373 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3374 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3375 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3376 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3377 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3378 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3379 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3380 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3381 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3382 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3383 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3384 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3385 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3386 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3388 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3391 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3392 define result_type for types which can be safely used with valarrays.
3393 * testsuite/26_numerics/valarray/69116.cc: New.
3396 * config/os/gnu-linux/os_defines.h: Define
3397 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3398 * include/c_global/cmath (isinf, isnan): Check it.
3399 * doc/xml/manual/internals.xml: Document it.
3400 * doc/html/*: Regenerate.
3402 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3405 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3406 * include/ext/type_traits.h: Likewise.
3407 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3408 for presence of C headers.
3409 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3410 dg-error line number.
3411 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3412 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3413 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3415 2016-01-20 Torvald Riegel <triegel@redhat.com>
3418 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3420 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3423 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3424 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3425 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3426 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3427 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3428 Add using declarations.
3429 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3432 * include/c_global/ccomplex: Ensure C++ language linkage.
3433 * include/c_global/cmath: Likewise.
3434 * include/c_global/cstdlib: Likewise.
3435 * include/c_global/ctgmath: Likewise.
3436 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3438 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3442 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3443 --enable-cheaders=c_global configs.
3444 * include/Makefile.in: Regenerate.
3445 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3446 test and allow inclusion from C files.
3447 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3448 (at_quick_exit, quick_exit): Add using directives.
3449 * include/c_global/cmath: Use #include_next for math.h.
3450 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3451 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3452 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3453 Remove xfail for most targets.
3454 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3456 2016-01-18 Torvald Riegel <triegel@redhat.com>
3458 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3459 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3460 and move after its definition.
3461 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3462 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3463 __GXX_WEAK__, and only provide transactional clones if
3464 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3467 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3470 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3473 * include/std/functional (_Function_base::_M_not_empty_function):
3474 Change overloads for pointers to take arguments by value.
3475 * testsuite/20_util/function/cons/57465.cc: Add tests for
3476 pointer-to-member cases.
3479 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3480 Use macros for exception handling and fix unused parameter warning.
3482 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3485 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3487 2016-01-17 Torvald Riegel <triegel@redhat.com>
3489 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3491 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3493 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3496 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3499 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3500 static assertion that type is constructible from the arguments.
3501 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3502 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3503 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3506 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3507 and isnan on AIX. Quote variables.
3508 * configure: Regenerate.
3510 2016-01-15 Torvald Riegel <triegel@redhat.com>
3512 * include/bits/basic_string.h (basic_string): Declare friends.
3513 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3514 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3515 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3516 length_error, out_of_range, runtime_error, range_error,
3517 underflow_error, overflow_error): Declare members as transaction-safe.
3518 (logic_error, runtime_error): Declare friend functions.
3519 * libsupc++/exception (exception, bad_exception): Declare members as
3521 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3522 transaction-safe members of exceptions and helper functions.
3523 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3524 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3525 (CXXABI_1.3.10): New.
3526 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3527 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3528 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3529 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3530 * include/Makefile.in: Regenerate.
3531 * config.h.in: Regenerate.
3532 * configure: Regenerate.
3533 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3535 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3537 * include/ext/random.tcc: Use __builtin_isfinite instead of
3540 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3542 * include/bits/std_mutex.h: Fix Doxygen @file name.
3544 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3545 Jonathan Wakely <jwakely@redhat.com>
3546 Florian Goth <CaptainSifff@gmx.de>
3548 Implement TR29124 C++ special Math Functions.
3549 * include/Makefile.am: Add new headers.
3550 * include/Makefile.in: Regenerate.
3551 * include/bits/specfun.h: New.
3552 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3553 * include/tr1/bessel_function.tcc: Ditto.
3554 * include/tr1/beta_function.tcc: Ditto.
3555 * include/tr1/cmath: Ditto.
3556 * include/tr1/ell_integral.tcc: Ditto.
3557 * include/tr1/exp_integral.tcc: Ditto.
3558 * include/tr1/gamma.tcc: Ditto.
3559 * include/tr1/hypergeometric.tcc: Ditto.
3560 * include/tr1/legendre_function.tcc: Ditto.
3561 * include/tr1/modified_bessel_func.tcc: Ditto.
3562 * include/tr1/poly_hermite.tcc: Ditto.
3563 * include/tr1/poly_laguerre.tcc: Ditto.
3564 * include/tr1/riemann_zeta.tcc: Ditto.
3565 * include/tr1/special_function_util.h: Ditto.
3566 * testsuite/ext/special_functions/conf_hyperg: New.
3567 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3568 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3569 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3570 * testsuite/ext/special_functions/hyperg: New.
3571 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3572 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3573 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3574 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3575 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3576 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3577 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3578 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3579 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3580 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3581 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3582 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3583 * testsuite/special_functions/03_beta/check_nan.cc: New.
3584 * testsuite/special_functions/03_beta/check_value.cc: New.
3585 * testsuite/special_functions/03_beta/compile.cc: New.
3586 * testsuite/special_functions/03_beta/compile_2.cc: New.
3587 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3588 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3589 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3590 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3591 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3592 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3593 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3594 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3595 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3596 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3597 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3598 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3599 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3600 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3601 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3602 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3603 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3604 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3605 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3606 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3607 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3608 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3609 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3610 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3611 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3612 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3613 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3614 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3615 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3616 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3617 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3618 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3619 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3620 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3621 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3622 * testsuite/special_functions/12_ellint_2/compile.cc: New.
3623 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3624 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3625 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3626 * testsuite/special_functions/13_ellint_3/compile.cc: New.
3627 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3628 * testsuite/special_functions/14_expint/check_nan.cc: New.
3629 * testsuite/special_functions/14_expint/check_value.cc: New.
3630 * testsuite/special_functions/14_expint/compile.cc: New.
3631 * testsuite/special_functions/14_expint/compile_2.cc: New.
3632 * testsuite/special_functions/15_hermite/check_nan.cc: New.
3633 * testsuite/special_functions/15_hermite/check_value.cc: New.
3634 * testsuite/special_functions/15_hermite/compile.cc: New.
3635 * testsuite/special_functions/15_hermite/compile_2.cc: New.
3636 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3637 * testsuite/special_functions/16_laguerre/check_value.cc: New.
3638 * testsuite/special_functions/16_laguerre/compile.cc: New.
3639 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3640 * testsuite/special_functions/17_legendre/check_nan.cc: New.
3641 * testsuite/special_functions/17_legendre/check_value.cc: New.
3642 * testsuite/special_functions/17_legendre/compile.cc: New.
3643 * testsuite/special_functions/17_legendre/compile_2.cc: New.
3644 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3645 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3646 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3647 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3648 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3649 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3650 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3651 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3652 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3653 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3654 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3655 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3656 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3657 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3658 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3659 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3660 * testsuite/util/specfun_testcase.h: New.
3661 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3662 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3663 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3664 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3665 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3666 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3667 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3669 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
3672 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3673 and isnan functions.
3674 * config.h.in: Regenerate.
3675 * configure: Regenerate.
3676 * include/c_global/cmath (isinf(double), isnan(double))
3677 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3678 * testsuite/26_numerics/headers/cmath/48891.cc: New.
3680 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3683 * configure.host (abi_baseline_pair): Use separate baseline for
3684 Solaris 11+ and Solaris 10 with gld.
3685 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3686 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3687 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3689 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
3692 * include/std/type_traits: Following N4511, reimplement __is_swappable
3693 and __is_nothrow_swappable. Move __is_swappable to namespace std,
3694 adjust callers. Use __is_nothrow_swappable in swap.
3695 * include/bits/move.h: Use __is_nothrow_swappable in swap.
3696 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3697 __is_swappable related tests.
3698 * testsuite/20_util/is_swappable/value.cc: New.
3699 * testsuite/20_util/is_swappable/requirements/
3700 explicit_instantiation.cc: New.
3701 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3702 * testsuite/25_algorithms/swap/68877.cc: New.
3704 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
3706 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3710 * include/std/functional (function::_Invoke): Remove, use result_of.
3711 (function::_Callable): Replace alias template with class template
3712 and use partial specialization instead of _NotSelf alias template.
3713 (function(_Functor)): Add "not self" constraint so that _Callable is
3714 not used while type is incomplete.
3715 * testsuite/20_util/function/69222.cc: New.
3717 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
3720 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3721 Define partial specialization.
3722 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3723 destroy members to std::allocator explicit specialization.
3725 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
3727 * testsuite/26_numerics/headers/cmath/
3728 c99_classification_macros_c++.cc: Rename to ...
3729 * testsuite/26_numerics/headers/cmath/
3730 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3731 * testsuite/26_numerics/headers/cmath/
3732 c99_classification_macros_c++0x.cc: Rename to ...
3733 * testsuite/26_numerics/headers/cmath/
3734 c99_classification_macros_c++11.cc: Here.
3737 * include/bits/uses_allocator.h: Add missing include.
3739 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
3744 * include/bits/stl_iterator.h (back_insert_iterator,
3745 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3746 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3747 * include/std/future (__future::base::_State_baseV2::__setter):
3749 * include/std/scoped_allocator (__outermost): Likewise.
3750 * testsuite/20_util/scoped_allocator/69114.cc: New.
3751 * testsuite/20_util/uses_allocator/69114.cc: New.
3752 * testsuite/30_threads/promise/69106.cc: New.
3754 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
3757 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3758 Remove _GLIBCXX_NOEXCEPT.
3759 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3761 * include/Makefile.am: Adjust.
3762 * include/Makefile.in: Regenerate.
3763 * include/bits/mutex.h: Rename to bits/std_mutex.h.
3764 * include/std/condition_variable: Adjust include.
3765 * include/std/mutex: Likewise.
3767 2016-01-04 Jakub Jelinek <jakub@redhat.com>
3769 Update copyright years.
3771 Copyright (C) 2016 Free Software Foundation, Inc.
3773 Copying and distribution of this file, with or without modification,
3774 are permitted in any medium without royalty provided the copyright
3775 notice and this notice are preserved.