1 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
3 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
4 bitset*)): Remove __unused__ attribute.
5 * include/debug/safe_base.h (_Safe_iterator_base): Make
6 _Safe_sequence_base a friend.
7 (_Safe_iterator_base::_M_attach): Make protected.
8 (_Safe_iterator_base::_M_attach_single): Likewise.
9 (_Safe_iterator_base::_M_detach): Likewise.
10 (_Safe_iterator_base::_M_detach_single): Likewise.
11 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
12 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
13 (_Safe_sequence_base::_M_swap): Make protected.
14 (_Safe_sequence_base::_M_attach): Make private.
15 (_Safe_sequence_base::_M_attach_single): Likewise.
16 (_Safe_sequence_base::_M_detach): Likewise.
17 (_Safe_sequence_base::_M_detach_single): Likewise.
18 * include/debug/safe_container.h
19 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
20 * include/debug/safe_iterator.h
21 (_Safe_iterator::operator++()): Name __scoped_lock instance.
22 * include/debug/safe_iterator.tcc: Remove trailing line.
23 * include/debug/safe_unordered_base.h
24 (_Safe_local_iterator_base::_M_attach): Make protected.
25 (_Safe_local_iterator_base::_M_attach_single): Likewise.
26 (_Safe_local_iterator_base::_M_detach): Likewise.
27 (_Safe_local_iterator_base::_M_detach_single): Likewise.
28 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
29 (_Safe_unordered_container_base::_M_attach_local): Make private.
30 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
31 (_Safe_unordered_container_base::_M_detach_local): Likewise.
32 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
34 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
37 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
41 * include/bits/basic_string.h (basic_string::clear()): Drop reference
43 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
45 * testsuite/21_strings/basic_string/56166.cc: New.
46 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
48 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
49 (basic_string::erase(size_type, size_type)): Add fast path for
50 truncating the string, by calling _M_set_length directly.
51 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
52 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
53 (basic_string::resize(size_type, _CharT)): Likewise.
55 2016-09-22 Jason Merrill <jason@redhat.com>
57 * configure.ac: Define HAVE_MEMALIGN for newlib.
59 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
61 * config/cpu/m68k/atomicity.h: Adjust comment.
62 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
63 explicit atomicity_dir setup via configure.host.
64 * configure.host (rtems-*): Set atomicity_dir.
65 * configure: Regenerate.
67 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
69 Implement C++17 node extraction and insertion (P0083R5)
70 * doc/xml/manual/status_cxx2017.xml: Document status.
71 * doc/html/*: Regenerate.
72 * include/Makefile.am: Add bits/node_handle.h and reorder.
73 * include/Makefile.in: Regenerate.
74 * include/bits/hashtable.h (_Hashtable::node_type)
75 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
76 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
77 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
78 (_Hash_merge_helper): Define primary template.
79 * include/bits/node_handle.h: New header.
80 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
82 (map::node_type, map::insert_return_type, map::extract, map::merge)
83 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
85 (_Rb_tree_merge_helper): Specialize for map.
86 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
88 (multimap::node_type, multimap::extract, multimap::merge)
89 (multimap::insert(node_type&&))
90 (multimap::insert(const_iterator, node_type&&)): Define.
91 (_Rb_tree_merge_helper): Specialize for multimap.
92 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
94 (multiset::node_type, multiset::extract, multiset::merge)
95 (multiset::insert(node_type&&))
96 (multiset::insert(const_iterator, node_type&&)): Define.
97 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
99 (set::node_type, set::insert_return_type, set::extract, set::merge)
100 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
102 (_Rb_tree_merge_helper): Specialize for set.
103 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
104 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
105 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
106 (_Rb_tree::_M_reinsert_node_hint_unique)
107 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
108 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
109 (_Rb_tree_merge_helper): Specialize for multiset.
110 * include/bits/unordered_map.h (unordered_map): Declare
111 unordered_map<> and unordered_multimap<> as friends.
112 (unordered_map::node_type, unordered_map::insert_return_type)
113 (unordered_map::extract, unordered_map::merge)
114 (unordered_map::insert(node_type&&))
115 (unordered_map::insert(const_iterator, node_type&&))
116 (unordered_multimap): Declare _Hash_merge_helper as friend.
117 (unordered_multimap::node_type, unordered_multimap::extract)
118 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
119 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
120 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
121 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
122 Declare _Hash_merge_helper as friend.
123 (unordered_set::node_type, unordered_set::insert_return_type)
124 (unordered_set::extract, unordered_set::merge)
125 (unordered_set::insert(node_type&&))
126 (unordered_set::insert(const_iterator, node_type&&)): Define.
127 (unordered_multiset::node_type, unordered_multiset::extract)
128 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
129 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
130 (_Hash_merge_helper): Specialize for unordered sets and multisets.
131 * include/debug/map.h (map): Add using declarations or forwarding
132 functions for new members.
133 * include/debug/map.h (multimap): Likewise.
134 * include/debug/map.h (multiset): Likewise.
135 * include/debug/map.h (set): Likewise.
136 * include/debug/unordered_map (unordered_map, unordered_multimap):
138 * include/debug/unordered_set( unordered_set, unordered_multiset):
140 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
142 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
143 (StdNodeHandlePrinter): Define printer for node handles.
144 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
145 * testsuite/23_containers/map/modifiers/extract.cc: New.
146 * testsuite/23_containers/map/modifiers/merge.cc: New.
147 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
148 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
149 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
150 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
151 * testsuite/23_containers/set/modifiers/extract.cc: New.
152 * testsuite/23_containers/set/modifiers/merge.cc: New.
153 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
154 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
155 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
157 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
158 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
160 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
161 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
162 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
163 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
165 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
167 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
169 Fix tests on old arm platforms for optional.
170 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
172 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
174 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
175 recent change to _Variant_storage.
176 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
179 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
180 std::forward and ::new. Cast pointer to void*.
181 * include/std/variant (_Variant_storage, _Union, _Variant_base)
182 (__access, __visit_invoke, variant, visit): Qualify std::forward.
183 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
185 2016-09-22 Tim Shen <timshen@google.com>
187 * include/std/variant (variant::operator=): Fix assignment
189 * testsuite/20_util/variant/compile.cc: Add test.
191 2016-09-22 Tim Shen <timshen@google.com>
194 * include/std/variant (_Variant_storage::_Variant_storage):
195 Change _Variant_storage's union to be default constructible.
196 * testsuite/20_util/variant/compile.cc: New test.
198 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
201 * include/std/optional (__is_optional_impl, __is_optional): Remove.
202 (__converts_from_optional, __assigns_from_optional): New.
203 (optional(_Up&&)): Use is_same instead of __is_optional.
204 (optional(const optional<_Up>&)): Constrain with
205 __converts_from_optional.
206 (optional(optional<_Up>&&)): Likewise.
207 (operator=(_Up&&)): Use is_same instead of __is_optional, check
208 is_same and is_scalar.
209 (operator=(const optional<_Up>&)): Constrain with
210 __converts_from_optional and __assigns_from_optional.
211 (operator=(optional<_Up>&&)): Likewise.
212 * testsuite/20_util/optional/77288.cc: New.
213 * testsuite/20_util/optional/cons/value.cc: Adjust.
215 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
217 Implement LWG 2729 for tuple.
218 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
219 Suppress conditionally.
220 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
221 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
222 (_Tuple_impl(const _Head&)): Constrain.
223 (_Tuple_impl(_UHead&&)): Likewise.
224 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
225 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
226 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
227 (operator=(const tuple&)): Enable conditionally.
228 (operator=(tuple&&)): Suppress conditionally.
229 (operator=(const tuple<_UElements...>&)): Constrain.
230 (operator=(tuple<_UElements...>&&)): Likewise.
231 (operator=(const tuple&)): Enable conditionally (2-param tuple).
232 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
233 (operator=(const tuple<_U1, _U2>&)): Constrain.
234 (operator=(tuple<_U1, _U2>&&)): Likewise.
235 (operator=(const pair<_U1, _U2>&)): Likewise.
236 (operator=(pair<_U1, _U2>&&)): Likewise.
237 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
238 * testsuite/20_util/tuple/tuple_traits.cc: New.
240 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
243 Implement LWG 2729 for pair.
244 * include/bits/stl_pair.h (_PCC): New.
245 (_ConstructiblePair, _ImplicitlyConvertiblePair):
246 Turn into static member functions of _PCC.
247 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
249 (pair(const _T1&, const _T2&)): Adjust.
251 (pair(const pair<_U1, _U2>&)): Adjust.
252 (pair(_U1&&, const _T2&)): Likewise.
253 (pair(const _T1&, _U2&&)): Likewise.
254 (pair(_U1&&, _U2&&)): Likewise.
255 (pair(pair<_U1, _U2>&&)): Likewise.
256 (operator=(const pair&)): Make conditionally deleted.
257 (operator=(pair&&)): Make conditionally suppressed.
258 (operator=(const pair<_U1, _U2>&)): Constrain.
259 (operator=(pair<_U1, _U2>&&): Likewise.
260 * include/std/type_traits (__nonesuch): New.
261 * testsuite/20_util/pair/traits.cc: New.
263 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
266 * include/bits/stl_construct.h: (_Construct_novalue): New.
267 (_Destroy_n_aux, _Destroy_n): New.
268 * include/bits/stl_uninitialized.h: (type_traits):
269 New include in C++11 mode.
270 (__uninitialized_default_novalue_1): New.
271 (__uninitialized_default_novalue_n_1): Likewise.
272 (__uninitialized_default_novalue): Likewise.
273 (__uninitialized_default_novalue_n): Likewise.
274 (__uninitialized_copy_n_pair): Likewise.
275 (uninitialized_default_construct):
276 Use __uninitialized_default_novalue.
277 (uninitialized_default_construct_n):
278 Use __uninitialized_default_novalue_n.
279 (uninitialized_value_construct): Use __uninitialized_default.
280 (uninitialized_value_construct_n): Use __uninitialized_default_n.
281 (uninitialized_move): Use uninitialized_copy.
282 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
283 (destroy_at): Use _Destroy.
285 (destroy_n): Likewise.
286 * testsuite/20_util/specialized_algorithms/
287 memory_management_tools/1.cc: Add tests for exceptions,
288 add tests for trivial cases for construct and move.
290 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
292 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
293 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
295 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
298 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
299 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
300 division to int to work with Python 3.
302 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
304 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
305 display_hint to be set by subclasses.
306 (StdVariantPrinter): Use array for display_hint. Adjust output to be
307 more similar to std::any and std::optional output.
308 (register_type_printers): Add type printers for basic_string_view
309 typedefs and experimental::any. Adjust type printers for
310 fundamentals_v1 templates to match fundamentals_v2 and later.
311 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
314 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
316 (ListWorkerBase.get_value_from_node): Define new method.
317 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
319 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
321 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
322 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
323 Register for C++17 components in namespace std. Strip inline namespace
326 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
328 * doc/xml/manual/profile_mode.xml: Fix typo.
329 * doc/html/manual/profile_mode_devel.html: Regenerate.
331 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
332 Marc Glisse <marc.glisse@inria.fr>
334 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
335 (operator new(size_t, align_val_t)): Replace modulus operator with
338 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
340 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
341 Increase alignment if less than sizeof(void*).
342 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
343 Increase size if not a multiple of alignment.
345 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
347 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
348 * doc/html/*: Regenerate.
350 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
352 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
354 2016-09-14 Marek Polacek <polacek@redhat.com>
356 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
359 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
361 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
362 Move dg-do directive before dg-skip.
363 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
364 Move dg-do directive before dg-require.
365 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
366 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
367 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
368 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
369 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
370 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
371 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
372 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
373 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
374 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
375 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
376 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
377 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
378 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
379 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
381 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
382 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
383 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
384 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
385 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
387 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
389 Implement P0040R3, Extending memory management tools.
390 * include/bits/stl_uninitialized.h (utility): New include
392 (uninitialized_default_construct): New.
393 (uninitialized_default_construct_n): Likewise.
394 (uninitialized_value_construct): Likewise.
395 (uninitialized_value_construct_n): Likewise.
396 (uninitialized_move): Likewise.
397 (uninitialized_move_n): Likewise.
398 (destroy_at, destroy, destroy_n): Likewise.
399 * testsuite/20_util/specialized_algorithms/memory_management_tools/
402 2016-09-12 Jason Merrill <jason@redhat.com>
404 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
406 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
408 Implement P0253R1, Fixing a design mistake in the searchers
409 interface in Library Fundamentals.
410 * include/std/functional: (utility): New include in C++17 mode.
411 (default_searcher): Use a pair as return type, adjust the definition.
412 (boyer_moore_searcher): Likewise.
413 (boyer_moore_horspool_searcher): Likewise.
414 * testsuite/20_util/function_objects/searchers.cc: Adjust.
416 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
418 Implement C++17 string searchers.
419 * include/std/functional: (unordered_map, vector): New includes
421 (array, bits/stl_algo.h): Likewise.
422 (default_searcher, __boyer_moore_map_base): New.
423 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
424 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
425 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
426 (make_boyer_moore_searcher): Likewise.
427 (make_boyer_moore_horspool_searcher): Likewise.
428 * testsuite/20_util/function_objects/searchers.cc: New.
430 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
432 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
433 Move dg-do directive before dg-require.
434 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
435 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
437 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
438 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
439 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
440 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
441 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
442 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
443 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
444 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
445 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
446 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
447 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
448 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
449 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
451 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
453 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
454 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
455 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
457 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
459 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
461 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
463 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
465 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
467 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
469 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
471 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
473 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
475 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
477 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
479 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
481 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
483 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
485 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
487 * testsuite/23_containers/forward_list/debug/
488 iterator_self_move_assign_neg.cc: Likewise.
489 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
491 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
493 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
495 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
497 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
499 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
501 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
503 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
505 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
506 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
507 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
508 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
509 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
510 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
511 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
512 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
513 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
514 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
515 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
517 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
518 * testsuite/23_containers/map/debug/60499.cc: Likewise.
519 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
520 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
521 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
522 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
523 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
524 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
525 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
527 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
528 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
529 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
530 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
531 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
532 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
533 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
534 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
535 * testsuite/23_containers/multimap/debug/
536 iterator_self_move_assign_neg.cc: Likewise.
537 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
539 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
540 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
541 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
542 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
543 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
544 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
545 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
546 * testsuite/23_containers/multiset/debug/
547 iterator_self_move_assign_neg.cc: Likewise.
548 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
550 * testsuite/23_containers/set/debug/60499.cc: Likewise.
551 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
552 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
553 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
554 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
555 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
556 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
557 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
559 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
560 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
561 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
562 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
563 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
565 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
566 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
567 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
569 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
571 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
573 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
574 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
575 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
576 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
577 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
578 * testsuite/23_containers/unordered_map/debug/
579 invalid_local_iterator_compare_neg.cc: Likewise.
580 * testsuite/23_containers/unordered_map/debug/
581 invalid_local_iterator_range_neg.cc: Likewise.
582 * testsuite/23_containers/unordered_map/debug/
583 iterator_self_move_assign_neg.cc: Likewise.
584 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
586 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
588 * testsuite/23_containers/unordered_map/debug/
589 use_erased_local_iterator_neg.cc: Likewise.
590 * testsuite/23_containers/unordered_map/debug/
591 use_invalid_iterator_neg.cc: Likewise.
592 * testsuite/23_containers/unordered_map/debug/
593 use_invalid_local_iterator_neg.cc: Likewise.
594 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
595 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
597 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
599 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
601 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
603 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
605 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
607 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
609 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
611 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
613 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
615 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
617 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
619 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
621 * testsuite/23_containers/unordered_multimap/debug/
622 invalid_local_iterator_compare_neg.cc: Likewise.
623 * testsuite/23_containers/unordered_multimap/debug/
624 invalid_local_iterator_range_neg.cc: Likewise.
625 * testsuite/23_containers/unordered_multimap/debug/
626 iterator_self_move_assign_neg.cc: Likewise.
627 * testsuite/23_containers/unordered_multimap/debug/
628 max_load_factor_neg.cc: Likewise.
629 * testsuite/23_containers/unordered_multimap/debug/
630 self_move_assign_neg.cc: Likewise.
631 * testsuite/23_containers/unordered_multimap/debug/
632 use_erased_local_iterator_neg.cc: Likewise.
633 * testsuite/23_containers/unordered_multimap/debug/
634 use_invalid_iterator_neg.cc: Likewise.
635 * testsuite/23_containers/unordered_multimap/debug/
636 use_invalid_local_iterator_neg.cc: Likewise.
637 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
639 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
641 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
643 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
645 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
647 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
649 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
651 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
653 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
655 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
657 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
659 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
661 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
663 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
665 * testsuite/23_containers/unordered_multiset/debug/
666 invalid_local_iterator_compare_neg.cc: Likewise.
667 * testsuite/23_containers/unordered_multiset/debug/
668 invalid_local_iterator_range_neg.cc: Likewise.
669 * testsuite/23_containers/unordered_multiset/debug/
670 iterator_self_move_assign_neg.cc: Likewise.
671 * testsuite/23_containers/unordered_multiset/debug/
672 max_load_factor_neg.cc: Likewise.
673 * testsuite/23_containers/unordered_multiset/debug/
674 self_move_assign_neg.cc: Likewise.
675 * testsuite/23_containers/unordered_multiset/debug/
676 use_erased_local_iterator_neg.cc: Likewise.
677 * testsuite/23_containers/unordered_multiset/debug/
678 use_invalid_iterator_neg.cc: Likewise.
679 * testsuite/23_containers/unordered_multiset/debug/
680 use_invalid_local_iterator_neg.cc: Likewise.
681 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
682 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
683 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
684 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
686 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
687 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
688 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
690 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
692 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
694 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
695 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
696 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
697 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
698 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
699 * testsuite/23_containers/unordered_set/debug/
700 invalid_local_iterator_compare_neg.cc: Likewise.
701 * testsuite/23_containers/unordered_set/debug/
702 invalid_local_iterator_range_neg.cc: Likewise.
703 * testsuite/23_containers/unordered_set/debug/
704 iterator_self_move_assign_neg.cc: Likewise.
705 * testsuite/23_containers/unordered_set/debug/
706 max_load_factor_neg.cc: Likewise.
707 * testsuite/23_containers/unordered_set/debug/
708 self_move_assign_neg.cc: Likewise.
709 * testsuite/23_containers/unordered_set/debug/
710 use_erased_local_iterator_neg.cc: Likewise.
711 * testsuite/23_containers/unordered_set/debug/
712 use_invalid_iterator_neg.cc: Likewise.
713 * testsuite/23_containers/unordered_set/debug/
714 use_invalid_local_iterator_neg.cc: Likewise.
715 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
716 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
717 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
718 * testsuite/23_containers/vector/debug/
719 iterator_self_move_assign_neg.cc: Likewise.
720 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
722 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
723 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
724 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
725 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
726 * testsuite/29_atomics/atomic/60658.cc: Likewise.
727 * testsuite/29_atomics/atomic/60695.cc: Likewise.
728 * testsuite/29_atomics/atomic/62259.cc: Likewise.
729 * testsuite/29_atomics/atomic/64658.cc: Likewise.
730 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
731 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
732 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
735 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
737 * libsupc++/new_opant.cc: Include exception_defines.h.
738 * libsupc++/new_opvant.cc: Likewise.
740 2016-09-09 Jason Merrill <jason@redhat.com>
742 Implement P0035R4, C++17 new of over-aligned types.
743 * libsupc++/new: Declare aligned new/delete operators.
744 * config/abi/pre/gnu.ver: Export them.
745 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
747 * libsupc++/new_opa.cc: New.
748 * libsupc++/new_opant.cc: New.
749 * libsupc++/new_opva.cc: New.
750 * libsupc++/new_opva.cc: New.
751 * libsupc++/del_opa.cc: New.
752 * libsupc++/del_opant.cc: New.
753 * libsupc++/del_opsa.cc: New.
754 * libsupc++/del_opva.cc: New.
755 * libsupc++/del_opvant.cc: New.
756 * libsupc++/del_opvsa.cc: New.
757 * libsupc++/Makefile.am: Build them.
759 2016-09-05 Tim Shen <timshen@google.com>
761 * include/std/variant: include bits/move.h for std::addressof.
763 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
765 * include/std/variant (_Variant_storage::_M_storage()): Use
766 std::addressof instead of operator& to take address.
768 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
770 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
771 setrlimit on both native and cross targets.
772 * configure: Regenerate.
774 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
776 * include/bits/shared_ptr.h (_Assignable): New alias template.
777 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
778 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
779 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
781 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
782 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
783 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
784 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
786 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
787 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
789 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
791 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
792 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
793 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
794 expected errors. Remove unnecessary code.
795 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
797 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
799 * testsuite/23_containers/set/move_comparison.cc: New test.
801 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
804 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
807 * include/std/type_traits (is_constructible): Forward-declare...
808 (__is_base_to_derived_ref): ...and use here.
809 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
810 * testsuite/20_util/is_constructible/77395.cc: New.
811 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
812 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
814 * testsuite/20_util/tuple/77395.cc: New.
816 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
818 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
819 directive above dg-require-namedlocale directive.
820 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
821 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
822 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
823 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
824 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
826 2016-08-27 Tim Shen <timshen@google.com>
829 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
830 _M_expression_term): Modify to support dash literal.
831 * include/bits/regex_scanner.h: Add dash as a token type to make
832 a different from the mandated dash literal by escaping.
833 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
834 token in bracket expression parsing.
835 * testsuite/28_regex/regression.cc: Add new testcases.
837 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
840 * doc/xml/manual/intro.xml: Document DR 2127 change.
841 * doc/html/*: Regenerate.
842 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
843 (operator++(), operator++(int)): Use injected class name.
844 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
846 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
847 using -std in dg-options.
849 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
850 Pedro Alves <palves@redhat.com>
852 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
853 and restore dg-interpreter-batch-mode.
854 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
855 gdb-dg-runtest instead of dg-runtest.
856 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
858 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
860 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
861 precise patterns for basic_string constructors.
862 (GLIBCXX_3.4.23): Export new constructors.
863 * doc/xml/manual/intro.xml: Document LWG 2583 status.
864 * doc/html/*: Regenerate.
865 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
866 (basic_string(const basic_string&, size_type, const Alloc&)): Add
867 new constructor for LWG 2583.
868 (basic_string(const basic_string&, size_type, size_type)): Remove
870 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
871 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
872 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
873 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
875 2016-08-24 Aditya Kumar <hiraditya@msn.com>
877 * include/bits/algorithmfwd.h: Remove trailing whitespace.
878 * include/bits/shared_ptr_base.h: Likewise.
880 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
882 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
883 * include/profile/array (array): Likewise.
884 (array::swap): Fix exception specification for zero-sized arrays.
887 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
888 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
889 * testsuite/23_containers/map/77334.cc: New test.
891 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
892 * doc/html/*: Regenerate.
894 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
895 * testsuite/experimental/feat-lib-fund.cc: Likewise.
898 * include/bits/stl_iterator.h
899 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
900 define for C++98 mode.
901 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
902 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
904 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
905 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
906 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
907 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
909 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
910 difference operator for C++98.
911 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
913 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
914 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
915 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
916 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
917 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
919 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
920 _GLIBCXX14_CONSTEXPR.
921 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
922 * include/std/array (array::begin, array::end, array::rbegin)
923 (array::rend, array::cbegin, array:cend, array::crbegin)
924 (array::crend, array::operator[], array::at, array::front)
925 (array::back, array::data): Likewise.
926 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
927 with separate tests for C++11, C++14, and C++17.
928 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
929 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
930 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
932 2016-08-22 Tim Shen <timshen@google.com>
934 Split _M_dfs() into smaller functions.
935 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
936 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
937 (_M_handle_line_end_assertion, _M_handle_word_boundary)
938 (_M_handle_subexpr_lookahead, _M_handle_match)
939 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
940 Add separate function declarations.
941 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
943 2016-08-22 Gleb Natapov <gleb@scylladb.com>
946 * config/abi/pre/gnu-versioned-namespace.ver: Export
947 __cxa_init_primary_exception and std::exception_ptr(void*).
948 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
949 export __cxa_init_primary_exception and std::exception_ptr(void*).
950 * include/Makefile.am: Add new headers.
951 * include/Makefile.in: Regenerate.
952 * libsupc++/Makefile.am: Add new headers.
953 * libsupc++/Makefile.in: Regenerate.
954 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
955 * libsupc++/cxxabi_init_exception.h: New header.
956 (__cxa_init_primary_exception): Declare.
957 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
958 (__cxa_throw): Use __cxa_init_primary_exception.
959 * libsupc++/exception (std::exception): Move to ...
960 * libsupc++/exception.h: New header.
961 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
963 (__exception_ptr::__dest_thunk): New function template.
964 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
965 Use __cxa_allocate_exception and __cxa_init_primary_exception to
966 create exception_ptr.
967 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
968 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
970 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
972 * doc/xml/api.xml: Replace hardcoded links for specific versions with
973 link to docs for all releases.
974 * doc/html/*: Regenerate.
977 * doc/xml/manual/intro.xml: Document DR 2062 change.
978 * include/std/functional (function::swap): Add noexcept.
979 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
980 * testsuite/20_util/function/77322.cc: New test.
982 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
984 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
985 *-*-solaris* instead of -pthreads.
986 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
987 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
988 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
989 * testsuite/23_containers/list/pthread1.cc: Likewise.
990 * testsuite/23_containers/list/pthread5.cc: Likewise.
991 * testsuite/23_containers/map/pthread6.cc: Likewise.
992 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
993 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
994 * testsuite/30_threads/shared_mutex/*: Likewise.
995 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
996 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
997 default_weaktoshared.cc: Likewise.
998 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
999 mutex_weaktoshared.cc: Likewise.
1000 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1001 dg-require-effective-target instead of using -std option.
1002 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1004 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1005 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1007 * testsuite/30_threads/async/*: Likewise.
1008 * testsuite/30_threads/call_once/*: Likewise.
1009 * testsuite/30_threads/condition_variable/*: Likewise.
1010 * testsuite/30_threads/condition_variable_any/*: Likewise.
1011 * testsuite/30_threads/future/*: Likewise.
1012 * testsuite/30_threads/lock/*: Likewise.
1013 * testsuite/30_threads/mutex/*: Likewise.
1014 * testsuite/30_threads/packaged_task/*: Likewise.
1015 * testsuite/30_threads/promise/*: Likewise.
1016 * testsuite/30_threads/recursive_mutex/*: Likewise.
1017 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1018 * testsuite/30_threads/shared_future/*: Likewise.
1019 * testsuite/30_threads/shared_lock/*: Likewise.
1020 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1021 * testsuite/30_threads/this_thread/*: Likewise.
1022 * testsuite/30_threads/thread/*: Likewise.
1023 * testsuite/30_threads/timed_mutex/*: Likewise.
1024 * testsuite/30_threads/try_lock/*: Likewise.
1025 * testsuite/30_threads/unique_lock/*: Likewise.
1027 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1028 * doc/html/*: Regenerate.
1029 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1031 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1032 * testsuite/20_util/not_fn/1.cc: New.
1033 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1034 Remove test for volatile-qualified wrapper.
1036 * include/std/atomic (atomic::is_always_lock_free): Define.
1037 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1038 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1039 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1040 * doc/xml/manual/status_cxx2017.xml: Update status.
1041 * doc/html/*: Regenerate.
1043 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1044 * include/std/tuple (apply): Likewise.
1045 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1047 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1048 * testsuite/experimental/type_traits/value.cc: Likewise.
1050 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1052 * doc/html/*: Regenerate.
1054 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1056 Implement the latest proposed resolution of LWG 2756.
1057 * include/std/optional (Optional_base(const _Tp&))
1058 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1059 (optional(nullopt_t)): New.
1060 (optional(_Up&&)): Invoke base directly with in_place
1061 rather than creating a temporary, add default template
1062 argument, change constraints.
1063 (optional(const optional<_Up>&)): Invoke base directly
1064 with in_place, remove unnecessary constraints.
1065 (optional(optional<_Up>&& __t)): Likewise.
1066 (optional(in_place_t, _Args&&...)): New.
1067 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1068 (operator=(_Up&&)): Add default template argument, change constraints.
1069 (operator=(const optional<_Up>&)): Put is_same first in the
1071 (operator=(optional<_Up>&&)): Likewise.
1072 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1073 verify assignment from something that can't be perfect-forwarded.
1074 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1075 that a nested optional is disengaged when constructed
1076 from a disengaged element type, and to verify that assignments
1077 from an engaged element type engage the optional.
1079 2016-08-18 Tim Shen <timshen@google.com>
1083 * include/Makefile.am: Add new file std/variant.
1084 * include/Makefile.in: Generated from Makefile.am.
1085 * include/bits/enable_special_members.h: Add a tag type to allow
1086 the construction in non-default constructor.
1087 * include/bits/uses_allocator.h: Add convenience traits to
1088 detect constructibility.
1089 * include/std/variant: Implement <variant>.
1090 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1091 * testsuite/20_util/variant/run.cc: Runtime tests.
1093 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1095 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1096 (test.new_tests): Rewrite section.
1097 (tests.dg.directives): New section.
1098 * doc/html/*: Regenerate.
1100 * doc/xml/manual/test.xml: Improve documentation of test targets.
1101 Document new-abi-baseline, check-debug, and check-parallel targets.
1103 * doc/xml/manual/build_hacking.xml: New section on shared library
1106 * doc/xml/manual/build_hacking.xml: Improve markup.
1107 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1109 * doc/xml/faq.xml: Change link text to "Testing".
1111 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1112 dg-options directive.
1114 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1116 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1117 directive and use effective target instead of dg-options.
1119 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1120 instead of -std in dg-options.
1121 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1122 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1123 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1124 * testsuite/20_util/hash/quality.cc: Likewise.
1125 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1126 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1127 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1128 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1129 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1130 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1132 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1133 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1134 * testsuite/27_io/rvalue_streams.cc: Likewise.
1136 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1138 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1139 Remove duplicate dg-options directive.
1141 * testsuite/ext/profile/all.cc: Use effective target instead of
1142 -std=gnu++11. Use dg-additional-options instead of repeating options.
1144 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1145 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1146 instead of dg-excess-errors.
1148 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1150 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1151 * testsuite/experimental/ratio/value.cc: Likewise.
1152 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1154 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1155 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1156 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1157 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1158 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1159 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1160 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1161 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1162 * testsuite/tr1/5_numerical_facilities/special_functions/
1163 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1164 C++17 compatibility.
1166 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1167 expected signatures for C++14 compatibility.
1170 * include/bits/basic_string.h (operator=(__sv_type)
1171 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1172 (replace(size_type, size_type, __sv_type))
1173 (replace(const_iterator, const_iterator, __sv_type))
1174 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1175 (compare(size_type, size_type, __sv_type)): Reformat.
1176 (_If_sv): Define helper for SFINAE constaints.
1177 (append(const _Tp&, size_type, size_type))
1178 (assign(const _Tp&, size_type, size_type))
1179 (insert(size_type, const _Tp&, size_type, size_type))
1180 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1182 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1184 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1186 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1188 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1190 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1192 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1194 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1196 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1198 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1200 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1202 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1205 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1208 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1209 pointers to start and end of storage.
1210 * testsuite/23_containers/vector/bool/72847.cc: New test.
1211 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1212 _M_finish after deallocating.
1213 (vector<bool>::_M_fill_insert): Likewise.
1214 (vector<bool>::_M_insert_range): Likewise.
1215 (vector<bool>::_M_insert_aux): Likewise.
1217 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1219 Implement LWG 2744 and LWG 2754.
1220 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1221 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1222 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1224 (emplace(_Args&&...)): Likewise.
1225 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1226 * include/std/utility: (__is_in_place_type_impl): New.
1227 (__is_in_place_type): Likewise.
1228 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1230 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1231 in_place constructor.
1232 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1233 * testsuite/20_util/any/requirements.cc: Add a test for
1234 in_place-constructing a non-default-constructible type.
1236 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1238 Add a feature macro for C++17 make_from_tuple.
1239 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1240 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1241 Qualify the call to get<>().
1242 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1244 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1246 * src/filesystem/ops.cc: Always include ostream and
1247 ext/stdio_filebuf.h.
1248 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1249 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1250 sendfile fails with ENOSYS or EINVAL.
1252 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1255 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1258 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1260 Implement C++17 make_from_tuple.
1261 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1262 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1264 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1267 * include/bits/basic_string.h
1268 (append(__sv_type, size_type, size_type)): Turn into a template,
1269 change parameter type, constrain, add a conversion to __sv_type
1270 from the dependent parameter type.
1271 (assign(__sv_type, size_type, size_type)): Likewise.
1272 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1273 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1275 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1277 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1279 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1281 * doc/xml/manual/status_cxx2017.xml: Update status table.
1282 * doc/html/manual/status.html: Regenerate.
1284 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1287 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1288 Qualify new operator.
1289 * testsuite/20_util/function/cons/72820.cc: New test.
1291 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1292 * doc/html/manual/status.html: Regenerate.
1293 * include/Makefile.am: Add new header.
1294 * include/Makefile.in: Regenerate.
1295 * include/bits/invoke.h: New header.
1296 (__invoke): Make constexpr. Add && to types in exception specification.
1297 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1298 names. Include <bits/invoke.h> and use std::__invoke.
1299 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1301 (invoke): Add && to types in exception specification.
1302 * include/std/tuple (apply, __apply_impl): Define for C++17.
1303 * testsuite/20_util/tuple/apply/1.cc: New test.
1304 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1307 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1309 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1310 * doc/html/manual/status.html: Regenerate.
1312 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1313 * testsuite/20_util/duration_cast/rounding.cc: New test.
1314 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1315 * doc/xml/manual/status_cxx2017.xml: Update status table.
1316 * doc/html/manual/status.html: Regenerate.
1317 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1319 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1320 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1321 * testsuite/20_util/duration/literals/range.cc: Likewise.
1323 * include/std/functional (__callable_functor): Remove.
1324 (_Function_handler::_M_invoke): Use __invoke instead of
1325 __callable_functor or mem_fn.
1326 (function::_Callable): Use lvalue in result_of expression.
1327 (function): Remove TODO comments about allocators.
1328 * testsuite/20_util/function/cons/refqual.cc: New test.
1330 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1332 * doc/xml/manual/status_cxx2017.xml: Update status table.
1333 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1334 (__invoke_impl): Remove exception specifications.
1335 (__invoke, invoke): Add exception specifications using
1336 __is_nothrow_callable.
1337 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1338 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1339 (__is_callable, __is_nothrow_callable): New traits.
1340 (is_callable, is_callable_v): New C++17 traits.
1341 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1342 * testsuite/20_util/is_callable/requirements/
1343 explicit_instantiation.cc: New test.
1344 * testsuite/20_util/is_callable/requirements/
1345 explicit_instantiation_ext.cc: New test.
1346 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1347 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1349 * testsuite/20_util/is_callable/value.cc: New test.
1350 * testsuite/20_util/is_callable/value_ext.cc: New test.
1351 * testsuite/20_util/is_nothrow_callable/requirements/
1352 explicit_instantiation.cc: New test.
1353 * testsuite/20_util/is_nothrow_callable/requirements/
1354 explicit_instantiation_ext.cc: New test.
1355 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1357 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1359 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1360 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1362 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1363 * doc/html/manual/status.html: Regenerate.
1365 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1366 effective target not dg-options. Move check for feature-test macro to:
1367 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1370 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1372 (__invoke_impl): Remove unused template parameters.
1373 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1375 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1376 and test __invoke extension for C++11.
1378 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1380 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1381 Define feature-test macro.
1382 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1385 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1386 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1387 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1388 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1389 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1391 * include/std/utility (as_const): Define.
1392 * testsuite/20_util/as_const/1.cc: New test.
1393 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1395 * include/bits/shared_ptr.h (owner_less): Add default template
1397 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1399 (owner_less<void>): Define specialization.
1400 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1402 * testsuite/20_util/owner_less/void.cc: New test.
1403 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1405 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1406 Define feature-test macro.
1407 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1408 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1409 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1410 (__cpp_lib_type_trait_variable_templates): Define.
1412 * include/bits/stl_function.h: Remove commented-out macro.
1413 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1414 Define feature-test macro.
1415 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1417 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1418 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1420 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1421 do #error for C++17.
1422 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1423 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1424 * include/tr1/bessel_function.tcc: Likewise.
1425 * include/tr1/beta_function.tcc: Likewise.
1426 * include/tr1/cmath: Likewise.
1427 * include/tr1/ell_integral.tcc: Likewise.
1428 * include/tr1/exp_integral.tcc: Likewise.
1429 * include/tr1/gamma.tcc: Likewise.
1430 * include/tr1/hypergeometric.tcc: Likewise.
1431 * include/tr1/legendre_function.tcc: Likewise.
1432 * include/tr1/modified_bessel_func.tcc: Likewise.
1433 * include/tr1/poly_hermite.tcc: Likewise.
1434 * include/tr1/poly_laguerre.tcc: Likewise.
1435 * include/tr1/riemann_zeta.tcc: Likewise.
1436 * include/tr1/special_function_util.h: Likewise.
1437 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1439 * include/std/type_traits (has_trivial_default_constructor): Remove.
1440 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1441 * testsuite/20_util/has_trivial_copy_assign/requirements/
1442 explicit_instantiation.cc: Remove test.
1443 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1445 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1447 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1448 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1449 explicit_instantiation.cc: Likewise.
1450 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1451 typedefs.cc: Likewise.
1452 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1453 * testsuite/20_util/has_trivial_default_constructor/requirements/
1454 explicit_instantiation.cc: Likewise.
1455 * testsuite/20_util/has_trivial_default_constructor/requirements/
1456 typedefs.cc: Likewise.
1457 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1459 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1460 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1461 and has_trivial_copy_assign are not defined.
1462 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1464 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1465 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1466 dg-error line number.
1467 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1470 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1472 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1473 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1474 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1476 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1478 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1480 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1482 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1484 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1487 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1490 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1491 dg-error to relevant line.
1492 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1494 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1496 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1498 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1499 options are present that aren't valid for C.
1500 * testsuite/abi/header_cxxabi.c: Likewise.
1502 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1503 check_value.cc: Do not add special functions to namespace std in TR1
1506 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1507 run for C++11 and later.
1508 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1510 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1511 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1512 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1513 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1514 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1516 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1518 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1519 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1521 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1523 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1525 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1526 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1527 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1528 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1529 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1530 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1531 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1532 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1534 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1535 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1536 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1537 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1539 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1540 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1541 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1542 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1544 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1545 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1546 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1547 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1549 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1550 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1551 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1552 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1553 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1555 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1556 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1557 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1558 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1560 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1561 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1562 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1563 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1564 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1565 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1566 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1567 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1568 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1569 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1570 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1571 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1572 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1573 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1574 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1575 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1576 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1577 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1578 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1579 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1580 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1581 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1582 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1583 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1584 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1585 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1586 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1587 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1588 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1589 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1590 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1591 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1592 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1593 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1594 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1595 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1597 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1598 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1599 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1600 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1601 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1602 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1603 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1604 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1606 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1607 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1608 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1609 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1610 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1611 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1613 * testsuite/tr1/5_numerical_facilities/special_functions/
1614 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1616 * testsuite/tr1/5_numerical_facilities/special_functions/
1617 09_cyl_bessel_j/check_value.cc: Likewise.
1618 * testsuite/tr1/5_numerical_facilities/special_functions/
1619 10_cyl_bessel_k/check_value.cc: Likewise.
1620 * testsuite/tr1/5_numerical_facilities/special_functions/
1621 11_cyl_neumann/check_value.cc: Likewise.
1622 * testsuite/tr1/5_numerical_facilities/special_functions/
1623 21_sph_bessel/check_value.cc: Likewise.
1624 * testsuite/tr1/5_numerical_facilities/special_functions/
1625 23_sph_neumann/check_value.cc: Likewise.
1627 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1629 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1630 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1631 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1632 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1633 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1634 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1636 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1638 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1641 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1642 additional flags for compiling libtestc++.a objects.
1644 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
1646 * include/bits/basic_string.h (data() const): Update comment.
1647 (data()): Add non-const overload for C++17.
1648 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1649 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1651 * include/bits/basic_string.tcc: Disable explicit instantiation
1652 declarations for C++17.
1654 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1655 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1656 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1658 * testsuite/26_numerics/headers/cmath/
1659 c99_classification_macros_c++11.cc: Likewise.
1660 * testsuite/26_numerics/headers/cmath/
1661 c99_classification_macros_c++98.cc: Likewise.
1662 * testsuite/26_numerics/headers/cmath/
1663 c99_classification_macros_c.cc: Likewise.
1665 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1666 for different construct/destroy counts in C++98 mode.
1668 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1670 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1672 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1675 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1676 C++98-compatible initialization for array.
1678 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1679 unused header and variable from compile-only test.
1680 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1681 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1682 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1683 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1686 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1687 Remove duplicate dg-options directive.
1689 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1690 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1692 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1693 linker options from compile-only tests.
1694 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1697 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1698 supported for C++11 and later.
1699 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1700 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1702 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
1704 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1706 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1708 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1711 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1712 Ensure test is compiled with optimization.
1714 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1715 Adjust dg-prune-output pattern for error in C++98 mode.
1717 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1718 run for C++11 or later.
1720 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1721 test to not rely on GNU extension (escaped normal characters in POSIX
1722 BRE). Enable tests for other strings which are now supported.
1724 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1725 c++11 instead of setting -std=gnu++14.
1728 * include/std/array (get): Use positive message for static assertions.
1729 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1730 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1731 specialization for invalid indices, with static assertion.
1732 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1734 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1735 dg-error to relevant line.
1736 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1738 * testsuite/23_containers/forward_list/requirements/dr438/
1739 assign_neg.cc: Likewise.
1740 * testsuite/23_containers/forward_list/requirements/dr438/
1741 constructor_1_neg.cc: Likewise.
1742 * testsuite/23_containers/forward_list/requirements/dr438/
1743 constructor_2_neg.cc: Likewise.
1744 * testsuite/23_containers/forward_list/requirements/dr438/
1745 insert_neg.cc: Likewise.
1746 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1748 * testsuite/26_numerics/random/linear_congruential_engine/
1749 requirements/non_uint_neg.cc: Likewise.
1750 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1751 Likewise. Also test for std::atomic_address.
1753 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
1755 Add missing variable traits, fix testsuite failures.
1756 * include/bits/uses_allocator.h (uses_allocator_v): New.
1757 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1759 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1760 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1761 * testsuite/20_util/duration/literals/range.cc: Likewise.
1762 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1763 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1764 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1765 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1766 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1768 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1769 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1772 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1774 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1775 not test 128-bit types.
1776 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1777 * testsuite/20_util/is_integral/value.cc: Likewise.
1778 * testsuite/20_util/is_signed/value.cc: Likewise.
1779 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1780 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1781 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1782 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1784 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1787 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1789 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1791 Implement C++17 variable templates for type traits.
1792 * include/std/chrono (treat_as_floating_point_v): New.
1793 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1794 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1795 (ratio_greater_equal_v): Likewise.
1796 * include/std/system_error (is_error_code_enum_v)
1797 (is_error_condition_enum_v): Likewise.
1798 * include/std/tuple (tuple_size_v): Likewise.
1799 * type_traits (conjunction_v, disjunction_v, negation_v)
1800 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1801 (is_array_v, is_pointer_v, is_lvalue_reference_v)
1802 (is_rvalue_reference_v, is_member_object_pointer_v)
1803 (is_member_function_pointer_v, is_enum_v, is_union_v)
1804 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1805 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1806 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1807 (is_trivially_copyable_v, is_standard_layout_v)
1808 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1809 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1810 (is_constructible_v, is_default_constructible_v)
1811 (is_copy_constructible_v, is_move_constructible_v)
1812 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1813 (is_destructible_v, is_trivially_constructible_v)
1814 (is_trivially_default_constructible_v)
1815 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1816 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1817 (is_trivially_move_assignable_v, is_trivially_destructible_v)
1818 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1819 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1820 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1821 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1822 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1823 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1824 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1825 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1827 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1828 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1829 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1831 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
1833 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1834 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1835 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1837 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
1839 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1840 * doc/html/manual/abi.html: Regenerate.
1842 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1843 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1845 * configure: Regenerate.
1846 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1848 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1849 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1850 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1851 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1853 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1854 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1855 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1857 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
1859 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1860 Adjust dg-prune-output pattern for error in C++98 mode.
1861 * testsuite/23_containers/deque/requirements/dr438/
1862 constructor_1_neg.cc: Likewise.
1863 * testsuite/23_containers/deque/requirements/dr438/
1864 constructor_2_neg.cc: Likewise.
1865 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1867 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1869 * testsuite/23_containers/list/requirements/dr438/
1870 constructor_1_neg.cc: Likewise.
1871 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1873 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1875 * testsuite/23_containers/vector/requirements/dr438/
1876 constructor_1_neg.cc: Likewise.
1877 * testsuite/23_containers/vector/requirements/dr438/
1878 constructor_2_neg.cc: Likewise.
1879 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1882 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1883 for different construct/destroy counts in C++98 mode.
1885 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1886 dg-options to dg-additional-options so that default options are used.
1887 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1889 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1890 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1892 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1893 Use dg-additional-options instead of repeating the common options.
1895 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1896 dg-do compile directive.
1897 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1899 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1901 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
1903 Implement std::string_view and P0254r2,
1904 Integrating std::string_view and std::string.
1905 * include/Makefile.am: Add string_view and string_view.tcc
1906 to the exported headers.
1907 * include/Makefile.in: Likewise.
1908 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
1910 (basic_string(__sv_type, const _Alloc&)): Likewise.
1911 (operator=(__sv_type)): Likewise.
1912 (operator __sv_type()): Likewise.
1913 (operator+=(__sv_type)): Likewise.
1914 (append(__sv_type __sv)): Likewise.
1915 (append(__sv_type, size_type, size_type)): Likewise.
1916 (assign(__sv_type)): Likewise.
1917 (assign(__sv_type, size_type, size_type)): Likewise.
1918 (insert(size_type, __sv_type)): Likewise.
1919 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1920 (replace(size_type, size_type, __sv_type)): Likewise.
1921 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1923 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
1924 (find(__sv_type, size_type)): Likewise.
1925 (rfind(__sv_type, size_type)): Likewise.
1926 (find_first_of(__sv_type, size_type)): Likewise.
1927 (find_last_of(__sv_type, size_type)): Likewise.
1928 (find_first_not_of(__sv_type, size_type)): Likewise.
1929 (find_last_not_of(__sv_type, size_type)): Likewise.
1930 (compare(__sv_type)): Likewise.
1931 (compare(size_type, size_type, __sv_type)): Likewise.
1932 (compare(size_type, size_type, __sv_type, size_type, size_type)):
1934 * include/bits/string_view.tcc: New.
1935 * include/std/string_view: Likewise.
1936 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1937 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1938 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1940 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1942 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1944 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1946 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1948 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1950 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1952 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1954 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1956 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1958 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1960 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1962 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
1963 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
1964 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
1965 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
1966 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
1967 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
1968 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
1969 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
1970 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
1971 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1973 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1975 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1977 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1979 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1981 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1983 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1985 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1987 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1988 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
1989 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
1990 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
1991 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1993 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1995 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1997 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1999 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2001 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2003 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2005 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2007 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2009 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2011 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2013 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2015 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2017 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2019 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2021 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2023 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2025 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2027 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2029 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2031 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2033 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2035 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2037 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2039 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2041 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2043 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2045 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2047 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2049 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2051 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2053 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2055 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2057 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2058 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2060 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2062 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2064 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2066 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2068 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2070 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2072 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2074 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2076 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2077 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2079 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2081 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2083 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2085 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2086 _S_concat enumerator.
2087 * testsuite/ext/rope/6.cc: New test.
2089 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2091 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2092 std::mt19937, std::thread and std::atomic to simplify test.
2093 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2095 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2098 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2099 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2100 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2101 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2102 * testsuite/23_containers/set/allocator/71964.cc: New test.
2104 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2105 delete[] instead of delete.
2107 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2109 * include/experimental/propagate_const (propagate_const::__t): Rename
2110 to _M_t and remove comment. Qualify std::move and std::forward.
2111 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2113 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2114 Define sized deallocation function.
2115 * testsuite/util/testsuite_new_operators.h:
2116 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2117 deallocation function.
2119 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2120 reads past the end of strings.
2121 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2123 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2124 invalid array accesses.
2125 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2126 Fix read past the end of string.
2127 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2129 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2130 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2132 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2133 leak) memory for arguments to placement delete.
2134 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2135 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2136 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2139 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2141 * doc/xml/manual/intro.xml: Document DR 2684 status.
2142 * doc/html/*: Regenerate.
2144 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2145 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2146 (atomic_uint64_t): Define (LWG 2441).
2147 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2149 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2151 * doc/xml/manual/intro.xml: Document DR 2441 status.
2153 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2154 to use perfect forwarding (LWG 2328).
2155 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2156 * doc/xml/manual/intro.xml: Document DR 2328 status.
2158 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2159 static objects for catching nullptr as pointer to member types.
2161 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2163 Clean up optional's comments.
2164 * include/std/optional: Remove incorrect section headers
2165 from comments when redundant, replace bare section
2166 headers with more descriptive comments.
2168 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2170 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2171 * include/bits/move.h: Likewise.
2172 * include/bits/postypes.h: Likewise.
2173 * include/debug/bitset: Likewise.
2174 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2175 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2177 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2178 * testsuite/util/thread/all.h: Likewise.
2180 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2184 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2185 nullptr match handlers of pointer type.
2187 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2189 Implement C++17 P0025 clamp.
2190 * include/bits/algorithmfwd.h: Declare clamp overloads.
2191 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2192 * testsuite/25_algorithms/clamp/1.cc: New test.
2193 * testsuite/25_algorithms/clamp/2.cc: New test.
2194 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2195 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2197 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2200 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2202 Fix the constraints for any's assignment operator template to properly
2203 reject assignment from a non-copyable lvalue.
2204 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2205 type for is_copy_constructible,
2206 * testsuite/20_util/any/requirements.cc: Add a test for
2207 non-copyable lvalues.
2209 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2211 * include/experimental/functional: Include <parallel/algorithm> in
2214 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2218 * include/bits/forward_list.h (forward_list): Update doxygen comments
2219 to reflect allocator propagation semantics. Remove ambiguous
2220 statements about data being lost.
2221 * include/bits/stl_deque.h (deque): Likewise.
2222 * include/bits/stl_list.h (list): Likewise.
2223 * include/bits/stl_map.h (map): Likewise.
2224 * include/bits/stl_multimap.h (multimap): Likewise.
2225 * include/bits/stl_multiset.h (multiset): Likewise.
2226 * include/bits/stl_set.h (set): Likewise.
2227 * include/bits/stl_vector.h (vector): Likewise.
2228 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2230 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2233 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2235 Implement P0032R3, Homogeneous interface for variant, any and optional,
2236 for the parts concerning any and optional.
2237 * include/std/any (_Storage()): Make constexpr and have it
2239 (any()): Make constexpr.
2240 (any(const any&)): Adjust.
2241 (any(any&&)): Likewise.
2242 (__any_constructible_t): New.
2243 (any(_ValueType&&)): Constrain.
2244 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2245 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2248 (operator=(const any&)): Likewise.
2249 (operator=(any&&)): Likewise.
2250 (operator=(_ValueType&&)): Constrain.
2251 (emplace(_Args&&...)): New.
2252 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2255 (swap(any&)): Adjust.
2259 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2260 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2261 (make_any(_Args&&...)): Likewise.
2262 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2263 * include/std/optional (in_place_t, in_place): Remove.
2264 (bad_optional_access): Add a comment referring to LEWG 72.
2265 (emplace(_Args&&...)): Constrain.
2267 (reset()): Likewise.
2268 (make_optional(_Args&&...)): Likewise.
2269 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2270 * include/std/utility (in_place_tag): New.
2271 (__in_place, __in_place_type, __in_place_index): Likewise.
2272 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2273 (in_place(__in_place*)): Likewise.
2274 (in_place(__in_place_type<_Tp>*)): Likewise.
2275 (in_place(__in_place_index<_Idx>*)): Likewise.
2276 * testsuite/20_util/any/assign/1.cc: Adjust.
2277 * testsuite/20_util/any/assign/emplace.cc: New.
2278 * testsuite/20_util/any/assign/self.cc: Adjust.
2279 * testsuite/20_util/any/cons/1.cc: Likewise.
2280 * testsuite/20_util/any/cons/in_place.cc: New.
2281 * testsuite/20_util/any/make_any.cc: Likewise.
2282 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2283 * testsuite/20_util/any/misc/swap.cc: Likewise.
2284 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2285 * testsuite/20_util/any/requirements.cc: New.
2286 * testsuite/20_util/in_place/requirements.cc: Likewise.
2287 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2288 * testsuite/20_util/optional/in_place.cc: Likewise.
2289 * testsuite/20_util/optional/make_optional.cc: Add tests for
2290 the new overloads of make_optional.
2292 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2294 Implement P0307R2, Making Optional Greater Equal Again.
2295 * include/experimental/optional (_Has_addressof): Fix the comment.
2296 * include/std/optional (_Has_addressof): Likewise.
2297 (operator=(_Up&&)): Constrain.
2298 (operator=(const optional<_Up>&)): Likewise.
2299 (operator=(optional<_Up>&&)): Likewise.
2300 (__optional_relop_t): New.
2301 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2302 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2303 Constrain and make transparent.
2304 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2305 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2306 Constrain and make transparent.
2307 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2308 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2309 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2310 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2311 (operator!=(const optional<_Tp>&, _Tp const&)):
2312 Constrain and make transparent.
2313 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2314 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2315 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2316 (operator>(const optional<_Tp>&, const _Tp&)):
2317 Constrain and make transparent.
2318 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2319 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2320 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2321 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2322 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2323 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2324 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2325 * testsuite/20_util/optional/relops/1.cc: Likewise.
2326 * testsuite/20_util/optional/relops/2.cc: Likewise.
2327 * testsuite/20_util/optional/relops/3.cc: Likewise.
2328 * testsuite/20_util/optional/relops/4.cc: Likewise.
2329 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2330 that optional's relops are transparent and don't synthesize
2331 operators. Also test that assignment sfinaes.
2333 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2336 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2337 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2338 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2339 on _GLIBCXX_ASSERTIONS.
2340 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2341 Include <unistd.h> for sleep.
2342 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2343 * include/parallel/merge.h: Likewise.
2344 * include/parallel/multiway_merge.h: Likewise.
2345 * include/parallel/partition.h: Likewise.
2346 * include/parallel/queue.h: Likewise.
2347 * include/parallel/sort.h: Likewise.
2348 * testsuite/25_algorithms/headers/algorithm/
2349 parallel_algorithm_assert.cc: New.
2351 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2352 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2353 Forward to different overload.
2355 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2358 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2360 Revert "Add non-const overload of std::string::data()".
2362 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2364 Implement P0307R2, Making Optional Greater Equal Again.
2365 * include/experimental/optional (_Has_addressof): Fix the comment.
2366 * include/std/optional (_Has_addressof): Likewise.
2367 (operator=(_Up&&)): Constrain.
2368 (operator=(const optional<_Up>&)): Likewise.
2369 (operator=(optional<_Up>&&)): Likewise.
2370 (__optional_relop_t): New.
2371 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2372 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2373 Constrain and make transparent.
2374 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2375 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2376 Constrain and make transparent.
2377 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2378 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2379 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2380 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2381 (operator!=(const optional<_Tp>&, _Tp const&)):
2382 Constrain and make transparent.
2383 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2384 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2385 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2386 (operator>(const optional<_Tp>&, const _Tp&)):
2387 Constrain and make transparent.
2388 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2389 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2390 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2391 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2392 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2393 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2394 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2395 * testsuite/20_util/optional/relops/1.cc: Likewise.
2396 * testsuite/20_util/optional/relops/2.cc: Likewise.
2397 * testsuite/20_util/optional/relops/3.cc: Likewise.
2398 * testsuite/20_util/optional/relops/4.cc: Likewise.
2399 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2400 that optional's relops are transparent and don't synthesize
2401 operators. Also test that assignment sfinaes.
2403 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2405 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2407 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2408 instead of _M_data().
2409 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2411 (append(const basic_string&)): Likewise.
2412 (append(const basic_string&, size_type, size_type)): Likewise.
2413 (assign(const basic_string&, size_type, size_type)): Likewise.
2414 (insert(size_type, const basic_string&)): Likewise.
2415 (insert(size_type, const basic_string&, size_type, size_type)):
2417 (replace(size_type, size_type, const basic_string&, size_type,
2418 size_type)): Likewise.
2419 (replace(__const_iterator, __const_iterator, const basic_string&)):
2421 (c_str(), data()): Use c_str() instead of _M_data().
2422 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2423 (compare(const basic_string&)): Use data() instead of _M_data().
2424 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2425 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2426 Pass raw pointers to _S_copy.
2427 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2429 (find(const _CharT*, size_type, size_type)): Use data instead of
2431 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2432 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2433 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2435 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2437 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2438 * doc/xml/manual/intro.xml: Document DR 2458 status.
2439 * doc/html*: Regenerate.
2441 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2442 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2443 Only include <array>.
2444 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2446 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2447 * doc/html*: Regenerate.
2449 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2450 Add testcase from LWG 2164.
2452 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2454 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2455 to _M_realloc_insert.
2456 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2457 (_M_realloc_insert): Declare new function.
2458 (_M_emplace_back_aux): Remove definition.
2459 * include/bits/vector.tcc (emplace_back(_Args...)):
2460 Use _M_realloc_insert.
2461 (insert(const_iterator, const value_type&)): Likewise.
2462 (_M_insert_rval, _M_emplace_aux): Likewise.
2463 (_M_emplace_back_aux): Remove declaration.
2464 (_M_realloc_insert): Define.
2465 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2466 Adjust expected results for emplacing an lvalue with reallocation.
2468 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2470 Implement std::optional.
2471 * include/Makefile.am: Add optional to exported headers.
2472 * include/Makefile.in: Likewise.
2473 * include/std/optional: New.
2474 * testsuite/20_util/optional/typedefs.cc: Likewise.
2475 * testsuite/20_util/optional/relops/2.cc: Likewise.
2476 * testsuite/20_util/optional/relops/3.cc: Likewise.
2477 * testsuite/20_util/optional/relops/4.cc: Likewise.
2478 * testsuite/20_util/optional/relops/5.cc: Likewise.
2479 * testsuite/20_util/optional/relops/1.cc: Likewise.
2480 * testsuite/20_util/optional/relops/6.cc: Likewise.
2481 * testsuite/20_util/optional/nullopt.cc: Likewise.
2482 * testsuite/20_util/optional/in_place.cc: Likewise.
2483 * testsuite/20_util/optional/make_optional.cc: Likewise.
2484 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2485 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2486 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2487 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2488 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2489 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2490 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2491 * testsuite/20_util/optional/cons/default.cc: Likewise.
2492 * testsuite/20_util/optional/cons/move.cc: Likewise.
2493 * testsuite/20_util/optional/cons/value.cc: Likewise.
2494 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2495 * testsuite/20_util/optional/requirements.cc: Likewise.
2496 * testsuite/20_util/optional/observers/2.cc: Likewise.
2497 * testsuite/20_util/optional/observers/3.cc: Likewise.
2498 * testsuite/20_util/optional/observers/4.cc: Likewise.
2499 * testsuite/20_util/optional/observers/5.cc: Likewise.
2500 * testsuite/20_util/optional/observers/1.cc: Likewise.
2501 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2502 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2503 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2504 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2505 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2506 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2507 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2508 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2509 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2510 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2511 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2512 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2513 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2514 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2515 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2516 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2517 * testsuite/20_util/optional/swap/1.cc: Likewise.
2519 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2521 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2523 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2525 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2526 * doc/html/*: Regenerate.
2528 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2531 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2532 * include/Makefile.in: Likewise.
2533 * include/std/any: New.
2534 * testsuite/20_util/any/assign/1.cc: Likewise.
2535 * testsuite/20_util/any/assign/2.cc: Likewise.
2536 * testsuite/20_util/any/assign/self.cc: Likewise.
2537 * testsuite/20_util/any/cons/1.cc: Likewise.
2538 * testsuite/20_util/any/cons/2.cc: Likewise.
2539 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2540 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2541 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2542 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2543 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2544 * testsuite/20_util/any/misc/swap.cc: Likewise.
2545 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2546 * testsuite/20_util/any/observers/type.cc: Likewise.
2547 * testsuite/20_util/any/typedefs.cc: Likewise.
2549 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2551 Add a new header for diagnosing the use of C++17 facilities
2553 * include/bits/c++17_warning.h: New.
2555 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2557 Implement LWG 2451, optional<T> should 'forward' T's
2558 implicit conversions.
2559 * include/experimental/optional (__is_optional_impl, __is_optional):
2561 (optional()): Make constexpr and default.
2562 (optional(_Up&&), optional(const optional<_Up>&),
2563 optional(optional<_Up>&& __t): New.
2564 (operator=(_Up&&)): Constrain.
2565 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2566 * testsuite/experimental/optional/cons/value.cc:
2567 Add tests for the functionality added by LWG 2451.
2568 * testsuite/experimental/optional/cons/value_neg.cc: New.
2570 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2573 any_cast doesn't work with rvalue reference targets and cannot
2574 move with a value target.
2575 * include/experimental/any (any(_ValueType&&)): Constrain and
2576 add an overload that doesn't forward.
2577 (any_cast(any&&)): Constrain and add an overload that moves.
2578 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2579 the functionality added by LWG 2509.
2581 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2583 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2585 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2588 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2590 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2591 Define inline. Forward to _M_emplace_aux.
2592 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2593 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2594 (_Temporary_value): New RAII type using allocator to construct/destroy.
2595 (_S_insert_aux_assign): Remove.
2596 (_M_insert_aux): Make non-variadic.
2597 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2598 Use _Temporary_value.
2599 (emplace(const_iterator, _Args&&...)): Remove definition.
2600 (_M_insert_rval, _M_emplace_aux): Define.
2601 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2602 (_M_fill_insert): Use _Temporary_value.
2603 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2604 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2605 Adjust expected results for emplacing an lvalue with reallocation.
2606 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2607 expected results to account for construction/destruction of temporary
2609 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2611 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2614 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2615 Call remove_all for children of a directory.
2616 * testsuite/experimental/filesystem/operations/create_directories.cc:
2619 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
2621 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2622 dg-error line numbers.
2623 * testsuite/23_containers/array/tuple_interface/
2624 tuple_element_debug_neg.cc: Likewise.
2625 * testsuite/25_algorithms/lexicographical_compare/debug/
2626 irreflexive_neg.cc: Remove.
2628 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2630 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2631 than specific target.
2633 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
2636 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2639 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
2641 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2644 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2646 * configure.host: Remove mep-* support.
2648 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2650 * configure: Regenerate.
2651 * configure.host: Remove support for knetbsd.
2652 * crossconfig.m4: Likewise.
2654 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
2657 * include/tr1/hashtable_policy.h
2658 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2659 dereferenceable to avoid check on lower_bound result.
2660 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2661 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2662 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2663 Always return a value greater than input value. Set _M_next_resize to
2664 max value when reaching highest prime number.
2665 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2667 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2668 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2670 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2671 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2674 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
2677 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2678 Remove irreflexive checks.
2679 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2680 binary_search): Likewise.
2681 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2682 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2683 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2684 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2685 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2686 Add constructor from array.
2688 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
2690 * include/debug/debug.h
2691 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2692 (__glibcxx_requires_subscript): Move...
2693 * include/debug/assertions.h: ...here and add __builtin_expect.
2694 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2695 * include/bits/stl_deque.h
2696 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2697 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2698 (std::deque<>::back()): Likewise.
2699 (std::deque<>::pop_front()): Likewise.
2700 (std::deque<>::pop_back()): Likewise.
2701 (std::deque<>::swap(deque&)): Add allocator check.
2702 * include/bits/stl_vector.h
2703 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2704 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2705 (std::vector<>::back()): Likewise.
2706 (std::vector<>::pop_back()): Likewise.
2707 (std::vector<>::swap(vector&)): Add allocator check.
2709 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
2711 Provide swappable traits (p0185r1)
2712 * include/std/type_traits (is_swappable, is_nothrow_swappable,
2713 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2714 is_nothrow_swappable_v, is_swappable_with_v,
2715 is_nothrow_swappable_with_v): New.
2716 * include/bits/stl_pair.h: Use it as per p0185r1.
2717 * include/bits/stl_queue.h: Likewise.
2718 * include/bits/stl_stack.h: Likewise.
2719 * include/bits/unique_ptr.h: Likewise.
2720 * include/std/tuple: Likewise.
2721 * include/std/array: Likewise. Fix zero-size member swap.
2722 * include/bits/hashtable.h: Use __and_.
2723 * testsuite/20_util/is_nothrow_swappable/requirements/
2724 explicit_instantiation.cc: Change test options to std=gnu++17.
2725 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2727 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2728 * testsuite/20_util/is_swappable/requirements/
2729 explicit_instantiation.cc: Likewise.
2730 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2731 * testsuite/20_util/is_swappable/value.cc: Likewise.
2732 * testsuite/20_util/is_nothrow_swappable/requirements/
2733 explicit_instantiation_ext.cc: New.
2734 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2736 * testsuite/20_util/is_nothrow_swappable/value.h: New.
2737 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2738 * testsuite/20_util/is_nothrow_swappable_with/requirements/
2739 explicit_instantiation.cc: New.
2740 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2742 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2743 * testsuite/20_util/is_swappable/requirements/
2744 explicit_instantiation_ext.cc: New.
2745 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2746 * testsuite/20_util/is_swappable/value.h: New.
2747 * testsuite/20_util/is_swappable/value_ext.cc: New.
2748 * testsuite/20_util/is_swappable_with/requirements/
2749 explicit_instantiation.cc: New.
2750 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2751 * testsuite/20_util/is_swappable_with/value.cc: New.
2752 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2753 dg-error line numbers.
2754 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2757 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
2759 * include/std/array: Remove trailing whitespace.
2760 * include/std/atomic: Likewise.
2761 * include/std/bitset: Likewise.
2762 * include/std/chrono: Likewise.
2763 * include/std/complex: Likewise.
2764 * include/std/condition_variable: Likewise.
2765 * include/std/fstream: Likewise.
2766 * include/std/functional: Likewise.
2767 * include/std/future: Likewise.
2768 * include/std/iomanip: Likewise.
2769 * include/std/iosfwd: Likewise.
2770 * include/std/istream: Likewise.
2771 * include/std/limits: Likewise.
2772 * include/std/ratio: Likewise.
2773 * include/std/scoped_allocator: Likewise.
2774 * include/std/sstream: Likewise.
2775 * include/std/stdexcept: Likewise.
2776 * include/std/string: Likewise.
2777 * include/std/system_error: Likewise.
2778 * include/std/thread: Likewise.
2779 * include/std/tuple: Likewise.
2780 * include/std/type_traits: Likewise.
2781 * include/std/utility: Likewise.
2782 * include/std/valarray: Likewise.
2783 * include/std/vector: Likewise.
2785 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2786 new overloaded functions.
2787 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2788 to avoid creating a redundant temporary.
2789 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2792 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
2794 * include/bits/stl_deque.h
2795 (std::deque<>::operator=): Call _M_assign_aux.
2796 (std::deque<>::assign(initializer_list<>)): Likewise.
2797 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2798 (std::deque<>::insert(const_iterator, initializer_list<>)):
2799 Call _M_range_insert_aux.
2800 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2802 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2803 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2804 * include/bits/deque.tcc
2805 (std::deque<>::operator=): Call _M_range_insert_aux.
2806 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2808 * include/bits/stl_vector.h
2809 (std::vector<>::operator=): Call _M_assign_aux.
2810 (std::vector<>::assign(initializer_list<>)): Likewise.
2811 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2812 (std::vector<>::insert(const_iterator, initializer_list<>)):
2813 Call _M_range_insert.
2814 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2816 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
2818 * include/std/tuple (_Head_base<>): Default specialization condition at
2821 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2823 Support allocators in tuples of zero size.
2824 * include/std/tuple (tuple<>::tuple(),
2825 tuple<>::tuple(allocator_arg_t, const _Alloc&),
2826 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2827 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2829 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
2832 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2833 Add or remove permissions according to perms argument.
2834 * testsuite/experimental/filesystem/operations/permissions.cc: New
2837 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2839 Protect allocator-overloads of tuple-from-tuple constructors
2840 from cases that would create dangling references.
2841 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2842 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2843 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2844 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2846 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
2848 * doc/xml/manual/backwards_compatibility.xml: Adjust
2849 lists.debian.org link to https.
2850 * doc/html/manual/backwards.html: Regenerate.
2852 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
2854 * doc/xml/manual/abi.xml: Adjust URL to use https.
2855 * doc/html/manual/*: Regenerate.
2857 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
2860 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2861 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2862 check for _NotSameTuple.
2863 * include/std/tuple (_TMCT): New.
2864 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2865 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2866 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2867 const tuple<_UElements...>&)): Likewise.
2868 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2869 tuple<_UElements...>&&)): Likewise.
2870 * testsuite/20_util/tuple/cons/66338.cc: New.
2872 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
2874 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2875 * configure: Regenerate.
2876 * config.h.in: Regenerate.
2878 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2879 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2880 Remove const qualification on function. Replace
2881 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2882 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2883 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2885 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
2887 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2888 * include/bits/hashtable_policy.h
2889 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2890 having load factor management.
2891 (_Mask_range_hashing): New.
2893 (_Power2_rehash_policy): New.
2894 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2895 partial specializations only depend on whether iterators are constant
2897 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2898 test new hash policy.
2899 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2901 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2903 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2905 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2907 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2909 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
2910 using the new hash policy.
2911 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
2913 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
2915 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
2917 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
2919 * include/debug/safe_iterator.h
2920 (_Safe_iterator<>::operator->()): Implement using underlying iterator
2922 * include/debug/safe_local_iterator.h
2923 (_Safe_local_iterator<>::operator->()): Likewise.
2925 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
2927 * testsuite/experimental/memory_resource/1.cc: Add required argument
2928 to dg-require-atomic-builtins.
2930 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
2933 * include/debug/bitset: Add #pragma GCC system_header.
2934 * include/debug/deque: Likewise.
2935 * include/debug/list: Likewise.
2936 * include/debug/map: Likewise.
2937 * include/debug/set: Likewise.
2938 * include/debug/string: Likewise.
2939 * include/debug/unordered_map: Likewise.
2940 * include/debug/unordered_set: Likewise.
2941 * include/debug/vector: Likewise.
2942 * include/debug/functions.h: Adjust whitespace.
2944 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
2947 * testsuite/experimental/memory_resource/1.cc: Require atomics.
2949 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
2952 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
2953 exception constructors with __sso_string parameters.
2955 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
2957 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
2958 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2959 Test begin and end functions.
2960 * testsuite/experimental/filesystem/iterators/
2961 recursive_directory_iterator.cc: Likewise.
2964 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
2965 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
2967 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2968 Overload operator* to move from rvalues.
2971 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
2972 * testsuite/experimental/filesystem/operations/create_directory.cc:
2976 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
2977 base path to exception.
2978 * testsuite/experimental/filesystem/operations/canonical.cc: Test
2979 paths contained in exception.
2981 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
2985 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2987 (directory_iterator::operator++(int)): Return proxy.
2988 (recursive_directory_iterator::operator++(int)): Likewise.
2989 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2990 Test post-increment.
2991 * testsuite/experimental/filesystem/iterators/
2992 recursive_directory_iterator.cc: Likewise.
2994 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
2997 * testsuite/experimental/filesystem/iterators/
2998 recursive_directory_iterator.cc: Fix test02 to not call member
2999 functions on invalid iterator, and use VERIFY not assert.
3001 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3003 Avoid endless run-time recursion for copying single-element
3004 tuples where the element type is by-value constructible
3006 * include/std/tuple (_NotSameTuple): New.
3007 * include/std/tuple (tuple(_UElements&&...): Use it.
3008 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3010 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3013 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3014 Initialize scalar member variables in default constructor.
3015 * testsuite/experimental/filesystem/iterators/
3016 recursive_directory_iterator.cc: Test default construction.
3018 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3020 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3022 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3024 * testsuite/experimental/filesystem/path/native/string.cc: Add
3025 dg-require-filesystem-ts directive.
3027 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3030 * include/experimental/memory_resource
3031 (__resource_adaptor_imp::do_allocate): Do not default-construct
3033 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3034 allocator_traits to get pointer type.
3035 (__null_memory_resource::do_allocate): Remove unused parameters.
3036 (__null_memory_resource::do_deallocate): Likewise.
3037 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3038 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3039 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3041 * testsuite/experimental/memory_resource/1.cc: Here.
3042 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3043 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3045 2016-04-29 Chris Gregory <czipperz@gmail.com>
3047 * config/*: Remove trailing whitespace.
3049 * testsuite/tr1/*: Likewise.
3050 * testsuite/util/*: Likewise.
3052 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3055 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3057 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3059 * include/std/atomic (atomic<_Tp>): Likewise.
3060 * include/std/shared_mutex (shared_lock): Likewise.
3061 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3062 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3063 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3064 * testsuite/29_atomics/atomic/70766.cc: New test.
3065 * testsuite/30_threads/shared_lock/70766.cc: New test.
3067 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3068 __detail::_Insert): Improve comments.
3070 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3073 * include/std/limits: Update comments about DRs.
3074 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3075 numeric_limits<const volatile _Tp>): Define unconditionally.
3077 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3080 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3081 static counter to return a different path on every call.
3083 2016-04-22 Tim Shen <timshen@google.com>
3086 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3087 Fix the match_not_bow and match_not_eow behavior.
3088 * testsuite/28_regex/regression.cc: Add testcase.
3090 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3093 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3094 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3096 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3099 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3100 Override endianness bit in mode.
3101 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3102 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3103 that little_endian mode is ignored.
3104 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3107 * src/filesystem/ops.cc (close_fd): New function.
3108 (do_copy_file): Set permissions before copying file contents. Check
3109 result of closing file descriptors. Don't copy streambuf when file
3111 (copy(const path&, const path&, copy_options, error_code&)): Use
3112 lstat for source file when copy_symlinks is set.
3113 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3115 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3116 operator~ operator&=, operator|=, operator^=): Add noexcept to
3117 overloaded operators for copy_options, perms and directory_options.
3118 * src/filesystem/ops.cc (make_file_type, make_file_status,
3119 is_not_found_errno, file_time): Add noexcept.
3121 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3123 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3125 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3128 * include/bits/random.h: Reword static assertion messages to state
3129 positive conditions.
3130 * include/bits/random.tcc: Likewise.
3131 * include/bits/uniform_int_dist.h: Likewise.
3132 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3135 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3137 * config/cpu/sh/atomicity.h: Fix typo in comment.
3140 * include/std/thread (operator<, operator==): Move definitions to
3142 * testsuite/30_threads/thread/id/70294.cc: New test.
3144 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3145 -Wno-pedantic to dg-options.
3146 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3147 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3149 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3150 Remove extra semi-colon.
3151 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3152 Always supply second argument to static_assert.
3153 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3155 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3157 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3158 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3159 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3160 alignof when operand is an object not a type.
3161 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3162 * testsuite/decimal/make-decimal.cc: Likewise.
3163 * testsuite/experimental/type_traits/value.cc: Always supply second
3164 argument to static_assert.
3165 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3168 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3170 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3171 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3172 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3173 Likewise. Add licence and change to compile-only test.
3175 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3177 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3179 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3182 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3184 * include/bits/specfun.h: Trivial comment misspelling.
3186 2016-04-14 Jason Merrill <jason@redhat.com>
3188 Revert Jonathan's empty ABI change from yesterday.
3190 2016-04-13 Martin Sebor <msebor@redhat.com>
3193 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3194 upper bound is positive.
3196 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3198 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3199 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3200 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3201 of functions taking empty structs by value. Add a template parameter
3202 to overloads without hints. Rename overloads with hints to
3204 (_Hashtable::_M_erase(true_type, const_iterator),
3205 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3206 by reordering parameters.
3207 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3208 _M_emplace_hint instead of _M_emplace.
3209 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3210 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3211 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3212 __shared_ptr): Likewise.
3213 * include/bits/stl_algo.h (replace_if): Likewise.
3214 * include/bits/stl_pair.h (piecewise_construct_t,
3215 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3216 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3217 __uses_alloc0): Likewise.
3218 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3219 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3220 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3221 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3222 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3223 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3224 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3226 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3228 Document C++17/TR29124 C++ Special Math Functions.
3229 * include/bits/specfun.h: Add Doxygen markup.
3231 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3233 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3235 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3237 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3238 * src/Makefile.in: Regenerate.
3240 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3243 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3244 __atomic_fetch_add for bool.
3245 * configure: Regenerate.
3247 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3250 * src/c++11/thread.cc (execute_native_thread_routine,
3251 execute_native_thread_routine_compat): Give internal linkage.
3252 * testsuite/30_threads/thread/70503.cc: New test.
3254 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3257 * include/bits/stl_pair.h (_ConstructiblePair,
3258 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3259 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3260 for same-type cases.
3261 * testsuite/20_util/pair/70437.cc: New.
3263 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3266 * config/abi/pre/gnu.ver: Add new symbol.
3267 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3268 * testsuite/18_support/free_eh_pool.cc: New test.
3270 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3272 * include/Makefile.am (install-freestanding-headers): Add
3273 concept_check.h and move.h to the installed headers.
3274 * include/Makefile.in: Regenerated.
3275 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3276 freestanding implementations.
3277 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3278 that this macro has no effect for freestanding implementations.
3279 * doc/html/manual/using_macros.html: Likewise.
3281 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3284 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3286 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3288 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3289 * doc/html/*: Regenerate.
3292 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3293 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3294 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3295 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3296 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3297 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3298 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3300 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3301 namespace before including TR1 headers.
3302 * testsuite/tr1/headers/c++200x/math.cc: New test.
3304 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3307 * include/c_global/cstdarg: Undefine __need___va_list.
3308 * include/c_global/cstddef: Undefine all kinds of __need_*.
3310 2016-02-16 Tim Shen <timshen@google.com>
3313 * include/bits/regex_scanner.h: Add different special character
3314 sets for grep and egrep regex.
3315 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3316 * testsuite/28_regex/regression.cc: Add new testcase.
3318 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3320 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3321 added 'constexpr' in previous commit.
3322 * configure: Regenerate.
3325 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3326 checks for all targets except *-*-solaris2.* and ensure we find the
3327 libc math.h header not our own.
3328 * configure: Regenerate.
3330 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3332 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3333 New file. Copied over from s390-linux-gnu.
3335 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3338 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3339 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3340 * config.h.in: Regenerate.
3341 * configure: Regenerate.
3342 * testsuite/21_strings/c_strings/char/69626.cc: New.
3344 * doc/html/index.html: Regenerate.
3346 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3347 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3348 * doc/html/*: Regenerate.
3350 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3353 * include/c_compatibility/math.h: Move header guards.
3354 * include/c_compatibility/stdlib.h: Likewise.
3356 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3359 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3361 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3364 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3365 isinf and isnan functions into two independent checks. Check on hpux.
3366 * config.h.in: Regenerate.
3367 * configure: Regenerate.
3368 * include/c_global/cmath (isinf(double), isnan(double)): Use
3369 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3372 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3374 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3376 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3379 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3380 -ffp-contract=off, and -ffloat-store to disable excess precision.
3381 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3384 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3387 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3388 random_access_iterator_tag>): Check is_move_assignable when moving.
3389 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3391 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3392 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3393 * testsuite/25_algorithms/move/69478.cc: New.
3394 * testsuite/25_algorithms/move_backward/69478.cc: new.
3396 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3398 * include/c_compatibility/stdlib.h: Include wide character related
3399 definitions only when they are available in cstdlib.
3401 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3404 * include/Makefile.am: Add new header.
3405 * include/Makefile.in: Regenerate.
3406 * include/bits/random.h (uniform_int_distribution): Move to
3407 bits/uniform_int_dist.h.
3408 * include/bits/random.tcc (uniform_int_distribution::operator(),
3409 uniform_int_distribution::__generate_impl): Likewise.
3410 * include/bits/uniform_int_dist.h: New header.
3411 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3412 <bits/uniform_int_dist.h> instead of <random>.
3413 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3414 move_iterators/1.cc: Include correct header for uninitialized_copy.
3415 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3416 move_iterators/1.cc: Likewise.
3417 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3419 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3421 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3424 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3426 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3428 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3429 * include/c_compatibility/math.h: Import the TR29124 functions
3430 into the global namespace.
3431 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3432 xfail and make compile-only.
3433 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3434 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3435 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3436 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3437 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3438 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3439 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3440 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3441 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3442 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3443 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3444 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3445 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3446 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3447 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3448 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3449 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3450 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3451 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3452 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3454 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3457 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3458 define result_type for types which can be safely used with valarrays.
3459 * testsuite/26_numerics/valarray/69116.cc: New.
3462 * config/os/gnu-linux/os_defines.h: Define
3463 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3464 * include/c_global/cmath (isinf, isnan): Check it.
3465 * doc/xml/manual/internals.xml: Document it.
3466 * doc/html/*: Regenerate.
3468 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3471 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3472 * include/ext/type_traits.h: Likewise.
3473 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3474 for presence of C headers.
3475 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3476 dg-error line number.
3477 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3478 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3479 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3481 2016-01-20 Torvald Riegel <triegel@redhat.com>
3484 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3486 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3489 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3490 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3491 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3492 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3493 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3494 Add using declarations.
3495 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3498 * include/c_global/ccomplex: Ensure C++ language linkage.
3499 * include/c_global/cmath: Likewise.
3500 * include/c_global/cstdlib: Likewise.
3501 * include/c_global/ctgmath: Likewise.
3502 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3504 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3508 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3509 --enable-cheaders=c_global configs.
3510 * include/Makefile.in: Regenerate.
3511 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3512 test and allow inclusion from C files.
3513 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3514 (at_quick_exit, quick_exit): Add using directives.
3515 * include/c_global/cmath: Use #include_next for math.h.
3516 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3517 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3518 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3519 Remove xfail for most targets.
3520 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3522 2016-01-18 Torvald Riegel <triegel@redhat.com>
3524 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3525 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3526 and move after its definition.
3527 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3528 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3529 __GXX_WEAK__, and only provide transactional clones if
3530 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3533 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3536 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3539 * include/std/functional (_Function_base::_M_not_empty_function):
3540 Change overloads for pointers to take arguments by value.
3541 * testsuite/20_util/function/cons/57465.cc: Add tests for
3542 pointer-to-member cases.
3545 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3546 Use macros for exception handling and fix unused parameter warning.
3548 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3551 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3553 2016-01-17 Torvald Riegel <triegel@redhat.com>
3555 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3557 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3559 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3562 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3565 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3566 static assertion that type is constructible from the arguments.
3567 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3568 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3569 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3572 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3573 and isnan on AIX. Quote variables.
3574 * configure: Regenerate.
3576 2016-01-15 Torvald Riegel <triegel@redhat.com>
3578 * include/bits/basic_string.h (basic_string): Declare friends.
3579 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3580 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3581 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3582 length_error, out_of_range, runtime_error, range_error,
3583 underflow_error, overflow_error): Declare members as transaction-safe.
3584 (logic_error, runtime_error): Declare friend functions.
3585 * libsupc++/exception (exception, bad_exception): Declare members as
3587 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3588 transaction-safe members of exceptions and helper functions.
3589 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3590 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3591 (CXXABI_1.3.10): New.
3592 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3593 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3594 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3595 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3596 * include/Makefile.in: Regenerate.
3597 * config.h.in: Regenerate.
3598 * configure: Regenerate.
3599 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3601 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3603 * include/ext/random.tcc: Use __builtin_isfinite instead of
3606 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3608 * include/bits/std_mutex.h: Fix Doxygen @file name.
3610 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3611 Jonathan Wakely <jwakely@redhat.com>
3612 Florian Goth <CaptainSifff@gmx.de>
3614 Implement TR29124 C++ special Math Functions.
3615 * include/Makefile.am: Add new headers.
3616 * include/Makefile.in: Regenerate.
3617 * include/bits/specfun.h: New.
3618 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3619 * include/tr1/bessel_function.tcc: Ditto.
3620 * include/tr1/beta_function.tcc: Ditto.
3621 * include/tr1/cmath: Ditto.
3622 * include/tr1/ell_integral.tcc: Ditto.
3623 * include/tr1/exp_integral.tcc: Ditto.
3624 * include/tr1/gamma.tcc: Ditto.
3625 * include/tr1/hypergeometric.tcc: Ditto.
3626 * include/tr1/legendre_function.tcc: Ditto.
3627 * include/tr1/modified_bessel_func.tcc: Ditto.
3628 * include/tr1/poly_hermite.tcc: Ditto.
3629 * include/tr1/poly_laguerre.tcc: Ditto.
3630 * include/tr1/riemann_zeta.tcc: Ditto.
3631 * include/tr1/special_function_util.h: Ditto.
3632 * testsuite/ext/special_functions/conf_hyperg: New.
3633 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3634 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3635 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3636 * testsuite/ext/special_functions/hyperg: New.
3637 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3638 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3639 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3640 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3641 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3642 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3643 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3644 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3645 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3646 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3647 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3648 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3649 * testsuite/special_functions/03_beta/check_nan.cc: New.
3650 * testsuite/special_functions/03_beta/check_value.cc: New.
3651 * testsuite/special_functions/03_beta/compile.cc: New.
3652 * testsuite/special_functions/03_beta/compile_2.cc: New.
3653 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3654 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3655 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3656 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3657 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3658 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3659 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3660 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3661 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3662 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3663 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3664 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3665 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3666 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3667 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3668 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3669 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3670 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3671 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3672 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3673 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3674 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3675 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3676 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3677 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3678 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3679 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3680 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3681 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3682 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3683 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3684 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3685 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3686 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3687 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3688 * testsuite/special_functions/12_ellint_2/compile.cc: New.
3689 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3690 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3691 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3692 * testsuite/special_functions/13_ellint_3/compile.cc: New.
3693 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3694 * testsuite/special_functions/14_expint/check_nan.cc: New.
3695 * testsuite/special_functions/14_expint/check_value.cc: New.
3696 * testsuite/special_functions/14_expint/compile.cc: New.
3697 * testsuite/special_functions/14_expint/compile_2.cc: New.
3698 * testsuite/special_functions/15_hermite/check_nan.cc: New.
3699 * testsuite/special_functions/15_hermite/check_value.cc: New.
3700 * testsuite/special_functions/15_hermite/compile.cc: New.
3701 * testsuite/special_functions/15_hermite/compile_2.cc: New.
3702 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3703 * testsuite/special_functions/16_laguerre/check_value.cc: New.
3704 * testsuite/special_functions/16_laguerre/compile.cc: New.
3705 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3706 * testsuite/special_functions/17_legendre/check_nan.cc: New.
3707 * testsuite/special_functions/17_legendre/check_value.cc: New.
3708 * testsuite/special_functions/17_legendre/compile.cc: New.
3709 * testsuite/special_functions/17_legendre/compile_2.cc: New.
3710 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3711 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3712 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3713 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3714 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3715 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3716 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3717 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3718 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3719 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3720 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3721 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3722 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3723 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3724 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3725 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3726 * testsuite/util/specfun_testcase.h: New.
3727 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3728 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3729 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3730 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3731 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3732 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3733 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3735 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
3738 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3739 and isnan functions.
3740 * config.h.in: Regenerate.
3741 * configure: Regenerate.
3742 * include/c_global/cmath (isinf(double), isnan(double))
3743 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3744 * testsuite/26_numerics/headers/cmath/48891.cc: New.
3746 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3749 * configure.host (abi_baseline_pair): Use separate baseline for
3750 Solaris 11+ and Solaris 10 with gld.
3751 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3752 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3753 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3755 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
3758 * include/std/type_traits: Following N4511, reimplement __is_swappable
3759 and __is_nothrow_swappable. Move __is_swappable to namespace std,
3760 adjust callers. Use __is_nothrow_swappable in swap.
3761 * include/bits/move.h: Use __is_nothrow_swappable in swap.
3762 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3763 __is_swappable related tests.
3764 * testsuite/20_util/is_swappable/value.cc: New.
3765 * testsuite/20_util/is_swappable/requirements/
3766 explicit_instantiation.cc: New.
3767 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3768 * testsuite/25_algorithms/swap/68877.cc: New.
3770 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
3772 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3776 * include/std/functional (function::_Invoke): Remove, use result_of.
3777 (function::_Callable): Replace alias template with class template
3778 and use partial specialization instead of _NotSelf alias template.
3779 (function(_Functor)): Add "not self" constraint so that _Callable is
3780 not used while type is incomplete.
3781 * testsuite/20_util/function/69222.cc: New.
3783 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
3786 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3787 Define partial specialization.
3788 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3789 destroy members to std::allocator explicit specialization.
3791 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
3793 * testsuite/26_numerics/headers/cmath/
3794 c99_classification_macros_c++.cc: Rename to ...
3795 * testsuite/26_numerics/headers/cmath/
3796 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3797 * testsuite/26_numerics/headers/cmath/
3798 c99_classification_macros_c++0x.cc: Rename to ...
3799 * testsuite/26_numerics/headers/cmath/
3800 c99_classification_macros_c++11.cc: Here.
3803 * include/bits/uses_allocator.h: Add missing include.
3805 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
3810 * include/bits/stl_iterator.h (back_insert_iterator,
3811 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3812 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3813 * include/std/future (__future::base::_State_baseV2::__setter):
3815 * include/std/scoped_allocator (__outermost): Likewise.
3816 * testsuite/20_util/scoped_allocator/69114.cc: New.
3817 * testsuite/20_util/uses_allocator/69114.cc: New.
3818 * testsuite/30_threads/promise/69106.cc: New.
3820 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
3823 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3824 Remove _GLIBCXX_NOEXCEPT.
3825 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3827 * include/Makefile.am: Adjust.
3828 * include/Makefile.in: Regenerate.
3829 * include/bits/mutex.h: Rename to bits/std_mutex.h.
3830 * include/std/condition_variable: Adjust include.
3831 * include/std/mutex: Likewise.
3833 2016-01-04 Jakub Jelinek <jakub@redhat.com>
3835 Update copyright years.
3837 Copyright (C) 2016 Free Software Foundation, Inc.
3839 Copying and distribution of this file, with or without modification,
3840 are permitted in any medium without royalty provided the copyright
3841 notice and this notice are preserved.