1 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
3 * config/cpu/m68k/atomicity.h: Adjust comment.
4 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
5 explicit atomicity_dir setup via configure.host.
6 * configure.host (rtems-*): Set atomicity_dir.
7 * configure: Regenerate.
9 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
11 Implement C++17 node extraction and insertion (P0083R5)
12 * doc/xml/manual/status_cxx2017.xml: Document status.
13 * doc/html/*: Regenerate.
14 * include/Makefile.am: Add bits/node_handle.h and reorder.
15 * include/Makefile.in: Regenerate.
16 * include/bits/hashtable.h (_Hashtable::node_type)
17 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
18 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
19 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
20 (_Hash_merge_helper): Define primary template.
21 * include/bits/node_handle.h: New header.
22 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
24 (map::node_type, map::insert_return_type, map::extract, map::merge)
25 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
27 (_Rb_tree_merge_helper): Specialize for map.
28 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
30 (multimap::node_type, multimap::extract, multimap::merge)
31 (multimap::insert(node_type&&))
32 (multimap::insert(const_iterator, node_type&&)): Define.
33 (_Rb_tree_merge_helper): Specialize for multimap.
34 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
36 (multiset::node_type, multiset::extract, multiset::merge)
37 (multiset::insert(node_type&&))
38 (multiset::insert(const_iterator, node_type&&)): Define.
39 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
41 (set::node_type, set::insert_return_type, set::extract, set::merge)
42 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
44 (_Rb_tree_merge_helper): Specialize for set.
45 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
46 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
47 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
48 (_Rb_tree::_M_reinsert_node_hint_unique)
49 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
50 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
51 (_Rb_tree_merge_helper): Specialize for multiset.
52 * include/bits/unordered_map.h (unordered_map): Declare
53 unordered_map<> and unordered_multimap<> as friends.
54 (unordered_map::node_type, unordered_map::insert_return_type)
55 (unordered_map::extract, unordered_map::merge)
56 (unordered_map::insert(node_type&&))
57 (unordered_map::insert(const_iterator, node_type&&))
58 (unordered_multimap): Declare _Hash_merge_helper as friend.
59 (unordered_multimap::node_type, unordered_multimap::extract)
60 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
61 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
62 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
63 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
64 Declare _Hash_merge_helper as friend.
65 (unordered_set::node_type, unordered_set::insert_return_type)
66 (unordered_set::extract, unordered_set::merge)
67 (unordered_set::insert(node_type&&))
68 (unordered_set::insert(const_iterator, node_type&&)): Define.
69 (unordered_multiset::node_type, unordered_multiset::extract)
70 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
71 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
72 (_Hash_merge_helper): Specialize for unordered sets and multisets.
73 * include/debug/map.h (map): Add using declarations or forwarding
74 functions for new members.
75 * include/debug/map.h (multimap): Likewise.
76 * include/debug/map.h (multiset): Likewise.
77 * include/debug/map.h (set): Likewise.
78 * include/debug/unordered_map (unordered_map, unordered_multimap):
80 * include/debug/unordered_set( unordered_set, unordered_multiset):
82 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
84 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
85 (StdNodeHandlePrinter): Define printer for node handles.
86 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
87 * testsuite/23_containers/map/modifiers/extract.cc: New.
88 * testsuite/23_containers/map/modifiers/merge.cc: New.
89 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
90 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
91 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
92 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
93 * testsuite/23_containers/set/modifiers/extract.cc: New.
94 * testsuite/23_containers/set/modifiers/merge.cc: New.
95 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
96 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
97 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
99 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
100 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
102 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
103 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
104 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
105 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
107 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
109 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
111 Fix tests on old arm platforms for optional.
112 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
114 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
116 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
117 recent change to _Variant_storage.
118 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
121 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
122 std::forward and ::new. Cast pointer to void*.
123 * include/std/variant (_Variant_storage, _Union, _Variant_base)
124 (__access, __visit_invoke, variant, visit): Qualify std::forward.
125 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
127 2016-09-22 Tim Shen <timshen@google.com>
129 * include/std/variant (variant::operator=): Fix assignment
131 * testsuite/20_util/variant/compile.cc: Add test.
133 2016-09-22 Tim Shen <timshen@google.com>
136 * include/std/variant (_Variant_storage::_Variant_storage):
137 Change _Variant_storage's union to be default constructible.
138 * testsuite/20_util/variant/compile.cc: New test.
140 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
143 * include/std/optional (__is_optional_impl, __is_optional): Remove.
144 (__converts_from_optional, __assigns_from_optional): New.
145 (optional(_Up&&)): Use is_same instead of __is_optional.
146 (optional(const optional<_Up>&)): Constrain with
147 __converts_from_optional.
148 (optional(optional<_Up>&&)): Likewise.
149 (operator=(_Up&&)): Use is_same instead of __is_optional, check
150 is_same and is_scalar.
151 (operator=(const optional<_Up>&)): Constrain with
152 __converts_from_optional and __assigns_from_optional.
153 (operator=(optional<_Up>&&)): Likewise.
154 * testsuite/20_util/optional/77288.cc: New.
155 * testsuite/20_util/optional/cons/value.cc: Adjust.
157 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
159 Implement LWG 2729 for tuple.
160 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
161 Suppress conditionally.
162 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
163 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
164 (_Tuple_impl(const _Head&)): Constrain.
165 (_Tuple_impl(_UHead&&)): Likewise.
166 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
167 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
168 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
169 (operator=(const tuple&)): Enable conditionally.
170 (operator=(tuple&&)): Suppress conditionally.
171 (operator=(const tuple<_UElements...>&)): Constrain.
172 (operator=(tuple<_UElements...>&&)): Likewise.
173 (operator=(const tuple&)): Enable conditionally (2-param tuple).
174 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
175 (operator=(const tuple<_U1, _U2>&)): Constrain.
176 (operator=(tuple<_U1, _U2>&&)): Likewise.
177 (operator=(const pair<_U1, _U2>&)): Likewise.
178 (operator=(pair<_U1, _U2>&&)): Likewise.
179 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
180 * testsuite/20_util/tuple/tuple_traits.cc: New.
182 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
185 Implement LWG 2729 for pair.
186 * include/bits/stl_pair.h (_PCC): New.
187 (_ConstructiblePair, _ImplicitlyConvertiblePair):
188 Turn into static member functions of _PCC.
189 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
191 (pair(const _T1&, const _T2&)): Adjust.
193 (pair(const pair<_U1, _U2>&)): Adjust.
194 (pair(_U1&&, const _T2&)): Likewise.
195 (pair(const _T1&, _U2&&)): Likewise.
196 (pair(_U1&&, _U2&&)): Likewise.
197 (pair(pair<_U1, _U2>&&)): Likewise.
198 (operator=(const pair&)): Make conditionally deleted.
199 (operator=(pair&&)): Make conditionally suppressed.
200 (operator=(const pair<_U1, _U2>&)): Constrain.
201 (operator=(pair<_U1, _U2>&&): Likewise.
202 * include/std/type_traits (__nonesuch): New.
203 * testsuite/20_util/pair/traits.cc: New.
205 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
208 * include/bits/stl_construct.h: (_Construct_novalue): New.
209 (_Destroy_n_aux, _Destroy_n): New.
210 * include/bits/stl_uninitialized.h: (type_traits):
211 New include in C++11 mode.
212 (__uninitialized_default_novalue_1): New.
213 (__uninitialized_default_novalue_n_1): Likewise.
214 (__uninitialized_default_novalue): Likewise.
215 (__uninitialized_default_novalue_n): Likewise.
216 (__uninitialized_copy_n_pair): Likewise.
217 (uninitialized_default_construct):
218 Use __uninitialized_default_novalue.
219 (uninitialized_default_construct_n):
220 Use __uninitialized_default_novalue_n.
221 (uninitialized_value_construct): Use __uninitialized_default.
222 (uninitialized_value_construct_n): Use __uninitialized_default_n.
223 (uninitialized_move): Use uninitialized_copy.
224 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
225 (destroy_at): Use _Destroy.
227 (destroy_n): Likewise.
228 * testsuite/20_util/specialized_algorithms/
229 memory_management_tools/1.cc: Add tests for exceptions,
230 add tests for trivial cases for construct and move.
232 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
234 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
235 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
237 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
240 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
241 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
242 division to int to work with Python 3.
244 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
246 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
247 display_hint to be set by subclasses.
248 (StdVariantPrinter): Use array for display_hint. Adjust output to be
249 more similar to std::any and std::optional output.
250 (register_type_printers): Add type printers for basic_string_view
251 typedefs and experimental::any. Adjust type printers for
252 fundamentals_v1 templates to match fundamentals_v2 and later.
253 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
256 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
258 (ListWorkerBase.get_value_from_node): Define new method.
259 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
261 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
263 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
264 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
265 Register for C++17 components in namespace std. Strip inline namespace
268 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
270 * doc/xml/manual/profile_mode.xml: Fix typo.
271 * doc/html/manual/profile_mode_devel.html: Regenerate.
273 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
274 Marc Glisse <marc.glisse@inria.fr>
276 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
277 (operator new(size_t, align_val_t)): Replace modulus operator with
280 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
282 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
283 Increase alignment if less than sizeof(void*).
284 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
285 Increase size if not a multiple of alignment.
287 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
289 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
290 * doc/html/*: Regenerate.
292 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
294 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
296 2016-09-14 Marek Polacek <polacek@redhat.com>
298 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
301 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
303 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
304 Move dg-do directive before dg-skip.
305 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
306 Move dg-do directive before dg-require.
307 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
308 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
309 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
310 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
311 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
312 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
313 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
314 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
315 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
316 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
317 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
318 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
319 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
320 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
321 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
323 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
324 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
325 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
326 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
327 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
329 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
331 Implement P0040R3, Extending memory management tools.
332 * include/bits/stl_uninitialized.h (utility): New include
334 (uninitialized_default_construct): New.
335 (uninitialized_default_construct_n): Likewise.
336 (uninitialized_value_construct): Likewise.
337 (uninitialized_value_construct_n): Likewise.
338 (uninitialized_move): Likewise.
339 (uninitialized_move_n): Likewise.
340 (destroy_at, destroy, destroy_n): Likewise.
341 * testsuite/20_util/specialized_algorithms/memory_management_tools/
344 2016-09-12 Jason Merrill <jason@redhat.com>
346 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
348 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
350 Implement P0253R1, Fixing a design mistake in the searchers
351 interface in Library Fundamentals.
352 * include/std/functional: (utility): New include in C++17 mode.
353 (default_searcher): Use a pair as return type, adjust the definition.
354 (boyer_moore_searcher): Likewise.
355 (boyer_moore_horspool_searcher): Likewise.
356 * testsuite/20_util/function_objects/searchers.cc: Adjust.
358 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
360 Implement C++17 string searchers.
361 * include/std/functional: (unordered_map, vector): New includes
363 (array, bits/stl_algo.h): Likewise.
364 (default_searcher, __boyer_moore_map_base): New.
365 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
366 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
367 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
368 (make_boyer_moore_searcher): Likewise.
369 (make_boyer_moore_horspool_searcher): Likewise.
370 * testsuite/20_util/function_objects/searchers.cc: New.
372 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
374 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
375 Move dg-do directive before dg-require.
376 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
377 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
379 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
380 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
381 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
382 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
383 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
384 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
385 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
386 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
387 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
388 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
389 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
390 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
391 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
393 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
395 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
396 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
397 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
399 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
401 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
403 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
405 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
407 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
409 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
411 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
413 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
415 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
417 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
419 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
421 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
423 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
425 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
427 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
429 * testsuite/23_containers/forward_list/debug/
430 iterator_self_move_assign_neg.cc: Likewise.
431 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
433 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
435 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
437 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
439 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
441 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
443 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
445 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
447 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
448 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
449 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
450 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
451 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
452 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
453 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
454 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
455 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
456 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
457 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
459 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
460 * testsuite/23_containers/map/debug/60499.cc: Likewise.
461 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
462 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
463 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
464 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
465 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
466 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
467 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
469 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
470 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
471 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
472 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
473 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
474 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
475 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
476 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
477 * testsuite/23_containers/multimap/debug/
478 iterator_self_move_assign_neg.cc: Likewise.
479 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
481 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
482 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
483 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
484 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
485 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
486 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
487 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
488 * testsuite/23_containers/multiset/debug/
489 iterator_self_move_assign_neg.cc: Likewise.
490 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
492 * testsuite/23_containers/set/debug/60499.cc: Likewise.
493 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
494 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
495 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
496 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
497 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
498 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
499 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
501 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
502 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
503 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
504 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
505 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
507 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
508 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
509 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
511 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
513 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
515 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
516 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
517 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
518 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
519 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
520 * testsuite/23_containers/unordered_map/debug/
521 invalid_local_iterator_compare_neg.cc: Likewise.
522 * testsuite/23_containers/unordered_map/debug/
523 invalid_local_iterator_range_neg.cc: Likewise.
524 * testsuite/23_containers/unordered_map/debug/
525 iterator_self_move_assign_neg.cc: Likewise.
526 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
528 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
530 * testsuite/23_containers/unordered_map/debug/
531 use_erased_local_iterator_neg.cc: Likewise.
532 * testsuite/23_containers/unordered_map/debug/
533 use_invalid_iterator_neg.cc: Likewise.
534 * testsuite/23_containers/unordered_map/debug/
535 use_invalid_local_iterator_neg.cc: Likewise.
536 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
537 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
539 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
541 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
543 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
545 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
547 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
549 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
551 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
553 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
555 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
557 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
559 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
561 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
563 * testsuite/23_containers/unordered_multimap/debug/
564 invalid_local_iterator_compare_neg.cc: Likewise.
565 * testsuite/23_containers/unordered_multimap/debug/
566 invalid_local_iterator_range_neg.cc: Likewise.
567 * testsuite/23_containers/unordered_multimap/debug/
568 iterator_self_move_assign_neg.cc: Likewise.
569 * testsuite/23_containers/unordered_multimap/debug/
570 max_load_factor_neg.cc: Likewise.
571 * testsuite/23_containers/unordered_multimap/debug/
572 self_move_assign_neg.cc: Likewise.
573 * testsuite/23_containers/unordered_multimap/debug/
574 use_erased_local_iterator_neg.cc: Likewise.
575 * testsuite/23_containers/unordered_multimap/debug/
576 use_invalid_iterator_neg.cc: Likewise.
577 * testsuite/23_containers/unordered_multimap/debug/
578 use_invalid_local_iterator_neg.cc: Likewise.
579 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
581 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
583 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
585 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
587 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
589 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
591 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
593 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
595 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
597 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
599 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
601 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
603 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
605 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
607 * testsuite/23_containers/unordered_multiset/debug/
608 invalid_local_iterator_compare_neg.cc: Likewise.
609 * testsuite/23_containers/unordered_multiset/debug/
610 invalid_local_iterator_range_neg.cc: Likewise.
611 * testsuite/23_containers/unordered_multiset/debug/
612 iterator_self_move_assign_neg.cc: Likewise.
613 * testsuite/23_containers/unordered_multiset/debug/
614 max_load_factor_neg.cc: Likewise.
615 * testsuite/23_containers/unordered_multiset/debug/
616 self_move_assign_neg.cc: Likewise.
617 * testsuite/23_containers/unordered_multiset/debug/
618 use_erased_local_iterator_neg.cc: Likewise.
619 * testsuite/23_containers/unordered_multiset/debug/
620 use_invalid_iterator_neg.cc: Likewise.
621 * testsuite/23_containers/unordered_multiset/debug/
622 use_invalid_local_iterator_neg.cc: Likewise.
623 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
624 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
625 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
626 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
628 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
629 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
630 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
632 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
634 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
636 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
637 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
638 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
639 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
640 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
641 * testsuite/23_containers/unordered_set/debug/
642 invalid_local_iterator_compare_neg.cc: Likewise.
643 * testsuite/23_containers/unordered_set/debug/
644 invalid_local_iterator_range_neg.cc: Likewise.
645 * testsuite/23_containers/unordered_set/debug/
646 iterator_self_move_assign_neg.cc: Likewise.
647 * testsuite/23_containers/unordered_set/debug/
648 max_load_factor_neg.cc: Likewise.
649 * testsuite/23_containers/unordered_set/debug/
650 self_move_assign_neg.cc: Likewise.
651 * testsuite/23_containers/unordered_set/debug/
652 use_erased_local_iterator_neg.cc: Likewise.
653 * testsuite/23_containers/unordered_set/debug/
654 use_invalid_iterator_neg.cc: Likewise.
655 * testsuite/23_containers/unordered_set/debug/
656 use_invalid_local_iterator_neg.cc: Likewise.
657 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
658 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
659 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
660 * testsuite/23_containers/vector/debug/
661 iterator_self_move_assign_neg.cc: Likewise.
662 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
664 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
665 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
666 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
667 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
668 * testsuite/29_atomics/atomic/60658.cc: Likewise.
669 * testsuite/29_atomics/atomic/60695.cc: Likewise.
670 * testsuite/29_atomics/atomic/62259.cc: Likewise.
671 * testsuite/29_atomics/atomic/64658.cc: Likewise.
672 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
673 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
674 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
677 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
679 * libsupc++/new_opant.cc: Include exception_defines.h.
680 * libsupc++/new_opvant.cc: Likewise.
682 2016-09-09 Jason Merrill <jason@redhat.com>
684 Implement P0035R4, C++17 new of over-aligned types.
685 * libsupc++/new: Declare aligned new/delete operators.
686 * config/abi/pre/gnu.ver: Export them.
687 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
689 * libsupc++/new_opa.cc: New.
690 * libsupc++/new_opant.cc: New.
691 * libsupc++/new_opva.cc: New.
692 * libsupc++/new_opva.cc: New.
693 * libsupc++/del_opa.cc: New.
694 * libsupc++/del_opant.cc: New.
695 * libsupc++/del_opsa.cc: New.
696 * libsupc++/del_opva.cc: New.
697 * libsupc++/del_opvant.cc: New.
698 * libsupc++/del_opvsa.cc: New.
699 * libsupc++/Makefile.am: Build them.
701 2016-09-05 Tim Shen <timshen@google.com>
703 * include/std/variant: include bits/move.h for std::addressof.
705 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
707 * include/std/variant (_Variant_storage::_M_storage()): Use
708 std::addressof instead of operator& to take address.
710 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
712 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
713 setrlimit on both native and cross targets.
714 * configure: Regenerate.
716 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
718 * include/bits/shared_ptr.h (_Assignable): New alias template.
719 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
720 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
721 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
723 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
724 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
725 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
726 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
728 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
729 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
731 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
733 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
734 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
735 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
736 expected errors. Remove unnecessary code.
737 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
739 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
741 * testsuite/23_containers/set/move_comparison.cc: New test.
743 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
746 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
749 * include/std/type_traits (is_constructible): Forward-declare...
750 (__is_base_to_derived_ref): ...and use here.
751 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
752 * testsuite/20_util/is_constructible/77395.cc: New.
753 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
754 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
756 * testsuite/20_util/tuple/77395.cc: New.
758 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
760 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
761 directive above dg-require-namedlocale directive.
762 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
763 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
764 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
765 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
766 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
768 2016-08-27 Tim Shen <timshen@google.com>
771 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
772 _M_expression_term): Modify to support dash literal.
773 * include/bits/regex_scanner.h: Add dash as a token type to make
774 a different from the mandated dash literal by escaping.
775 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
776 token in bracket expression parsing.
777 * testsuite/28_regex/regression.cc: Add new testcases.
779 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
782 * doc/xml/manual/intro.xml: Document DR 2127 change.
783 * doc/html/*: Regenerate.
784 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
785 (operator++(), operator++(int)): Use injected class name.
786 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
788 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
789 using -std in dg-options.
791 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
792 Pedro Alves <palves@redhat.com>
794 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
795 and restore dg-interpreter-batch-mode.
796 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
797 gdb-dg-runtest instead of dg-runtest.
798 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
800 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
802 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
803 precise patterns for basic_string constructors.
804 (GLIBCXX_3.4.23): Export new constructors.
805 * doc/xml/manual/intro.xml: Document LWG 2583 status.
806 * doc/html/*: Regenerate.
807 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
808 (basic_string(const basic_string&, size_type, const Alloc&)): Add
809 new constructor for LWG 2583.
810 (basic_string(const basic_string&, size_type, size_type)): Remove
812 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
813 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
814 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
815 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
817 2016-08-24 Aditya Kumar <hiraditya@msn.com>
819 * include/bits/algorithmfwd.h: Remove trailing whitespace.
820 * include/bits/shared_ptr_base.h: Likewise.
822 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
824 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
825 * include/profile/array (array): Likewise.
826 (array::swap): Fix exception specification for zero-sized arrays.
829 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
830 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
831 * testsuite/23_containers/map/77334.cc: New test.
833 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
834 * doc/html/*: Regenerate.
836 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
837 * testsuite/experimental/feat-lib-fund.cc: Likewise.
840 * include/bits/stl_iterator.h
841 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
842 define for C++98 mode.
843 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
844 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
846 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
847 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
848 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
849 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
851 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
852 difference operator for C++98.
853 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
855 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
856 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
857 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
858 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
859 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
861 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
862 _GLIBCXX14_CONSTEXPR.
863 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
864 * include/std/array (array::begin, array::end, array::rbegin)
865 (array::rend, array::cbegin, array:cend, array::crbegin)
866 (array::crend, array::operator[], array::at, array::front)
867 (array::back, array::data): Likewise.
868 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
869 with separate tests for C++11, C++14, and C++17.
870 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
871 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
872 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
874 2016-08-22 Tim Shen <timshen@google.com>
876 Split _M_dfs() into smaller functions.
877 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
878 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
879 (_M_handle_line_end_assertion, _M_handle_word_boundary)
880 (_M_handle_subexpr_lookahead, _M_handle_match)
881 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
882 Add separate function declarations.
883 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
885 2016-08-22 Gleb Natapov <gleb@scylladb.com>
888 * config/abi/pre/gnu-versioned-namespace.ver: Export
889 __cxa_init_primary_exception and std::exception_ptr(void*).
890 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
891 export __cxa_init_primary_exception and std::exception_ptr(void*).
892 * include/Makefile.am: Add new headers.
893 * include/Makefile.in: Regenerate.
894 * libsupc++/Makefile.am: Add new headers.
895 * libsupc++/Makefile.in: Regenerate.
896 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
897 * libsupc++/cxxabi_init_exception.h: New header.
898 (__cxa_init_primary_exception): Declare.
899 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
900 (__cxa_throw): Use __cxa_init_primary_exception.
901 * libsupc++/exception (std::exception): Move to ...
902 * libsupc++/exception.h: New header.
903 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
905 (__exception_ptr::__dest_thunk): New function template.
906 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
907 Use __cxa_allocate_exception and __cxa_init_primary_exception to
908 create exception_ptr.
909 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
910 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
912 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
914 * doc/xml/api.xml: Replace hardcoded links for specific versions with
915 link to docs for all releases.
916 * doc/html/*: Regenerate.
919 * doc/xml/manual/intro.xml: Document DR 2062 change.
920 * include/std/functional (function::swap): Add noexcept.
921 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
922 * testsuite/20_util/function/77322.cc: New test.
924 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
926 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
927 *-*-solaris* instead of -pthreads.
928 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
929 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
930 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
931 * testsuite/23_containers/list/pthread1.cc: Likewise.
932 * testsuite/23_containers/list/pthread5.cc: Likewise.
933 * testsuite/23_containers/map/pthread6.cc: Likewise.
934 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
935 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
936 * testsuite/30_threads/shared_mutex/*: Likewise.
937 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
938 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
939 default_weaktoshared.cc: Likewise.
940 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
941 mutex_weaktoshared.cc: Likewise.
942 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
943 dg-require-effective-target instead of using -std option.
944 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
946 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
947 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
949 * testsuite/30_threads/async/*: Likewise.
950 * testsuite/30_threads/call_once/*: Likewise.
951 * testsuite/30_threads/condition_variable/*: Likewise.
952 * testsuite/30_threads/condition_variable_any/*: Likewise.
953 * testsuite/30_threads/future/*: Likewise.
954 * testsuite/30_threads/lock/*: Likewise.
955 * testsuite/30_threads/mutex/*: Likewise.
956 * testsuite/30_threads/packaged_task/*: Likewise.
957 * testsuite/30_threads/promise/*: Likewise.
958 * testsuite/30_threads/recursive_mutex/*: Likewise.
959 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
960 * testsuite/30_threads/shared_future/*: Likewise.
961 * testsuite/30_threads/shared_lock/*: Likewise.
962 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
963 * testsuite/30_threads/this_thread/*: Likewise.
964 * testsuite/30_threads/thread/*: Likewise.
965 * testsuite/30_threads/timed_mutex/*: Likewise.
966 * testsuite/30_threads/try_lock/*: Likewise.
967 * testsuite/30_threads/unique_lock/*: Likewise.
969 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
970 * doc/html/*: Regenerate.
971 * include/experimental/functional (_Not_fn, not_fn): Match C++17
973 * include/std/functional (_Not_fn, not_fn): Define for C++17.
974 * testsuite/20_util/not_fn/1.cc: New.
975 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
976 Remove test for volatile-qualified wrapper.
978 * include/std/atomic (atomic::is_always_lock_free): Define.
979 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
980 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
981 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
982 * doc/xml/manual/status_cxx2017.xml: Update status.
983 * doc/html/*: Regenerate.
985 * include/experimental/tuple (apply): Qualify call to __apply_impl.
986 * include/std/tuple (apply): Likewise.
987 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
989 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
990 * testsuite/experimental/type_traits/value.cc: Likewise.
992 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
994 * doc/html/*: Regenerate.
996 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
998 Implement the latest proposed resolution of LWG 2756.
999 * include/std/optional (Optional_base(const _Tp&))
1000 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1001 (optional(nullopt_t)): New.
1002 (optional(_Up&&)): Invoke base directly with in_place
1003 rather than creating a temporary, add default template
1004 argument, change constraints.
1005 (optional(const optional<_Up>&)): Invoke base directly
1006 with in_place, remove unnecessary constraints.
1007 (optional(optional<_Up>&& __t)): Likewise.
1008 (optional(in_place_t, _Args&&...)): New.
1009 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1010 (operator=(_Up&&)): Add default template argument, change constraints.
1011 (operator=(const optional<_Up>&)): Put is_same first in the
1013 (operator=(optional<_Up>&&)): Likewise.
1014 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1015 verify assignment from something that can't be perfect-forwarded.
1016 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1017 that a nested optional is disengaged when constructed
1018 from a disengaged element type, and to verify that assignments
1019 from an engaged element type engage the optional.
1021 2016-08-18 Tim Shen <timshen@google.com>
1025 * include/Makefile.am: Add new file std/variant.
1026 * include/Makefile.in: Generated from Makefile.am.
1027 * include/bits/enable_special_members.h: Add a tag type to allow
1028 the construction in non-default constructor.
1029 * include/bits/uses_allocator.h: Add convenience traits to
1030 detect constructibility.
1031 * include/std/variant: Implement <variant>.
1032 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1033 * testsuite/20_util/variant/run.cc: Runtime tests.
1035 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1037 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1038 (test.new_tests): Rewrite section.
1039 (tests.dg.directives): New section.
1040 * doc/html/*: Regenerate.
1042 * doc/xml/manual/test.xml: Improve documentation of test targets.
1043 Document new-abi-baseline, check-debug, and check-parallel targets.
1045 * doc/xml/manual/build_hacking.xml: New section on shared library
1048 * doc/xml/manual/build_hacking.xml: Improve markup.
1049 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1051 * doc/xml/faq.xml: Change link text to "Testing".
1053 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1054 dg-options directive.
1056 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1058 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1059 directive and use effective target instead of dg-options.
1061 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1062 instead of -std in dg-options.
1063 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1064 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1065 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1066 * testsuite/20_util/hash/quality.cc: Likewise.
1067 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1068 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1069 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1070 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1071 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1072 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1074 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1075 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1076 * testsuite/27_io/rvalue_streams.cc: Likewise.
1078 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1080 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1081 Remove duplicate dg-options directive.
1083 * testsuite/ext/profile/all.cc: Use effective target instead of
1084 -std=gnu++11. Use dg-additional-options instead of repeating options.
1086 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1087 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1088 instead of dg-excess-errors.
1090 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1092 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1093 * testsuite/experimental/ratio/value.cc: Likewise.
1094 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1096 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1097 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1098 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1099 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1100 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1101 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1102 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1103 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1104 * testsuite/tr1/5_numerical_facilities/special_functions/
1105 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1106 C++17 compatibility.
1108 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1109 expected signatures for C++14 compatibility.
1112 * include/bits/basic_string.h (operator=(__sv_type)
1113 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1114 (replace(size_type, size_type, __sv_type))
1115 (replace(const_iterator, const_iterator, __sv_type))
1116 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1117 (compare(size_type, size_type, __sv_type)): Reformat.
1118 (_If_sv): Define helper for SFINAE constaints.
1119 (append(const _Tp&, size_type, size_type))
1120 (assign(const _Tp&, size_type, size_type))
1121 (insert(size_type, const _Tp&, size_type, size_type))
1122 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1124 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1126 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1128 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1130 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1132 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1134 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1136 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1138 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1140 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1142 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1144 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1147 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1150 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1151 pointers to start and end of storage.
1152 * testsuite/23_containers/vector/bool/72847.cc: New test.
1153 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1154 _M_finish after deallocating.
1155 (vector<bool>::_M_fill_insert): Likewise.
1156 (vector<bool>::_M_insert_range): Likewise.
1157 (vector<bool>::_M_insert_aux): Likewise.
1159 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1161 Implement LWG 2744 and LWG 2754.
1162 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1163 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1164 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1166 (emplace(_Args&&...)): Likewise.
1167 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1168 * include/std/utility: (__is_in_place_type_impl): New.
1169 (__is_in_place_type): Likewise.
1170 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1172 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1173 in_place constructor.
1174 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1175 * testsuite/20_util/any/requirements.cc: Add a test for
1176 in_place-constructing a non-default-constructible type.
1178 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1180 Add a feature macro for C++17 make_from_tuple.
1181 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1182 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1183 Qualify the call to get<>().
1184 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1186 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1188 * src/filesystem/ops.cc: Always include ostream and
1189 ext/stdio_filebuf.h.
1190 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1191 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1192 sendfile fails with ENOSYS or EINVAL.
1194 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1197 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1200 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1202 Implement C++17 make_from_tuple.
1203 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1204 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1206 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1209 * include/bits/basic_string.h
1210 (append(__sv_type, size_type, size_type)): Turn into a template,
1211 change parameter type, constrain, add a conversion to __sv_type
1212 from the dependent parameter type.
1213 (assign(__sv_type, size_type, size_type)): Likewise.
1214 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1215 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1217 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1219 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1221 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1223 * doc/xml/manual/status_cxx2017.xml: Update status table.
1224 * doc/html/manual/status.html: Regenerate.
1226 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1229 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1230 Qualify new operator.
1231 * testsuite/20_util/function/cons/72820.cc: New test.
1233 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1234 * doc/html/manual/status.html: Regenerate.
1235 * include/Makefile.am: Add new header.
1236 * include/Makefile.in: Regenerate.
1237 * include/bits/invoke.h: New header.
1238 (__invoke): Make constexpr. Add && to types in exception specification.
1239 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1240 names. Include <bits/invoke.h> and use std::__invoke.
1241 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1243 (invoke): Add && to types in exception specification.
1244 * include/std/tuple (apply, __apply_impl): Define for C++17.
1245 * testsuite/20_util/tuple/apply/1.cc: New test.
1246 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1249 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1251 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1252 * doc/html/manual/status.html: Regenerate.
1254 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1255 * testsuite/20_util/duration_cast/rounding.cc: New test.
1256 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1257 * doc/xml/manual/status_cxx2017.xml: Update status table.
1258 * doc/html/manual/status.html: Regenerate.
1259 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1261 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1262 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1263 * testsuite/20_util/duration/literals/range.cc: Likewise.
1265 * include/std/functional (__callable_functor): Remove.
1266 (_Function_handler::_M_invoke): Use __invoke instead of
1267 __callable_functor or mem_fn.
1268 (function::_Callable): Use lvalue in result_of expression.
1269 (function): Remove TODO comments about allocators.
1270 * testsuite/20_util/function/cons/refqual.cc: New test.
1272 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1274 * doc/xml/manual/status_cxx2017.xml: Update status table.
1275 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1276 (__invoke_impl): Remove exception specifications.
1277 (__invoke, invoke): Add exception specifications using
1278 __is_nothrow_callable.
1279 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1280 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1281 (__is_callable, __is_nothrow_callable): New traits.
1282 (is_callable, is_callable_v): New C++17 traits.
1283 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1284 * testsuite/20_util/is_callable/requirements/
1285 explicit_instantiation.cc: New test.
1286 * testsuite/20_util/is_callable/requirements/
1287 explicit_instantiation_ext.cc: New test.
1288 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1289 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1291 * testsuite/20_util/is_callable/value.cc: New test.
1292 * testsuite/20_util/is_callable/value_ext.cc: New test.
1293 * testsuite/20_util/is_nothrow_callable/requirements/
1294 explicit_instantiation.cc: New test.
1295 * testsuite/20_util/is_nothrow_callable/requirements/
1296 explicit_instantiation_ext.cc: New test.
1297 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1299 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1301 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1302 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1304 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1305 * doc/html/manual/status.html: Regenerate.
1307 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1308 effective target not dg-options. Move check for feature-test macro to:
1309 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1312 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1314 (__invoke_impl): Remove unused template parameters.
1315 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1317 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1318 and test __invoke extension for C++11.
1320 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1322 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1323 Define feature-test macro.
1324 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1327 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1328 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1329 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1330 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1331 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1333 * include/std/utility (as_const): Define.
1334 * testsuite/20_util/as_const/1.cc: New test.
1335 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1337 * include/bits/shared_ptr.h (owner_less): Add default template
1339 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1341 (owner_less<void>): Define specialization.
1342 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1344 * testsuite/20_util/owner_less/void.cc: New test.
1345 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1347 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1348 Define feature-test macro.
1349 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1350 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1351 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1352 (__cpp_lib_type_trait_variable_templates): Define.
1354 * include/bits/stl_function.h: Remove commented-out macro.
1355 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1356 Define feature-test macro.
1357 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1359 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1360 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1362 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1363 do #error for C++17.
1364 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1365 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1366 * include/tr1/bessel_function.tcc: Likewise.
1367 * include/tr1/beta_function.tcc: Likewise.
1368 * include/tr1/cmath: Likewise.
1369 * include/tr1/ell_integral.tcc: Likewise.
1370 * include/tr1/exp_integral.tcc: Likewise.
1371 * include/tr1/gamma.tcc: Likewise.
1372 * include/tr1/hypergeometric.tcc: Likewise.
1373 * include/tr1/legendre_function.tcc: Likewise.
1374 * include/tr1/modified_bessel_func.tcc: Likewise.
1375 * include/tr1/poly_hermite.tcc: Likewise.
1376 * include/tr1/poly_laguerre.tcc: Likewise.
1377 * include/tr1/riemann_zeta.tcc: Likewise.
1378 * include/tr1/special_function_util.h: Likewise.
1379 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1381 * include/std/type_traits (has_trivial_default_constructor): Remove.
1382 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1383 * testsuite/20_util/has_trivial_copy_assign/requirements/
1384 explicit_instantiation.cc: Remove test.
1385 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1387 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1389 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1390 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1391 explicit_instantiation.cc: Likewise.
1392 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1393 typedefs.cc: Likewise.
1394 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1395 * testsuite/20_util/has_trivial_default_constructor/requirements/
1396 explicit_instantiation.cc: Likewise.
1397 * testsuite/20_util/has_trivial_default_constructor/requirements/
1398 typedefs.cc: Likewise.
1399 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1401 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1402 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1403 and has_trivial_copy_assign are not defined.
1404 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1406 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1407 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1408 dg-error line number.
1409 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1412 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1414 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1415 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1416 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1418 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1420 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1422 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1424 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1426 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1429 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1432 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1433 dg-error to relevant line.
1434 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1436 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1438 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1440 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1441 options are present that aren't valid for C.
1442 * testsuite/abi/header_cxxabi.c: Likewise.
1444 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1445 check_value.cc: Do not add special functions to namespace std in TR1
1448 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1449 run for C++11 and later.
1450 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1452 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1453 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1454 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1455 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1456 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1458 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1460 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1461 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1463 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1465 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1467 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1468 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1469 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1470 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1471 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1472 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1473 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1474 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1476 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1477 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1478 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1479 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1481 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1482 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1483 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1484 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1486 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1487 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1488 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1489 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1491 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1492 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1493 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1494 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1495 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1497 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1498 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1499 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1500 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1502 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1503 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1504 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1505 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1506 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1507 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1508 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1509 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1510 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1511 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1512 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1513 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1514 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1515 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1516 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1517 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1518 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1519 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1520 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1521 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1522 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1523 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1524 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1525 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1526 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1527 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1528 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1529 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1530 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1531 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1532 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1533 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1534 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1535 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1536 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1537 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1539 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1540 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1541 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1542 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1543 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1544 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1545 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1546 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1548 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1549 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1550 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1551 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1552 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1553 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1555 * testsuite/tr1/5_numerical_facilities/special_functions/
1556 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1558 * testsuite/tr1/5_numerical_facilities/special_functions/
1559 09_cyl_bessel_j/check_value.cc: Likewise.
1560 * testsuite/tr1/5_numerical_facilities/special_functions/
1561 10_cyl_bessel_k/check_value.cc: Likewise.
1562 * testsuite/tr1/5_numerical_facilities/special_functions/
1563 11_cyl_neumann/check_value.cc: Likewise.
1564 * testsuite/tr1/5_numerical_facilities/special_functions/
1565 21_sph_bessel/check_value.cc: Likewise.
1566 * testsuite/tr1/5_numerical_facilities/special_functions/
1567 23_sph_neumann/check_value.cc: Likewise.
1569 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1571 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1572 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1573 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1574 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1575 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1576 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1578 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1580 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1583 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1584 additional flags for compiling libtestc++.a objects.
1586 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
1588 * include/bits/basic_string.h (data() const): Update comment.
1589 (data()): Add non-const overload for C++17.
1590 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1591 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1593 * include/bits/basic_string.tcc: Disable explicit instantiation
1594 declarations for C++17.
1596 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1597 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1598 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1600 * testsuite/26_numerics/headers/cmath/
1601 c99_classification_macros_c++11.cc: Likewise.
1602 * testsuite/26_numerics/headers/cmath/
1603 c99_classification_macros_c++98.cc: Likewise.
1604 * testsuite/26_numerics/headers/cmath/
1605 c99_classification_macros_c.cc: Likewise.
1607 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1608 for different construct/destroy counts in C++98 mode.
1610 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1612 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1614 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1617 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1618 C++98-compatible initialization for array.
1620 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1621 unused header and variable from compile-only test.
1622 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1623 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1624 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1625 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1628 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1629 Remove duplicate dg-options directive.
1631 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1632 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1634 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1635 linker options from compile-only tests.
1636 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1639 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1640 supported for C++11 and later.
1641 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1642 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1644 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
1646 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1648 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1650 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1653 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1654 Ensure test is compiled with optimization.
1656 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1657 Adjust dg-prune-output pattern for error in C++98 mode.
1659 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1660 run for C++11 or later.
1662 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1663 test to not rely on GNU extension (escaped normal characters in POSIX
1664 BRE). Enable tests for other strings which are now supported.
1666 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1667 c++11 instead of setting -std=gnu++14.
1670 * include/std/array (get): Use positive message for static assertions.
1671 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1672 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1673 specialization for invalid indices, with static assertion.
1674 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1676 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1677 dg-error to relevant line.
1678 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1680 * testsuite/23_containers/forward_list/requirements/dr438/
1681 assign_neg.cc: Likewise.
1682 * testsuite/23_containers/forward_list/requirements/dr438/
1683 constructor_1_neg.cc: Likewise.
1684 * testsuite/23_containers/forward_list/requirements/dr438/
1685 constructor_2_neg.cc: Likewise.
1686 * testsuite/23_containers/forward_list/requirements/dr438/
1687 insert_neg.cc: Likewise.
1688 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1690 * testsuite/26_numerics/random/linear_congruential_engine/
1691 requirements/non_uint_neg.cc: Likewise.
1692 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1693 Likewise. Also test for std::atomic_address.
1695 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
1697 Add missing variable traits, fix testsuite failures.
1698 * include/bits/uses_allocator.h (uses_allocator_v): New.
1699 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1701 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1702 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1703 * testsuite/20_util/duration/literals/range.cc: Likewise.
1704 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1705 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1706 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1707 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1708 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1710 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1711 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1714 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1716 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1717 not test 128-bit types.
1718 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1719 * testsuite/20_util/is_integral/value.cc: Likewise.
1720 * testsuite/20_util/is_signed/value.cc: Likewise.
1721 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1722 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1723 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1724 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1726 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1729 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1731 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1733 Implement C++17 variable templates for type traits.
1734 * include/std/chrono (treat_as_floating_point_v): New.
1735 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1736 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1737 (ratio_greater_equal_v): Likewise.
1738 * include/std/system_error (is_error_code_enum_v)
1739 (is_error_condition_enum_v): Likewise.
1740 * include/std/tuple (tuple_size_v): Likewise.
1741 * type_traits (conjunction_v, disjunction_v, negation_v)
1742 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1743 (is_array_v, is_pointer_v, is_lvalue_reference_v)
1744 (is_rvalue_reference_v, is_member_object_pointer_v)
1745 (is_member_function_pointer_v, is_enum_v, is_union_v)
1746 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1747 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1748 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1749 (is_trivially_copyable_v, is_standard_layout_v)
1750 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1751 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1752 (is_constructible_v, is_default_constructible_v)
1753 (is_copy_constructible_v, is_move_constructible_v)
1754 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1755 (is_destructible_v, is_trivially_constructible_v)
1756 (is_trivially_default_constructible_v)
1757 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1758 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1759 (is_trivially_move_assignable_v, is_trivially_destructible_v)
1760 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1761 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1762 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1763 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1764 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1765 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1766 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1767 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1769 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1770 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1771 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1773 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
1775 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1776 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1777 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1779 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
1781 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1782 * doc/html/manual/abi.html: Regenerate.
1784 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1785 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1787 * configure: Regenerate.
1788 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1790 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1791 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1792 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1793 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1795 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1796 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1797 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1799 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
1801 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1802 Adjust dg-prune-output pattern for error in C++98 mode.
1803 * testsuite/23_containers/deque/requirements/dr438/
1804 constructor_1_neg.cc: Likewise.
1805 * testsuite/23_containers/deque/requirements/dr438/
1806 constructor_2_neg.cc: Likewise.
1807 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1809 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1811 * testsuite/23_containers/list/requirements/dr438/
1812 constructor_1_neg.cc: Likewise.
1813 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1815 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1817 * testsuite/23_containers/vector/requirements/dr438/
1818 constructor_1_neg.cc: Likewise.
1819 * testsuite/23_containers/vector/requirements/dr438/
1820 constructor_2_neg.cc: Likewise.
1821 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1824 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1825 for different construct/destroy counts in C++98 mode.
1827 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1828 dg-options to dg-additional-options so that default options are used.
1829 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1831 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1832 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1834 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1835 Use dg-additional-options instead of repeating the common options.
1837 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1838 dg-do compile directive.
1839 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1841 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1843 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
1845 Implement std::string_view and P0254r2,
1846 Integrating std::string_view and std::string.
1847 * include/Makefile.am: Add string_view and string_view.tcc
1848 to the exported headers.
1849 * include/Makefile.in: Likewise.
1850 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
1852 (basic_string(__sv_type, const _Alloc&)): Likewise.
1853 (operator=(__sv_type)): Likewise.
1854 (operator __sv_type()): Likewise.
1855 (operator+=(__sv_type)): Likewise.
1856 (append(__sv_type __sv)): Likewise.
1857 (append(__sv_type, size_type, size_type)): Likewise.
1858 (assign(__sv_type)): Likewise.
1859 (assign(__sv_type, size_type, size_type)): Likewise.
1860 (insert(size_type, __sv_type)): Likewise.
1861 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1862 (replace(size_type, size_type, __sv_type)): Likewise.
1863 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1865 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
1866 (find(__sv_type, size_type)): Likewise.
1867 (rfind(__sv_type, size_type)): Likewise.
1868 (find_first_of(__sv_type, size_type)): Likewise.
1869 (find_last_of(__sv_type, size_type)): Likewise.
1870 (find_first_not_of(__sv_type, size_type)): Likewise.
1871 (find_last_not_of(__sv_type, size_type)): Likewise.
1872 (compare(__sv_type)): Likewise.
1873 (compare(size_type, size_type, __sv_type)): Likewise.
1874 (compare(size_type, size_type, __sv_type, size_type, size_type)):
1876 * include/bits/string_view.tcc: New.
1877 * include/std/string_view: Likewise.
1878 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1879 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1880 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1882 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1884 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1886 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1888 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1890 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1892 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1894 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1896 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1898 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1900 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1902 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1904 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
1905 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
1906 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
1907 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
1908 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
1909 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
1910 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
1911 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
1912 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
1913 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1915 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1917 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1919 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1921 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1923 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1925 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1927 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1929 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1930 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
1931 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
1932 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
1933 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1935 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1937 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1939 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1941 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1943 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1945 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1947 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1949 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1951 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1953 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1955 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1957 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1959 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1961 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1963 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1965 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1967 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1969 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1971 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1973 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1975 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1977 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1979 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1981 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1983 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1985 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1987 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1989 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1991 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1993 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1995 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1997 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1999 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2000 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2002 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2004 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2006 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2008 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2010 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2012 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2014 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2016 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2018 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2019 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2021 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2023 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2025 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2027 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2028 _S_concat enumerator.
2029 * testsuite/ext/rope/6.cc: New test.
2031 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2033 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2034 std::mt19937, std::thread and std::atomic to simplify test.
2035 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2037 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2040 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2041 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2042 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2043 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2044 * testsuite/23_containers/set/allocator/71964.cc: New test.
2046 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2047 delete[] instead of delete.
2049 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2051 * include/experimental/propagate_const (propagate_const::__t): Rename
2052 to _M_t and remove comment. Qualify std::move and std::forward.
2053 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2055 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2056 Define sized deallocation function.
2057 * testsuite/util/testsuite_new_operators.h:
2058 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2059 deallocation function.
2061 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2062 reads past the end of strings.
2063 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2065 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2066 invalid array accesses.
2067 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2068 Fix read past the end of string.
2069 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2071 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2072 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2074 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2075 leak) memory for arguments to placement delete.
2076 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2077 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2078 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2081 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2083 * doc/xml/manual/intro.xml: Document DR 2684 status.
2084 * doc/html/*: Regenerate.
2086 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2087 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2088 (atomic_uint64_t): Define (LWG 2441).
2089 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2091 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2093 * doc/xml/manual/intro.xml: Document DR 2441 status.
2095 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2096 to use perfect forwarding (LWG 2328).
2097 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2098 * doc/xml/manual/intro.xml: Document DR 2328 status.
2100 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2101 static objects for catching nullptr as pointer to member types.
2103 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2105 Clean up optional's comments.
2106 * include/std/optional: Remove incorrect section headers
2107 from comments when redundant, replace bare section
2108 headers with more descriptive comments.
2110 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2112 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2113 * include/bits/move.h: Likewise.
2114 * include/bits/postypes.h: Likewise.
2115 * include/debug/bitset: Likewise.
2116 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2117 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2119 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2120 * testsuite/util/thread/all.h: Likewise.
2122 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2126 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2127 nullptr match handlers of pointer type.
2129 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2131 Implement C++17 P0025 clamp.
2132 * include/bits/algorithmfwd.h: Declare clamp overloads.
2133 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2134 * testsuite/25_algorithms/clamp/1.cc: New test.
2135 * testsuite/25_algorithms/clamp/2.cc: New test.
2136 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2137 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2139 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2142 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2144 Fix the constraints for any's assignment operator template to properly
2145 reject assignment from a non-copyable lvalue.
2146 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2147 type for is_copy_constructible,
2148 * testsuite/20_util/any/requirements.cc: Add a test for
2149 non-copyable lvalues.
2151 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2153 * include/experimental/functional: Include <parallel/algorithm> in
2156 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2160 * include/bits/forward_list.h (forward_list): Update doxygen comments
2161 to reflect allocator propagation semantics. Remove ambiguous
2162 statements about data being lost.
2163 * include/bits/stl_deque.h (deque): Likewise.
2164 * include/bits/stl_list.h (list): Likewise.
2165 * include/bits/stl_map.h (map): Likewise.
2166 * include/bits/stl_multimap.h (multimap): Likewise.
2167 * include/bits/stl_multiset.h (multiset): Likewise.
2168 * include/bits/stl_set.h (set): Likewise.
2169 * include/bits/stl_vector.h (vector): Likewise.
2170 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2172 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2175 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2177 Implement P0032R3, Homogeneous interface for variant, any and optional,
2178 for the parts concerning any and optional.
2179 * include/std/any (_Storage()): Make constexpr and have it
2181 (any()): Make constexpr.
2182 (any(const any&)): Adjust.
2183 (any(any&&)): Likewise.
2184 (__any_constructible_t): New.
2185 (any(_ValueType&&)): Constrain.
2186 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2187 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2190 (operator=(const any&)): Likewise.
2191 (operator=(any&&)): Likewise.
2192 (operator=(_ValueType&&)): Constrain.
2193 (emplace(_Args&&...)): New.
2194 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2197 (swap(any&)): Adjust.
2201 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2202 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2203 (make_any(_Args&&...)): Likewise.
2204 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2205 * include/std/optional (in_place_t, in_place): Remove.
2206 (bad_optional_access): Add a comment referring to LEWG 72.
2207 (emplace(_Args&&...)): Constrain.
2209 (reset()): Likewise.
2210 (make_optional(_Args&&...)): Likewise.
2211 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2212 * include/std/utility (in_place_tag): New.
2213 (__in_place, __in_place_type, __in_place_index): Likewise.
2214 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2215 (in_place(__in_place*)): Likewise.
2216 (in_place(__in_place_type<_Tp>*)): Likewise.
2217 (in_place(__in_place_index<_Idx>*)): Likewise.
2218 * testsuite/20_util/any/assign/1.cc: Adjust.
2219 * testsuite/20_util/any/assign/emplace.cc: New.
2220 * testsuite/20_util/any/assign/self.cc: Adjust.
2221 * testsuite/20_util/any/cons/1.cc: Likewise.
2222 * testsuite/20_util/any/cons/in_place.cc: New.
2223 * testsuite/20_util/any/make_any.cc: Likewise.
2224 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2225 * testsuite/20_util/any/misc/swap.cc: Likewise.
2226 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2227 * testsuite/20_util/any/requirements.cc: New.
2228 * testsuite/20_util/in_place/requirements.cc: Likewise.
2229 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2230 * testsuite/20_util/optional/in_place.cc: Likewise.
2231 * testsuite/20_util/optional/make_optional.cc: Add tests for
2232 the new overloads of make_optional.
2234 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2236 Implement P0307R2, Making Optional Greater Equal Again.
2237 * include/experimental/optional (_Has_addressof): Fix the comment.
2238 * include/std/optional (_Has_addressof): Likewise.
2239 (operator=(_Up&&)): Constrain.
2240 (operator=(const optional<_Up>&)): Likewise.
2241 (operator=(optional<_Up>&&)): Likewise.
2242 (__optional_relop_t): New.
2243 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2244 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2245 Constrain and make transparent.
2246 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2247 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2248 Constrain and make transparent.
2249 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2250 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2251 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2252 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2253 (operator!=(const optional<_Tp>&, _Tp const&)):
2254 Constrain and make transparent.
2255 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2256 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2257 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2258 (operator>(const optional<_Tp>&, const _Tp&)):
2259 Constrain and make transparent.
2260 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2261 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2262 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2263 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2264 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2265 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2266 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2267 * testsuite/20_util/optional/relops/1.cc: Likewise.
2268 * testsuite/20_util/optional/relops/2.cc: Likewise.
2269 * testsuite/20_util/optional/relops/3.cc: Likewise.
2270 * testsuite/20_util/optional/relops/4.cc: Likewise.
2271 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2272 that optional's relops are transparent and don't synthesize
2273 operators. Also test that assignment sfinaes.
2275 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2278 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2279 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2280 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2281 on _GLIBCXX_ASSERTIONS.
2282 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2283 Include <unistd.h> for sleep.
2284 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2285 * include/parallel/merge.h: Likewise.
2286 * include/parallel/multiway_merge.h: Likewise.
2287 * include/parallel/partition.h: Likewise.
2288 * include/parallel/queue.h: Likewise.
2289 * include/parallel/sort.h: Likewise.
2290 * testsuite/25_algorithms/headers/algorithm/
2291 parallel_algorithm_assert.cc: New.
2293 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2294 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2295 Forward to different overload.
2297 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2300 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2302 Revert "Add non-const overload of std::string::data()".
2304 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2306 Implement P0307R2, Making Optional Greater Equal Again.
2307 * include/experimental/optional (_Has_addressof): Fix the comment.
2308 * include/std/optional (_Has_addressof): Likewise.
2309 (operator=(_Up&&)): Constrain.
2310 (operator=(const optional<_Up>&)): Likewise.
2311 (operator=(optional<_Up>&&)): Likewise.
2312 (__optional_relop_t): New.
2313 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2314 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2315 Constrain and make transparent.
2316 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2317 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2318 Constrain and make transparent.
2319 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2320 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2321 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2322 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2323 (operator!=(const optional<_Tp>&, _Tp const&)):
2324 Constrain and make transparent.
2325 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2326 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2327 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2328 (operator>(const optional<_Tp>&, const _Tp&)):
2329 Constrain and make transparent.
2330 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2331 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2332 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2333 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2334 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2335 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2336 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2337 * testsuite/20_util/optional/relops/1.cc: Likewise.
2338 * testsuite/20_util/optional/relops/2.cc: Likewise.
2339 * testsuite/20_util/optional/relops/3.cc: Likewise.
2340 * testsuite/20_util/optional/relops/4.cc: Likewise.
2341 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2342 that optional's relops are transparent and don't synthesize
2343 operators. Also test that assignment sfinaes.
2345 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2347 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2349 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2350 instead of _M_data().
2351 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2353 (append(const basic_string&)): Likewise.
2354 (append(const basic_string&, size_type, size_type)): Likewise.
2355 (assign(const basic_string&, size_type, size_type)): Likewise.
2356 (insert(size_type, const basic_string&)): Likewise.
2357 (insert(size_type, const basic_string&, size_type, size_type)):
2359 (replace(size_type, size_type, const basic_string&, size_type,
2360 size_type)): Likewise.
2361 (replace(__const_iterator, __const_iterator, const basic_string&)):
2363 (c_str(), data()): Use c_str() instead of _M_data().
2364 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2365 (compare(const basic_string&)): Use data() instead of _M_data().
2366 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2367 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2368 Pass raw pointers to _S_copy.
2369 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2371 (find(const _CharT*, size_type, size_type)): Use data instead of
2373 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2374 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2375 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2377 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2379 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2380 * doc/xml/manual/intro.xml: Document DR 2458 status.
2381 * doc/html*: Regenerate.
2383 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2384 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2385 Only include <array>.
2386 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2388 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2389 * doc/html*: Regenerate.
2391 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2392 Add testcase from LWG 2164.
2394 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2396 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2397 to _M_realloc_insert.
2398 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2399 (_M_realloc_insert): Declare new function.
2400 (_M_emplace_back_aux): Remove definition.
2401 * include/bits/vector.tcc (emplace_back(_Args...)):
2402 Use _M_realloc_insert.
2403 (insert(const_iterator, const value_type&)): Likewise.
2404 (_M_insert_rval, _M_emplace_aux): Likewise.
2405 (_M_emplace_back_aux): Remove declaration.
2406 (_M_realloc_insert): Define.
2407 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2408 Adjust expected results for emplacing an lvalue with reallocation.
2410 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2412 Implement std::optional.
2413 * include/Makefile.am: Add optional to exported headers.
2414 * include/Makefile.in: Likewise.
2415 * include/std/optional: New.
2416 * testsuite/20_util/optional/typedefs.cc: Likewise.
2417 * testsuite/20_util/optional/relops/2.cc: Likewise.
2418 * testsuite/20_util/optional/relops/3.cc: Likewise.
2419 * testsuite/20_util/optional/relops/4.cc: Likewise.
2420 * testsuite/20_util/optional/relops/5.cc: Likewise.
2421 * testsuite/20_util/optional/relops/1.cc: Likewise.
2422 * testsuite/20_util/optional/relops/6.cc: Likewise.
2423 * testsuite/20_util/optional/nullopt.cc: Likewise.
2424 * testsuite/20_util/optional/in_place.cc: Likewise.
2425 * testsuite/20_util/optional/make_optional.cc: Likewise.
2426 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2427 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2428 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2429 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2430 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2431 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2432 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2433 * testsuite/20_util/optional/cons/default.cc: Likewise.
2434 * testsuite/20_util/optional/cons/move.cc: Likewise.
2435 * testsuite/20_util/optional/cons/value.cc: Likewise.
2436 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2437 * testsuite/20_util/optional/requirements.cc: Likewise.
2438 * testsuite/20_util/optional/observers/2.cc: Likewise.
2439 * testsuite/20_util/optional/observers/3.cc: Likewise.
2440 * testsuite/20_util/optional/observers/4.cc: Likewise.
2441 * testsuite/20_util/optional/observers/5.cc: Likewise.
2442 * testsuite/20_util/optional/observers/1.cc: Likewise.
2443 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2444 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2445 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2446 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2447 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2448 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2449 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2450 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2451 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2452 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2453 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2454 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2455 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2456 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2457 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2458 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2459 * testsuite/20_util/optional/swap/1.cc: Likewise.
2461 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2463 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2465 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2467 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2468 * doc/html/*: Regenerate.
2470 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2473 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2474 * include/Makefile.in: Likewise.
2475 * include/std/any: New.
2476 * testsuite/20_util/any/assign/1.cc: Likewise.
2477 * testsuite/20_util/any/assign/2.cc: Likewise.
2478 * testsuite/20_util/any/assign/self.cc: Likewise.
2479 * testsuite/20_util/any/cons/1.cc: Likewise.
2480 * testsuite/20_util/any/cons/2.cc: Likewise.
2481 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2482 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2483 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2484 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2485 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2486 * testsuite/20_util/any/misc/swap.cc: Likewise.
2487 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2488 * testsuite/20_util/any/observers/type.cc: Likewise.
2489 * testsuite/20_util/any/typedefs.cc: Likewise.
2491 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2493 Add a new header for diagnosing the use of C++17 facilities
2495 * include/bits/c++17_warning.h: New.
2497 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2499 Implement LWG 2451, optional<T> should 'forward' T's
2500 implicit conversions.
2501 * include/experimental/optional (__is_optional_impl, __is_optional):
2503 (optional()): Make constexpr and default.
2504 (optional(_Up&&), optional(const optional<_Up>&),
2505 optional(optional<_Up>&& __t): New.
2506 (operator=(_Up&&)): Constrain.
2507 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2508 * testsuite/experimental/optional/cons/value.cc:
2509 Add tests for the functionality added by LWG 2451.
2510 * testsuite/experimental/optional/cons/value_neg.cc: New.
2512 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2515 any_cast doesn't work with rvalue reference targets and cannot
2516 move with a value target.
2517 * include/experimental/any (any(_ValueType&&)): Constrain and
2518 add an overload that doesn't forward.
2519 (any_cast(any&&)): Constrain and add an overload that moves.
2520 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2521 the functionality added by LWG 2509.
2523 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2525 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2527 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2530 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2532 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2533 Define inline. Forward to _M_emplace_aux.
2534 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2535 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2536 (_Temporary_value): New RAII type using allocator to construct/destroy.
2537 (_S_insert_aux_assign): Remove.
2538 (_M_insert_aux): Make non-variadic.
2539 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2540 Use _Temporary_value.
2541 (emplace(const_iterator, _Args&&...)): Remove definition.
2542 (_M_insert_rval, _M_emplace_aux): Define.
2543 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2544 (_M_fill_insert): Use _Temporary_value.
2545 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2546 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2547 Adjust expected results for emplacing an lvalue with reallocation.
2548 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2549 expected results to account for construction/destruction of temporary
2551 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2553 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2556 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2557 Call remove_all for children of a directory.
2558 * testsuite/experimental/filesystem/operations/create_directories.cc:
2561 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
2563 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2564 dg-error line numbers.
2565 * testsuite/23_containers/array/tuple_interface/
2566 tuple_element_debug_neg.cc: Likewise.
2567 * testsuite/25_algorithms/lexicographical_compare/debug/
2568 irreflexive_neg.cc: Remove.
2570 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2572 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2573 than specific target.
2575 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
2578 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2581 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
2583 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2586 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2588 * configure.host: Remove mep-* support.
2590 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2592 * configure: Regenerate.
2593 * configure.host: Remove support for knetbsd.
2594 * crossconfig.m4: Likewise.
2596 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
2599 * include/tr1/hashtable_policy.h
2600 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2601 dereferenceable to avoid check on lower_bound result.
2602 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2603 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2604 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2605 Always return a value greater than input value. Set _M_next_resize to
2606 max value when reaching highest prime number.
2607 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2609 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2610 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2612 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2613 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2616 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
2619 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2620 Remove irreflexive checks.
2621 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2622 binary_search): Likewise.
2623 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2624 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2625 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2626 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2627 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2628 Add constructor from array.
2630 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
2632 * include/debug/debug.h
2633 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2634 (__glibcxx_requires_subscript): Move...
2635 * include/debug/assertions.h: ...here and add __builtin_expect.
2636 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2637 * include/bits/stl_deque.h
2638 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2639 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2640 (std::deque<>::back()): Likewise.
2641 (std::deque<>::pop_front()): Likewise.
2642 (std::deque<>::pop_back()): Likewise.
2643 (std::deque<>::swap(deque&)): Add allocator check.
2644 * include/bits/stl_vector.h
2645 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2646 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2647 (std::vector<>::back()): Likewise.
2648 (std::vector<>::pop_back()): Likewise.
2649 (std::vector<>::swap(vector&)): Add allocator check.
2651 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
2653 Provide swappable traits (p0185r1)
2654 * include/std/type_traits (is_swappable, is_nothrow_swappable,
2655 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2656 is_nothrow_swappable_v, is_swappable_with_v,
2657 is_nothrow_swappable_with_v): New.
2658 * include/bits/stl_pair.h: Use it as per p0185r1.
2659 * include/bits/stl_queue.h: Likewise.
2660 * include/bits/stl_stack.h: Likewise.
2661 * include/bits/unique_ptr.h: Likewise.
2662 * include/std/tuple: Likewise.
2663 * include/std/array: Likewise. Fix zero-size member swap.
2664 * include/bits/hashtable.h: Use __and_.
2665 * testsuite/20_util/is_nothrow_swappable/requirements/
2666 explicit_instantiation.cc: Change test options to std=gnu++17.
2667 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2669 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2670 * testsuite/20_util/is_swappable/requirements/
2671 explicit_instantiation.cc: Likewise.
2672 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2673 * testsuite/20_util/is_swappable/value.cc: Likewise.
2674 * testsuite/20_util/is_nothrow_swappable/requirements/
2675 explicit_instantiation_ext.cc: New.
2676 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2678 * testsuite/20_util/is_nothrow_swappable/value.h: New.
2679 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2680 * testsuite/20_util/is_nothrow_swappable_with/requirements/
2681 explicit_instantiation.cc: New.
2682 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2684 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2685 * testsuite/20_util/is_swappable/requirements/
2686 explicit_instantiation_ext.cc: New.
2687 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2688 * testsuite/20_util/is_swappable/value.h: New.
2689 * testsuite/20_util/is_swappable/value_ext.cc: New.
2690 * testsuite/20_util/is_swappable_with/requirements/
2691 explicit_instantiation.cc: New.
2692 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2693 * testsuite/20_util/is_swappable_with/value.cc: New.
2694 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2695 dg-error line numbers.
2696 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2699 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
2701 * include/std/array: Remove trailing whitespace.
2702 * include/std/atomic: Likewise.
2703 * include/std/bitset: Likewise.
2704 * include/std/chrono: Likewise.
2705 * include/std/complex: Likewise.
2706 * include/std/condition_variable: Likewise.
2707 * include/std/fstream: Likewise.
2708 * include/std/functional: Likewise.
2709 * include/std/future: Likewise.
2710 * include/std/iomanip: Likewise.
2711 * include/std/iosfwd: Likewise.
2712 * include/std/istream: Likewise.
2713 * include/std/limits: Likewise.
2714 * include/std/ratio: Likewise.
2715 * include/std/scoped_allocator: Likewise.
2716 * include/std/sstream: Likewise.
2717 * include/std/stdexcept: Likewise.
2718 * include/std/string: Likewise.
2719 * include/std/system_error: Likewise.
2720 * include/std/thread: Likewise.
2721 * include/std/tuple: Likewise.
2722 * include/std/type_traits: Likewise.
2723 * include/std/utility: Likewise.
2724 * include/std/valarray: Likewise.
2725 * include/std/vector: Likewise.
2727 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2728 new overloaded functions.
2729 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2730 to avoid creating a redundant temporary.
2731 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2734 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
2736 * include/bits/stl_deque.h
2737 (std::deque<>::operator=): Call _M_assign_aux.
2738 (std::deque<>::assign(initializer_list<>)): Likewise.
2739 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2740 (std::deque<>::insert(const_iterator, initializer_list<>)):
2741 Call _M_range_insert_aux.
2742 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2744 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2745 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2746 * include/bits/deque.tcc
2747 (std::deque<>::operator=): Call _M_range_insert_aux.
2748 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2750 * include/bits/stl_vector.h
2751 (std::vector<>::operator=): Call _M_assign_aux.
2752 (std::vector<>::assign(initializer_list<>)): Likewise.
2753 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2754 (std::vector<>::insert(const_iterator, initializer_list<>)):
2755 Call _M_range_insert.
2756 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2758 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
2760 * include/std/tuple (_Head_base<>): Default specialization condition at
2763 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2765 Support allocators in tuples of zero size.
2766 * include/std/tuple (tuple<>::tuple(),
2767 tuple<>::tuple(allocator_arg_t, const _Alloc&),
2768 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2769 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2771 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
2774 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2775 Add or remove permissions according to perms argument.
2776 * testsuite/experimental/filesystem/operations/permissions.cc: New
2779 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2781 Protect allocator-overloads of tuple-from-tuple constructors
2782 from cases that would create dangling references.
2783 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2784 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2785 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2786 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2788 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
2790 * doc/xml/manual/backwards_compatibility.xml: Adjust
2791 lists.debian.org link to https.
2792 * doc/html/manual/backwards.html: Regenerate.
2794 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
2796 * doc/xml/manual/abi.xml: Adjust URL to use https.
2797 * doc/html/manual/*: Regenerate.
2799 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
2802 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2803 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2804 check for _NotSameTuple.
2805 * include/std/tuple (_TMCT): New.
2806 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2807 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2808 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2809 const tuple<_UElements...>&)): Likewise.
2810 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2811 tuple<_UElements...>&&)): Likewise.
2812 * testsuite/20_util/tuple/cons/66338.cc: New.
2814 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
2816 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2817 * configure: Regenerate.
2818 * config.h.in: Regenerate.
2820 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2821 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2822 Remove const qualification on function. Replace
2823 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2824 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2825 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2827 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
2829 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2830 * include/bits/hashtable_policy.h
2831 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2832 having load factor management.
2833 (_Mask_range_hashing): New.
2835 (_Power2_rehash_policy): New.
2836 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2837 partial specializations only depend on whether iterators are constant
2839 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2840 test new hash policy.
2841 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2843 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2845 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2847 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2849 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2851 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
2852 using the new hash policy.
2853 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
2855 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
2857 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
2859 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
2861 * include/debug/safe_iterator.h
2862 (_Safe_iterator<>::operator->()): Implement using underlying iterator
2864 * include/debug/safe_local_iterator.h
2865 (_Safe_local_iterator<>::operator->()): Likewise.
2867 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
2869 * testsuite/experimental/memory_resource/1.cc: Add required argument
2870 to dg-require-atomic-builtins.
2872 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
2875 * include/debug/bitset: Add #pragma GCC system_header.
2876 * include/debug/deque: Likewise.
2877 * include/debug/list: Likewise.
2878 * include/debug/map: Likewise.
2879 * include/debug/set: Likewise.
2880 * include/debug/string: Likewise.
2881 * include/debug/unordered_map: Likewise.
2882 * include/debug/unordered_set: Likewise.
2883 * include/debug/vector: Likewise.
2884 * include/debug/functions.h: Adjust whitespace.
2886 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
2889 * testsuite/experimental/memory_resource/1.cc: Require atomics.
2891 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
2894 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
2895 exception constructors with __sso_string parameters.
2897 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
2899 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
2900 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2901 Test begin and end functions.
2902 * testsuite/experimental/filesystem/iterators/
2903 recursive_directory_iterator.cc: Likewise.
2906 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
2907 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
2909 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2910 Overload operator* to move from rvalues.
2913 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
2914 * testsuite/experimental/filesystem/operations/create_directory.cc:
2918 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
2919 base path to exception.
2920 * testsuite/experimental/filesystem/operations/canonical.cc: Test
2921 paths contained in exception.
2923 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
2927 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2929 (directory_iterator::operator++(int)): Return proxy.
2930 (recursive_directory_iterator::operator++(int)): Likewise.
2931 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2932 Test post-increment.
2933 * testsuite/experimental/filesystem/iterators/
2934 recursive_directory_iterator.cc: Likewise.
2936 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
2939 * testsuite/experimental/filesystem/iterators/
2940 recursive_directory_iterator.cc: Fix test02 to not call member
2941 functions on invalid iterator, and use VERIFY not assert.
2943 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
2945 Avoid endless run-time recursion for copying single-element
2946 tuples where the element type is by-value constructible
2948 * include/std/tuple (_NotSameTuple): New.
2949 * include/std/tuple (tuple(_UElements&&...): Use it.
2950 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
2952 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
2955 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
2956 Initialize scalar member variables in default constructor.
2957 * testsuite/experimental/filesystem/iterators/
2958 recursive_directory_iterator.cc: Test default construction.
2960 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2962 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
2964 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
2966 * testsuite/experimental/filesystem/path/native/string.cc: Add
2967 dg-require-filesystem-ts directive.
2969 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
2972 * include/experimental/memory_resource
2973 (__resource_adaptor_imp::do_allocate): Do not default-construct
2975 (__resource_adaptor_imp::do_deallocate): Likewise. Use
2976 allocator_traits to get pointer type.
2977 (__null_memory_resource::do_allocate): Remove unused parameters.
2978 (__null_memory_resource::do_deallocate): Likewise.
2979 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
2980 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
2981 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
2983 * testsuite/experimental/memory_resource/1.cc: Here.
2984 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
2985 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
2987 2016-04-29 Chris Gregory <czipperz@gmail.com>
2989 * config/*: Remove trailing whitespace.
2991 * testsuite/tr1/*: Likewise.
2992 * testsuite/util/*: Likewise.
2994 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
2997 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
2999 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3001 * include/std/atomic (atomic<_Tp>): Likewise.
3002 * include/std/shared_mutex (shared_lock): Likewise.
3003 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3004 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3005 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3006 * testsuite/29_atomics/atomic/70766.cc: New test.
3007 * testsuite/30_threads/shared_lock/70766.cc: New test.
3009 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3010 __detail::_Insert): Improve comments.
3012 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3015 * include/std/limits: Update comments about DRs.
3016 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3017 numeric_limits<const volatile _Tp>): Define unconditionally.
3019 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3022 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3023 static counter to return a different path on every call.
3025 2016-04-22 Tim Shen <timshen@google.com>
3028 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3029 Fix the match_not_bow and match_not_eow behavior.
3030 * testsuite/28_regex/regression.cc: Add testcase.
3032 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3035 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3036 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3038 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3041 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3042 Override endianness bit in mode.
3043 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3044 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3045 that little_endian mode is ignored.
3046 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3049 * src/filesystem/ops.cc (close_fd): New function.
3050 (do_copy_file): Set permissions before copying file contents. Check
3051 result of closing file descriptors. Don't copy streambuf when file
3053 (copy(const path&, const path&, copy_options, error_code&)): Use
3054 lstat for source file when copy_symlinks is set.
3055 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3057 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3058 operator~ operator&=, operator|=, operator^=): Add noexcept to
3059 overloaded operators for copy_options, perms and directory_options.
3060 * src/filesystem/ops.cc (make_file_type, make_file_status,
3061 is_not_found_errno, file_time): Add noexcept.
3063 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3065 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3067 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3070 * include/bits/random.h: Reword static assertion messages to state
3071 positive conditions.
3072 * include/bits/random.tcc: Likewise.
3073 * include/bits/uniform_int_dist.h: Likewise.
3074 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3077 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3079 * config/cpu/sh/atomicity.h: Fix typo in comment.
3082 * include/std/thread (operator<, operator==): Move definitions to
3084 * testsuite/30_threads/thread/id/70294.cc: New test.
3086 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3087 -Wno-pedantic to dg-options.
3088 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3089 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3091 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3092 Remove extra semi-colon.
3093 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3094 Always supply second argument to static_assert.
3095 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3097 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3099 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3100 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3101 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3102 alignof when operand is an object not a type.
3103 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3104 * testsuite/decimal/make-decimal.cc: Likewise.
3105 * testsuite/experimental/type_traits/value.cc: Always supply second
3106 argument to static_assert.
3107 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3110 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3112 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3113 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3114 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3115 Likewise. Add licence and change to compile-only test.
3117 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3119 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3121 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3124 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3126 * include/bits/specfun.h: Trivial comment misspelling.
3128 2016-04-14 Jason Merrill <jason@redhat.com>
3130 Revert Jonathan's empty ABI change from yesterday.
3132 2016-04-13 Martin Sebor <msebor@redhat.com>
3135 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3136 upper bound is positive.
3138 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3140 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3141 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3142 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3143 of functions taking empty structs by value. Add a template parameter
3144 to overloads without hints. Rename overloads with hints to
3146 (_Hashtable::_M_erase(true_type, const_iterator),
3147 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3148 by reordering parameters.
3149 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3150 _M_emplace_hint instead of _M_emplace.
3151 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3152 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3153 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3154 __shared_ptr): Likewise.
3155 * include/bits/stl_algo.h (replace_if): Likewise.
3156 * include/bits/stl_pair.h (piecewise_construct_t,
3157 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3158 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3159 __uses_alloc0): Likewise.
3160 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3161 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3162 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3163 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3164 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3165 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3166 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3168 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3170 Document C++17/TR29124 C++ Special Math Functions.
3171 * include/bits/specfun.h: Add Doxygen markup.
3173 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3175 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3177 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3179 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3180 * src/Makefile.in: Regenerate.
3182 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3185 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3186 __atomic_fetch_add for bool.
3187 * configure: Regenerate.
3189 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3192 * src/c++11/thread.cc (execute_native_thread_routine,
3193 execute_native_thread_routine_compat): Give internal linkage.
3194 * testsuite/30_threads/thread/70503.cc: New test.
3196 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3199 * include/bits/stl_pair.h (_ConstructiblePair,
3200 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3201 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3202 for same-type cases.
3203 * testsuite/20_util/pair/70437.cc: New.
3205 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3208 * config/abi/pre/gnu.ver: Add new symbol.
3209 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3210 * testsuite/18_support/free_eh_pool.cc: New test.
3212 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3214 * include/Makefile.am (install-freestanding-headers): Add
3215 concept_check.h and move.h to the installed headers.
3216 * include/Makefile.in: Regenerated.
3217 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3218 freestanding implementations.
3219 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3220 that this macro has no effect for freestanding implementations.
3221 * doc/html/manual/using_macros.html: Likewise.
3223 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3226 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3228 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3230 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3231 * doc/html/*: Regenerate.
3234 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3235 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3236 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3237 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3238 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3239 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3240 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3242 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3243 namespace before including TR1 headers.
3244 * testsuite/tr1/headers/c++200x/math.cc: New test.
3246 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3249 * include/c_global/cstdarg: Undefine __need___va_list.
3250 * include/c_global/cstddef: Undefine all kinds of __need_*.
3252 2016-02-16 Tim Shen <timshen@google.com>
3255 * include/bits/regex_scanner.h: Add different special character
3256 sets for grep and egrep regex.
3257 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3258 * testsuite/28_regex/regression.cc: Add new testcase.
3260 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3262 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3263 added 'constexpr' in previous commit.
3264 * configure: Regenerate.
3267 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3268 checks for all targets except *-*-solaris2.* and ensure we find the
3269 libc math.h header not our own.
3270 * configure: Regenerate.
3272 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3274 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3275 New file. Copied over from s390-linux-gnu.
3277 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3280 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3281 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3282 * config.h.in: Regenerate.
3283 * configure: Regenerate.
3284 * testsuite/21_strings/c_strings/char/69626.cc: New.
3286 * doc/html/index.html: Regenerate.
3288 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3289 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3290 * doc/html/*: Regenerate.
3292 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3295 * include/c_compatibility/math.h: Move header guards.
3296 * include/c_compatibility/stdlib.h: Likewise.
3298 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3301 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3303 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3306 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3307 isinf and isnan functions into two independent checks. Check on hpux.
3308 * config.h.in: Regenerate.
3309 * configure: Regenerate.
3310 * include/c_global/cmath (isinf(double), isnan(double)): Use
3311 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3314 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3316 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3318 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3321 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3322 -ffp-contract=off, and -ffloat-store to disable excess precision.
3323 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3326 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3329 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3330 random_access_iterator_tag>): Check is_move_assignable when moving.
3331 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3333 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3334 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3335 * testsuite/25_algorithms/move/69478.cc: New.
3336 * testsuite/25_algorithms/move_backward/69478.cc: new.
3338 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3340 * include/c_compatibility/stdlib.h: Include wide character related
3341 definitions only when they are available in cstdlib.
3343 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3346 * include/Makefile.am: Add new header.
3347 * include/Makefile.in: Regenerate.
3348 * include/bits/random.h (uniform_int_distribution): Move to
3349 bits/uniform_int_dist.h.
3350 * include/bits/random.tcc (uniform_int_distribution::operator(),
3351 uniform_int_distribution::__generate_impl): Likewise.
3352 * include/bits/uniform_int_dist.h: New header.
3353 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3354 <bits/uniform_int_dist.h> instead of <random>.
3355 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3356 move_iterators/1.cc: Include correct header for uninitialized_copy.
3357 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3358 move_iterators/1.cc: Likewise.
3359 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3361 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3363 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3366 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3368 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3370 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3371 * include/c_compatibility/math.h: Import the TR29124 functions
3372 into the global namespace.
3373 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3374 xfail and make compile-only.
3375 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3376 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3377 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3378 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3379 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3380 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3381 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3382 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3383 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3384 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3385 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3386 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3387 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3388 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3389 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3390 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3391 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3392 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3393 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3394 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3396 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3399 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3400 define result_type for types which can be safely used with valarrays.
3401 * testsuite/26_numerics/valarray/69116.cc: New.
3404 * config/os/gnu-linux/os_defines.h: Define
3405 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3406 * include/c_global/cmath (isinf, isnan): Check it.
3407 * doc/xml/manual/internals.xml: Document it.
3408 * doc/html/*: Regenerate.
3410 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3413 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3414 * include/ext/type_traits.h: Likewise.
3415 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3416 for presence of C headers.
3417 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3418 dg-error line number.
3419 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3420 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3421 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3423 2016-01-20 Torvald Riegel <triegel@redhat.com>
3426 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3428 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3431 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3432 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3433 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3434 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3435 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3436 Add using declarations.
3437 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3440 * include/c_global/ccomplex: Ensure C++ language linkage.
3441 * include/c_global/cmath: Likewise.
3442 * include/c_global/cstdlib: Likewise.
3443 * include/c_global/ctgmath: Likewise.
3444 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3446 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3450 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3451 --enable-cheaders=c_global configs.
3452 * include/Makefile.in: Regenerate.
3453 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3454 test and allow inclusion from C files.
3455 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3456 (at_quick_exit, quick_exit): Add using directives.
3457 * include/c_global/cmath: Use #include_next for math.h.
3458 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3459 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3460 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3461 Remove xfail for most targets.
3462 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3464 2016-01-18 Torvald Riegel <triegel@redhat.com>
3466 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3467 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3468 and move after its definition.
3469 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3470 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3471 __GXX_WEAK__, and only provide transactional clones if
3472 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3475 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3478 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3481 * include/std/functional (_Function_base::_M_not_empty_function):
3482 Change overloads for pointers to take arguments by value.
3483 * testsuite/20_util/function/cons/57465.cc: Add tests for
3484 pointer-to-member cases.
3487 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3488 Use macros for exception handling and fix unused parameter warning.
3490 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3493 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3495 2016-01-17 Torvald Riegel <triegel@redhat.com>
3497 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3499 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3501 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3504 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3507 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3508 static assertion that type is constructible from the arguments.
3509 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3510 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3511 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3514 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3515 and isnan on AIX. Quote variables.
3516 * configure: Regenerate.
3518 2016-01-15 Torvald Riegel <triegel@redhat.com>
3520 * include/bits/basic_string.h (basic_string): Declare friends.
3521 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3522 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3523 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3524 length_error, out_of_range, runtime_error, range_error,
3525 underflow_error, overflow_error): Declare members as transaction-safe.
3526 (logic_error, runtime_error): Declare friend functions.
3527 * libsupc++/exception (exception, bad_exception): Declare members as
3529 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3530 transaction-safe members of exceptions and helper functions.
3531 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3532 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3533 (CXXABI_1.3.10): New.
3534 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3535 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3536 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3537 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3538 * include/Makefile.in: Regenerate.
3539 * config.h.in: Regenerate.
3540 * configure: Regenerate.
3541 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3543 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3545 * include/ext/random.tcc: Use __builtin_isfinite instead of
3548 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3550 * include/bits/std_mutex.h: Fix Doxygen @file name.
3552 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3553 Jonathan Wakely <jwakely@redhat.com>
3554 Florian Goth <CaptainSifff@gmx.de>
3556 Implement TR29124 C++ special Math Functions.
3557 * include/Makefile.am: Add new headers.
3558 * include/Makefile.in: Regenerate.
3559 * include/bits/specfun.h: New.
3560 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3561 * include/tr1/bessel_function.tcc: Ditto.
3562 * include/tr1/beta_function.tcc: Ditto.
3563 * include/tr1/cmath: Ditto.
3564 * include/tr1/ell_integral.tcc: Ditto.
3565 * include/tr1/exp_integral.tcc: Ditto.
3566 * include/tr1/gamma.tcc: Ditto.
3567 * include/tr1/hypergeometric.tcc: Ditto.
3568 * include/tr1/legendre_function.tcc: Ditto.
3569 * include/tr1/modified_bessel_func.tcc: Ditto.
3570 * include/tr1/poly_hermite.tcc: Ditto.
3571 * include/tr1/poly_laguerre.tcc: Ditto.
3572 * include/tr1/riemann_zeta.tcc: Ditto.
3573 * include/tr1/special_function_util.h: Ditto.
3574 * testsuite/ext/special_functions/conf_hyperg: New.
3575 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3576 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3577 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3578 * testsuite/ext/special_functions/hyperg: New.
3579 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3580 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3581 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3582 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3583 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3584 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3585 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3586 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3587 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3588 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3589 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3590 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3591 * testsuite/special_functions/03_beta/check_nan.cc: New.
3592 * testsuite/special_functions/03_beta/check_value.cc: New.
3593 * testsuite/special_functions/03_beta/compile.cc: New.
3594 * testsuite/special_functions/03_beta/compile_2.cc: New.
3595 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3596 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3597 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3598 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3599 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3600 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3601 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3602 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3603 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3604 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3605 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3606 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3607 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3608 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3609 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3610 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3611 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3612 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3613 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3614 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3615 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3616 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3617 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3618 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3619 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3620 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3621 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3622 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3623 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3624 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3625 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3626 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3627 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3628 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3629 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3630 * testsuite/special_functions/12_ellint_2/compile.cc: New.
3631 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3632 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3633 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3634 * testsuite/special_functions/13_ellint_3/compile.cc: New.
3635 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3636 * testsuite/special_functions/14_expint/check_nan.cc: New.
3637 * testsuite/special_functions/14_expint/check_value.cc: New.
3638 * testsuite/special_functions/14_expint/compile.cc: New.
3639 * testsuite/special_functions/14_expint/compile_2.cc: New.
3640 * testsuite/special_functions/15_hermite/check_nan.cc: New.
3641 * testsuite/special_functions/15_hermite/check_value.cc: New.
3642 * testsuite/special_functions/15_hermite/compile.cc: New.
3643 * testsuite/special_functions/15_hermite/compile_2.cc: New.
3644 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3645 * testsuite/special_functions/16_laguerre/check_value.cc: New.
3646 * testsuite/special_functions/16_laguerre/compile.cc: New.
3647 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3648 * testsuite/special_functions/17_legendre/check_nan.cc: New.
3649 * testsuite/special_functions/17_legendre/check_value.cc: New.
3650 * testsuite/special_functions/17_legendre/compile.cc: New.
3651 * testsuite/special_functions/17_legendre/compile_2.cc: New.
3652 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3653 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3654 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3655 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3656 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3657 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3658 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3659 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3660 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3661 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3662 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3663 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3664 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3665 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3666 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3667 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3668 * testsuite/util/specfun_testcase.h: New.
3669 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3670 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3671 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3672 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3673 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3674 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3675 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3677 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
3680 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3681 and isnan functions.
3682 * config.h.in: Regenerate.
3683 * configure: Regenerate.
3684 * include/c_global/cmath (isinf(double), isnan(double))
3685 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3686 * testsuite/26_numerics/headers/cmath/48891.cc: New.
3688 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3691 * configure.host (abi_baseline_pair): Use separate baseline for
3692 Solaris 11+ and Solaris 10 with gld.
3693 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3694 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3695 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3697 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
3700 * include/std/type_traits: Following N4511, reimplement __is_swappable
3701 and __is_nothrow_swappable. Move __is_swappable to namespace std,
3702 adjust callers. Use __is_nothrow_swappable in swap.
3703 * include/bits/move.h: Use __is_nothrow_swappable in swap.
3704 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3705 __is_swappable related tests.
3706 * testsuite/20_util/is_swappable/value.cc: New.
3707 * testsuite/20_util/is_swappable/requirements/
3708 explicit_instantiation.cc: New.
3709 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3710 * testsuite/25_algorithms/swap/68877.cc: New.
3712 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
3714 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3718 * include/std/functional (function::_Invoke): Remove, use result_of.
3719 (function::_Callable): Replace alias template with class template
3720 and use partial specialization instead of _NotSelf alias template.
3721 (function(_Functor)): Add "not self" constraint so that _Callable is
3722 not used while type is incomplete.
3723 * testsuite/20_util/function/69222.cc: New.
3725 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
3728 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3729 Define partial specialization.
3730 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3731 destroy members to std::allocator explicit specialization.
3733 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
3735 * testsuite/26_numerics/headers/cmath/
3736 c99_classification_macros_c++.cc: Rename to ...
3737 * testsuite/26_numerics/headers/cmath/
3738 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3739 * testsuite/26_numerics/headers/cmath/
3740 c99_classification_macros_c++0x.cc: Rename to ...
3741 * testsuite/26_numerics/headers/cmath/
3742 c99_classification_macros_c++11.cc: Here.
3745 * include/bits/uses_allocator.h: Add missing include.
3747 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
3752 * include/bits/stl_iterator.h (back_insert_iterator,
3753 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3754 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3755 * include/std/future (__future::base::_State_baseV2::__setter):
3757 * include/std/scoped_allocator (__outermost): Likewise.
3758 * testsuite/20_util/scoped_allocator/69114.cc: New.
3759 * testsuite/20_util/uses_allocator/69114.cc: New.
3760 * testsuite/30_threads/promise/69106.cc: New.
3762 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
3765 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3766 Remove _GLIBCXX_NOEXCEPT.
3767 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3769 * include/Makefile.am: Adjust.
3770 * include/Makefile.in: Regenerate.
3771 * include/bits/mutex.h: Rename to bits/std_mutex.h.
3772 * include/std/condition_variable: Adjust include.
3773 * include/std/mutex: Likewise.
3775 2016-01-04 Jakub Jelinek <jakub@redhat.com>
3777 Update copyright years.
3779 Copyright (C) 2016 Free Software Foundation, Inc.
3781 Copying and distribution of this file, with or without modification,
3782 are permitted in any medium without royalty provided the copyright
3783 notice and this notice are preserved.