1 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
3 * include/debug/safe_base.h
4 (_Safe_iterator_base::_M_detach_single): Make public.
6 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
8 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
9 redefine macro defined in <bits/stl_iterator.h>.
11 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
12 iterator is not past-the-end.
13 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
15 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
17 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
18 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
19 (unordered_multimap::extract(const_iterator)): Likewise.
20 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
21 (unordered_multiset::extract(const_iterator)): Likewise.
23 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
26 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
27 Fix an out-of-bounds access.
29 2016-09-26 Marek Polacek <polacek@redhat.com>
32 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
34 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
36 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
38 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
39 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
41 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
42 bitset*)): Remove __unused__ attribute.
43 * include/debug/safe_base.h (_Safe_iterator_base): Make
44 _Safe_sequence_base a friend.
45 (_Safe_iterator_base::_M_attach): Make protected.
46 (_Safe_iterator_base::_M_attach_single): Likewise.
47 (_Safe_iterator_base::_M_detach): Likewise.
48 (_Safe_iterator_base::_M_detach_single): Likewise.
49 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
50 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
51 (_Safe_sequence_base::_M_swap): Make protected.
52 (_Safe_sequence_base::_M_attach): Make private.
53 (_Safe_sequence_base::_M_attach_single): Likewise.
54 (_Safe_sequence_base::_M_detach): Likewise.
55 (_Safe_sequence_base::_M_detach_single): Likewise.
56 * include/debug/safe_container.h
57 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
58 * include/debug/safe_iterator.h
59 (_Safe_iterator::operator++()): Name __scoped_lock instance.
60 * include/debug/safe_iterator.tcc: Remove trailing line.
61 * include/debug/safe_unordered_base.h
62 (_Safe_local_iterator_base::_M_attach): Make protected.
63 (_Safe_local_iterator_base::_M_attach_single): Likewise.
64 (_Safe_local_iterator_base::_M_detach): Likewise.
65 (_Safe_local_iterator_base::_M_detach_single): Likewise.
66 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
67 (_Safe_unordered_container_base::_M_attach_local): Make private.
68 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
69 (_Safe_unordered_container_base::_M_detach_local): Likewise.
70 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
72 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
75 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
79 * include/bits/basic_string.h (basic_string::clear()): Drop reference
81 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
83 * testsuite/21_strings/basic_string/56166.cc: New.
84 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
86 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
87 (basic_string::erase(size_type, size_type)): Add fast path for
88 truncating the string, by calling _M_set_length directly.
89 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
90 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
91 (basic_string::resize(size_type, _CharT)): Likewise.
93 2016-09-22 Jason Merrill <jason@redhat.com>
95 * configure.ac: Define HAVE_MEMALIGN for newlib.
97 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
99 * config/cpu/m68k/atomicity.h: Adjust comment.
100 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
101 explicit atomicity_dir setup via configure.host.
102 * configure.host (rtems-*): Set atomicity_dir.
103 * configure: Regenerate.
105 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
107 Implement C++17 node extraction and insertion (P0083R5)
108 * doc/xml/manual/status_cxx2017.xml: Document status.
109 * doc/html/*: Regenerate.
110 * include/Makefile.am: Add bits/node_handle.h and reorder.
111 * include/Makefile.in: Regenerate.
112 * include/bits/hashtable.h (_Hashtable::node_type)
113 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
114 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
115 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
116 (_Hash_merge_helper): Define primary template.
117 * include/bits/node_handle.h: New header.
118 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
120 (map::node_type, map::insert_return_type, map::extract, map::merge)
121 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
123 (_Rb_tree_merge_helper): Specialize for map.
124 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
126 (multimap::node_type, multimap::extract, multimap::merge)
127 (multimap::insert(node_type&&))
128 (multimap::insert(const_iterator, node_type&&)): Define.
129 (_Rb_tree_merge_helper): Specialize for multimap.
130 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
132 (multiset::node_type, multiset::extract, multiset::merge)
133 (multiset::insert(node_type&&))
134 (multiset::insert(const_iterator, node_type&&)): Define.
135 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
137 (set::node_type, set::insert_return_type, set::extract, set::merge)
138 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
140 (_Rb_tree_merge_helper): Specialize for set.
141 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
142 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
143 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
144 (_Rb_tree::_M_reinsert_node_hint_unique)
145 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
146 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
147 (_Rb_tree_merge_helper): Specialize for multiset.
148 * include/bits/unordered_map.h (unordered_map): Declare
149 unordered_map<> and unordered_multimap<> as friends.
150 (unordered_map::node_type, unordered_map::insert_return_type)
151 (unordered_map::extract, unordered_map::merge)
152 (unordered_map::insert(node_type&&))
153 (unordered_map::insert(const_iterator, node_type&&))
154 (unordered_multimap): Declare _Hash_merge_helper as friend.
155 (unordered_multimap::node_type, unordered_multimap::extract)
156 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
157 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
158 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
159 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
160 Declare _Hash_merge_helper as friend.
161 (unordered_set::node_type, unordered_set::insert_return_type)
162 (unordered_set::extract, unordered_set::merge)
163 (unordered_set::insert(node_type&&))
164 (unordered_set::insert(const_iterator, node_type&&)): Define.
165 (unordered_multiset::node_type, unordered_multiset::extract)
166 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
167 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
168 (_Hash_merge_helper): Specialize for unordered sets and multisets.
169 * include/debug/map.h (map): Add using declarations or forwarding
170 functions for new members.
171 * include/debug/map.h (multimap): Likewise.
172 * include/debug/map.h (multiset): Likewise.
173 * include/debug/map.h (set): Likewise.
174 * include/debug/unordered_map (unordered_map, unordered_multimap):
176 * include/debug/unordered_set( unordered_set, unordered_multiset):
178 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
180 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
181 (StdNodeHandlePrinter): Define printer for node handles.
182 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
183 * testsuite/23_containers/map/modifiers/extract.cc: New.
184 * testsuite/23_containers/map/modifiers/merge.cc: New.
185 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
186 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
187 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
188 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
189 * testsuite/23_containers/set/modifiers/extract.cc: New.
190 * testsuite/23_containers/set/modifiers/merge.cc: New.
191 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
192 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
193 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
195 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
196 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
198 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
199 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
200 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
201 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
203 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
205 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
207 Fix tests on old arm platforms for optional.
208 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
210 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
212 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
213 recent change to _Variant_storage.
214 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
217 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
218 std::forward and ::new. Cast pointer to void*.
219 * include/std/variant (_Variant_storage, _Union, _Variant_base)
220 (__access, __visit_invoke, variant, visit): Qualify std::forward.
221 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
223 2016-09-22 Tim Shen <timshen@google.com>
225 * include/std/variant (variant::operator=): Fix assignment
227 * testsuite/20_util/variant/compile.cc: Add test.
229 2016-09-22 Tim Shen <timshen@google.com>
232 * include/std/variant (_Variant_storage::_Variant_storage):
233 Change _Variant_storage's union to be default constructible.
234 * testsuite/20_util/variant/compile.cc: New test.
236 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
239 * include/std/optional (__is_optional_impl, __is_optional): Remove.
240 (__converts_from_optional, __assigns_from_optional): New.
241 (optional(_Up&&)): Use is_same instead of __is_optional.
242 (optional(const optional<_Up>&)): Constrain with
243 __converts_from_optional.
244 (optional(optional<_Up>&&)): Likewise.
245 (operator=(_Up&&)): Use is_same instead of __is_optional, check
246 is_same and is_scalar.
247 (operator=(const optional<_Up>&)): Constrain with
248 __converts_from_optional and __assigns_from_optional.
249 (operator=(optional<_Up>&&)): Likewise.
250 * testsuite/20_util/optional/77288.cc: New.
251 * testsuite/20_util/optional/cons/value.cc: Adjust.
253 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
255 Implement LWG 2729 for tuple.
256 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
257 Suppress conditionally.
258 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
259 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
260 (_Tuple_impl(const _Head&)): Constrain.
261 (_Tuple_impl(_UHead&&)): Likewise.
262 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
263 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
264 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
265 (operator=(const tuple&)): Enable conditionally.
266 (operator=(tuple&&)): Suppress conditionally.
267 (operator=(const tuple<_UElements...>&)): Constrain.
268 (operator=(tuple<_UElements...>&&)): Likewise.
269 (operator=(const tuple&)): Enable conditionally (2-param tuple).
270 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
271 (operator=(const tuple<_U1, _U2>&)): Constrain.
272 (operator=(tuple<_U1, _U2>&&)): Likewise.
273 (operator=(const pair<_U1, _U2>&)): Likewise.
274 (operator=(pair<_U1, _U2>&&)): Likewise.
275 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
276 * testsuite/20_util/tuple/tuple_traits.cc: New.
278 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
281 Implement LWG 2729 for pair.
282 * include/bits/stl_pair.h (_PCC): New.
283 (_ConstructiblePair, _ImplicitlyConvertiblePair):
284 Turn into static member functions of _PCC.
285 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
287 (pair(const _T1&, const _T2&)): Adjust.
289 (pair(const pair<_U1, _U2>&)): Adjust.
290 (pair(_U1&&, const _T2&)): Likewise.
291 (pair(const _T1&, _U2&&)): Likewise.
292 (pair(_U1&&, _U2&&)): Likewise.
293 (pair(pair<_U1, _U2>&&)): Likewise.
294 (operator=(const pair&)): Make conditionally deleted.
295 (operator=(pair&&)): Make conditionally suppressed.
296 (operator=(const pair<_U1, _U2>&)): Constrain.
297 (operator=(pair<_U1, _U2>&&): Likewise.
298 * include/std/type_traits (__nonesuch): New.
299 * testsuite/20_util/pair/traits.cc: New.
301 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
304 * include/bits/stl_construct.h: (_Construct_novalue): New.
305 (_Destroy_n_aux, _Destroy_n): New.
306 * include/bits/stl_uninitialized.h: (type_traits):
307 New include in C++11 mode.
308 (__uninitialized_default_novalue_1): New.
309 (__uninitialized_default_novalue_n_1): Likewise.
310 (__uninitialized_default_novalue): Likewise.
311 (__uninitialized_default_novalue_n): Likewise.
312 (__uninitialized_copy_n_pair): Likewise.
313 (uninitialized_default_construct):
314 Use __uninitialized_default_novalue.
315 (uninitialized_default_construct_n):
316 Use __uninitialized_default_novalue_n.
317 (uninitialized_value_construct): Use __uninitialized_default.
318 (uninitialized_value_construct_n): Use __uninitialized_default_n.
319 (uninitialized_move): Use uninitialized_copy.
320 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
321 (destroy_at): Use _Destroy.
323 (destroy_n): Likewise.
324 * testsuite/20_util/specialized_algorithms/
325 memory_management_tools/1.cc: Add tests for exceptions,
326 add tests for trivial cases for construct and move.
328 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
330 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
331 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
333 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
336 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
337 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
338 division to int to work with Python 3.
340 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
342 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
343 display_hint to be set by subclasses.
344 (StdVariantPrinter): Use array for display_hint. Adjust output to be
345 more similar to std::any and std::optional output.
346 (register_type_printers): Add type printers for basic_string_view
347 typedefs and experimental::any. Adjust type printers for
348 fundamentals_v1 templates to match fundamentals_v2 and later.
349 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
352 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
354 (ListWorkerBase.get_value_from_node): Define new method.
355 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
357 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
359 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
360 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
361 Register for C++17 components in namespace std. Strip inline namespace
364 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
366 * doc/xml/manual/profile_mode.xml: Fix typo.
367 * doc/html/manual/profile_mode_devel.html: Regenerate.
369 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
370 Marc Glisse <marc.glisse@inria.fr>
372 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
373 (operator new(size_t, align_val_t)): Replace modulus operator with
376 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
378 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
379 Increase alignment if less than sizeof(void*).
380 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
381 Increase size if not a multiple of alignment.
383 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
385 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
386 * doc/html/*: Regenerate.
388 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
390 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
392 2016-09-14 Marek Polacek <polacek@redhat.com>
394 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
397 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
399 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
400 Move dg-do directive before dg-skip.
401 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
402 Move dg-do directive before dg-require.
403 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
404 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
405 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
406 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
407 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
408 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
409 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
410 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
411 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
412 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
413 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
414 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
415 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
416 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
417 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
419 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
420 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
421 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
422 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
423 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
425 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
427 Implement P0040R3, Extending memory management tools.
428 * include/bits/stl_uninitialized.h (utility): New include
430 (uninitialized_default_construct): New.
431 (uninitialized_default_construct_n): Likewise.
432 (uninitialized_value_construct): Likewise.
433 (uninitialized_value_construct_n): Likewise.
434 (uninitialized_move): Likewise.
435 (uninitialized_move_n): Likewise.
436 (destroy_at, destroy, destroy_n): Likewise.
437 * testsuite/20_util/specialized_algorithms/memory_management_tools/
440 2016-09-12 Jason Merrill <jason@redhat.com>
442 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
444 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
446 Implement P0253R1, Fixing a design mistake in the searchers
447 interface in Library Fundamentals.
448 * include/std/functional: (utility): New include in C++17 mode.
449 (default_searcher): Use a pair as return type, adjust the definition.
450 (boyer_moore_searcher): Likewise.
451 (boyer_moore_horspool_searcher): Likewise.
452 * testsuite/20_util/function_objects/searchers.cc: Adjust.
454 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
456 Implement C++17 string searchers.
457 * include/std/functional: (unordered_map, vector): New includes
459 (array, bits/stl_algo.h): Likewise.
460 (default_searcher, __boyer_moore_map_base): New.
461 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
462 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
463 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
464 (make_boyer_moore_searcher): Likewise.
465 (make_boyer_moore_horspool_searcher): Likewise.
466 * testsuite/20_util/function_objects/searchers.cc: New.
468 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
470 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
471 Move dg-do directive before dg-require.
472 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
473 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
475 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
476 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
477 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
478 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
479 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
480 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
481 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
482 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
483 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
484 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
485 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
486 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
487 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
489 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
491 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
492 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
493 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
495 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
497 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
499 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
501 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
503 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
505 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
507 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
509 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
511 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
513 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
515 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
517 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
519 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
521 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
523 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
525 * testsuite/23_containers/forward_list/debug/
526 iterator_self_move_assign_neg.cc: Likewise.
527 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
529 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
531 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
533 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
535 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
537 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
539 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
541 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
543 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
544 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
545 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
546 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
547 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
548 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
549 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
550 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
551 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
552 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
553 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
555 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
556 * testsuite/23_containers/map/debug/60499.cc: Likewise.
557 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
558 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
559 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
560 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
561 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
562 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
563 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
565 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
566 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
567 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
568 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
569 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
570 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
571 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
572 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
573 * testsuite/23_containers/multimap/debug/
574 iterator_self_move_assign_neg.cc: Likewise.
575 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
577 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
578 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
579 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
580 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
581 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
582 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
583 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
584 * testsuite/23_containers/multiset/debug/
585 iterator_self_move_assign_neg.cc: Likewise.
586 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
588 * testsuite/23_containers/set/debug/60499.cc: Likewise.
589 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
590 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
591 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
592 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
593 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
594 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
595 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
597 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
598 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
599 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
600 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
601 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
603 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
604 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
605 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
607 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
609 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
611 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
612 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
613 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
614 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
615 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
616 * testsuite/23_containers/unordered_map/debug/
617 invalid_local_iterator_compare_neg.cc: Likewise.
618 * testsuite/23_containers/unordered_map/debug/
619 invalid_local_iterator_range_neg.cc: Likewise.
620 * testsuite/23_containers/unordered_map/debug/
621 iterator_self_move_assign_neg.cc: Likewise.
622 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
624 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
626 * testsuite/23_containers/unordered_map/debug/
627 use_erased_local_iterator_neg.cc: Likewise.
628 * testsuite/23_containers/unordered_map/debug/
629 use_invalid_iterator_neg.cc: Likewise.
630 * testsuite/23_containers/unordered_map/debug/
631 use_invalid_local_iterator_neg.cc: Likewise.
632 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
633 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
635 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
637 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
639 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
641 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
643 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
645 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
647 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
649 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
651 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
653 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
655 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
657 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
659 * testsuite/23_containers/unordered_multimap/debug/
660 invalid_local_iterator_compare_neg.cc: Likewise.
661 * testsuite/23_containers/unordered_multimap/debug/
662 invalid_local_iterator_range_neg.cc: Likewise.
663 * testsuite/23_containers/unordered_multimap/debug/
664 iterator_self_move_assign_neg.cc: Likewise.
665 * testsuite/23_containers/unordered_multimap/debug/
666 max_load_factor_neg.cc: Likewise.
667 * testsuite/23_containers/unordered_multimap/debug/
668 self_move_assign_neg.cc: Likewise.
669 * testsuite/23_containers/unordered_multimap/debug/
670 use_erased_local_iterator_neg.cc: Likewise.
671 * testsuite/23_containers/unordered_multimap/debug/
672 use_invalid_iterator_neg.cc: Likewise.
673 * testsuite/23_containers/unordered_multimap/debug/
674 use_invalid_local_iterator_neg.cc: Likewise.
675 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
677 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
679 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
681 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
683 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
685 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
687 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
689 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
691 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
693 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
695 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
697 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
699 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
701 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
703 * testsuite/23_containers/unordered_multiset/debug/
704 invalid_local_iterator_compare_neg.cc: Likewise.
705 * testsuite/23_containers/unordered_multiset/debug/
706 invalid_local_iterator_range_neg.cc: Likewise.
707 * testsuite/23_containers/unordered_multiset/debug/
708 iterator_self_move_assign_neg.cc: Likewise.
709 * testsuite/23_containers/unordered_multiset/debug/
710 max_load_factor_neg.cc: Likewise.
711 * testsuite/23_containers/unordered_multiset/debug/
712 self_move_assign_neg.cc: Likewise.
713 * testsuite/23_containers/unordered_multiset/debug/
714 use_erased_local_iterator_neg.cc: Likewise.
715 * testsuite/23_containers/unordered_multiset/debug/
716 use_invalid_iterator_neg.cc: Likewise.
717 * testsuite/23_containers/unordered_multiset/debug/
718 use_invalid_local_iterator_neg.cc: Likewise.
719 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
720 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
721 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
722 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
724 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
725 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
726 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
728 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
730 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
732 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
733 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
734 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
735 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
736 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
737 * testsuite/23_containers/unordered_set/debug/
738 invalid_local_iterator_compare_neg.cc: Likewise.
739 * testsuite/23_containers/unordered_set/debug/
740 invalid_local_iterator_range_neg.cc: Likewise.
741 * testsuite/23_containers/unordered_set/debug/
742 iterator_self_move_assign_neg.cc: Likewise.
743 * testsuite/23_containers/unordered_set/debug/
744 max_load_factor_neg.cc: Likewise.
745 * testsuite/23_containers/unordered_set/debug/
746 self_move_assign_neg.cc: Likewise.
747 * testsuite/23_containers/unordered_set/debug/
748 use_erased_local_iterator_neg.cc: Likewise.
749 * testsuite/23_containers/unordered_set/debug/
750 use_invalid_iterator_neg.cc: Likewise.
751 * testsuite/23_containers/unordered_set/debug/
752 use_invalid_local_iterator_neg.cc: Likewise.
753 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
754 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
755 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
756 * testsuite/23_containers/vector/debug/
757 iterator_self_move_assign_neg.cc: Likewise.
758 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
760 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
761 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
762 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
763 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
764 * testsuite/29_atomics/atomic/60658.cc: Likewise.
765 * testsuite/29_atomics/atomic/60695.cc: Likewise.
766 * testsuite/29_atomics/atomic/62259.cc: Likewise.
767 * testsuite/29_atomics/atomic/64658.cc: Likewise.
768 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
769 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
770 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
773 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
775 * libsupc++/new_opant.cc: Include exception_defines.h.
776 * libsupc++/new_opvant.cc: Likewise.
778 2016-09-09 Jason Merrill <jason@redhat.com>
780 Implement P0035R4, C++17 new of over-aligned types.
781 * libsupc++/new: Declare aligned new/delete operators.
782 * config/abi/pre/gnu.ver: Export them.
783 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
785 * libsupc++/new_opa.cc: New.
786 * libsupc++/new_opant.cc: New.
787 * libsupc++/new_opva.cc: New.
788 * libsupc++/new_opva.cc: New.
789 * libsupc++/del_opa.cc: New.
790 * libsupc++/del_opant.cc: New.
791 * libsupc++/del_opsa.cc: New.
792 * libsupc++/del_opva.cc: New.
793 * libsupc++/del_opvant.cc: New.
794 * libsupc++/del_opvsa.cc: New.
795 * libsupc++/Makefile.am: Build them.
797 2016-09-05 Tim Shen <timshen@google.com>
799 * include/std/variant: include bits/move.h for std::addressof.
801 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
803 * include/std/variant (_Variant_storage::_M_storage()): Use
804 std::addressof instead of operator& to take address.
806 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
808 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
809 setrlimit on both native and cross targets.
810 * configure: Regenerate.
812 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
814 * include/bits/shared_ptr.h (_Assignable): New alias template.
815 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
816 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
817 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
819 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
820 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
821 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
822 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
824 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
825 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
827 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
829 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
830 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
831 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
832 expected errors. Remove unnecessary code.
833 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
835 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
837 * testsuite/23_containers/set/move_comparison.cc: New test.
839 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
842 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
845 * include/std/type_traits (is_constructible): Forward-declare...
846 (__is_base_to_derived_ref): ...and use here.
847 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
848 * testsuite/20_util/is_constructible/77395.cc: New.
849 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
850 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
852 * testsuite/20_util/tuple/77395.cc: New.
854 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
856 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
857 directive above dg-require-namedlocale directive.
858 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
859 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
860 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
861 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
862 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
864 2016-08-27 Tim Shen <timshen@google.com>
867 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
868 _M_expression_term): Modify to support dash literal.
869 * include/bits/regex_scanner.h: Add dash as a token type to make
870 a different from the mandated dash literal by escaping.
871 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
872 token in bracket expression parsing.
873 * testsuite/28_regex/regression.cc: Add new testcases.
875 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
878 * doc/xml/manual/intro.xml: Document DR 2127 change.
879 * doc/html/*: Regenerate.
880 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
881 (operator++(), operator++(int)): Use injected class name.
882 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
884 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
885 using -std in dg-options.
887 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
888 Pedro Alves <palves@redhat.com>
890 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
891 and restore dg-interpreter-batch-mode.
892 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
893 gdb-dg-runtest instead of dg-runtest.
894 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
896 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
898 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
899 precise patterns for basic_string constructors.
900 (GLIBCXX_3.4.23): Export new constructors.
901 * doc/xml/manual/intro.xml: Document LWG 2583 status.
902 * doc/html/*: Regenerate.
903 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
904 (basic_string(const basic_string&, size_type, const Alloc&)): Add
905 new constructor for LWG 2583.
906 (basic_string(const basic_string&, size_type, size_type)): Remove
908 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
909 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
910 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
911 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
913 2016-08-24 Aditya Kumar <hiraditya@msn.com>
915 * include/bits/algorithmfwd.h: Remove trailing whitespace.
916 * include/bits/shared_ptr_base.h: Likewise.
918 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
920 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
921 * include/profile/array (array): Likewise.
922 (array::swap): Fix exception specification for zero-sized arrays.
925 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
926 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
927 * testsuite/23_containers/map/77334.cc: New test.
929 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
930 * doc/html/*: Regenerate.
932 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
933 * testsuite/experimental/feat-lib-fund.cc: Likewise.
936 * include/bits/stl_iterator.h
937 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
938 define for C++98 mode.
939 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
940 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
942 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
943 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
944 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
945 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
947 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
948 difference operator for C++98.
949 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
951 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
952 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
953 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
954 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
955 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
957 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
958 _GLIBCXX14_CONSTEXPR.
959 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
960 * include/std/array (array::begin, array::end, array::rbegin)
961 (array::rend, array::cbegin, array:cend, array::crbegin)
962 (array::crend, array::operator[], array::at, array::front)
963 (array::back, array::data): Likewise.
964 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
965 with separate tests for C++11, C++14, and C++17.
966 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
967 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
968 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
970 2016-08-22 Tim Shen <timshen@google.com>
972 Split _M_dfs() into smaller functions.
973 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
974 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
975 (_M_handle_line_end_assertion, _M_handle_word_boundary)
976 (_M_handle_subexpr_lookahead, _M_handle_match)
977 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
978 Add separate function declarations.
979 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
981 2016-08-22 Gleb Natapov <gleb@scylladb.com>
984 * config/abi/pre/gnu-versioned-namespace.ver: Export
985 __cxa_init_primary_exception and std::exception_ptr(void*).
986 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
987 export __cxa_init_primary_exception and std::exception_ptr(void*).
988 * include/Makefile.am: Add new headers.
989 * include/Makefile.in: Regenerate.
990 * libsupc++/Makefile.am: Add new headers.
991 * libsupc++/Makefile.in: Regenerate.
992 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
993 * libsupc++/cxxabi_init_exception.h: New header.
994 (__cxa_init_primary_exception): Declare.
995 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
996 (__cxa_throw): Use __cxa_init_primary_exception.
997 * libsupc++/exception (std::exception): Move to ...
998 * libsupc++/exception.h: New header.
999 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1001 (__exception_ptr::__dest_thunk): New function template.
1002 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1003 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1004 create exception_ptr.
1005 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1006 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1008 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1010 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1011 link to docs for all releases.
1012 * doc/html/*: Regenerate.
1015 * doc/xml/manual/intro.xml: Document DR 2062 change.
1016 * include/std/functional (function::swap): Add noexcept.
1017 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1018 * testsuite/20_util/function/77322.cc: New test.
1020 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1022 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1023 *-*-solaris* instead of -pthreads.
1024 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1025 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1026 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1027 * testsuite/23_containers/list/pthread1.cc: Likewise.
1028 * testsuite/23_containers/list/pthread5.cc: Likewise.
1029 * testsuite/23_containers/map/pthread6.cc: Likewise.
1030 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1031 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1032 * testsuite/30_threads/shared_mutex/*: Likewise.
1033 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1034 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1035 default_weaktoshared.cc: Likewise.
1036 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1037 mutex_weaktoshared.cc: Likewise.
1038 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1039 dg-require-effective-target instead of using -std option.
1040 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1042 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1043 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1045 * testsuite/30_threads/async/*: Likewise.
1046 * testsuite/30_threads/call_once/*: Likewise.
1047 * testsuite/30_threads/condition_variable/*: Likewise.
1048 * testsuite/30_threads/condition_variable_any/*: Likewise.
1049 * testsuite/30_threads/future/*: Likewise.
1050 * testsuite/30_threads/lock/*: Likewise.
1051 * testsuite/30_threads/mutex/*: Likewise.
1052 * testsuite/30_threads/packaged_task/*: Likewise.
1053 * testsuite/30_threads/promise/*: Likewise.
1054 * testsuite/30_threads/recursive_mutex/*: Likewise.
1055 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1056 * testsuite/30_threads/shared_future/*: Likewise.
1057 * testsuite/30_threads/shared_lock/*: Likewise.
1058 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1059 * testsuite/30_threads/this_thread/*: Likewise.
1060 * testsuite/30_threads/thread/*: Likewise.
1061 * testsuite/30_threads/timed_mutex/*: Likewise.
1062 * testsuite/30_threads/try_lock/*: Likewise.
1063 * testsuite/30_threads/unique_lock/*: Likewise.
1065 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1066 * doc/html/*: Regenerate.
1067 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1069 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1070 * testsuite/20_util/not_fn/1.cc: New.
1071 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1072 Remove test for volatile-qualified wrapper.
1074 * include/std/atomic (atomic::is_always_lock_free): Define.
1075 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1076 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1077 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1078 * doc/xml/manual/status_cxx2017.xml: Update status.
1079 * doc/html/*: Regenerate.
1081 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1082 * include/std/tuple (apply): Likewise.
1083 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1085 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1086 * testsuite/experimental/type_traits/value.cc: Likewise.
1088 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1090 * doc/html/*: Regenerate.
1092 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1094 Implement the latest proposed resolution of LWG 2756.
1095 * include/std/optional (Optional_base(const _Tp&))
1096 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1097 (optional(nullopt_t)): New.
1098 (optional(_Up&&)): Invoke base directly with in_place
1099 rather than creating a temporary, add default template
1100 argument, change constraints.
1101 (optional(const optional<_Up>&)): Invoke base directly
1102 with in_place, remove unnecessary constraints.
1103 (optional(optional<_Up>&& __t)): Likewise.
1104 (optional(in_place_t, _Args&&...)): New.
1105 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1106 (operator=(_Up&&)): Add default template argument, change constraints.
1107 (operator=(const optional<_Up>&)): Put is_same first in the
1109 (operator=(optional<_Up>&&)): Likewise.
1110 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1111 verify assignment from something that can't be perfect-forwarded.
1112 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1113 that a nested optional is disengaged when constructed
1114 from a disengaged element type, and to verify that assignments
1115 from an engaged element type engage the optional.
1117 2016-08-18 Tim Shen <timshen@google.com>
1121 * include/Makefile.am: Add new file std/variant.
1122 * include/Makefile.in: Generated from Makefile.am.
1123 * include/bits/enable_special_members.h: Add a tag type to allow
1124 the construction in non-default constructor.
1125 * include/bits/uses_allocator.h: Add convenience traits to
1126 detect constructibility.
1127 * include/std/variant: Implement <variant>.
1128 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1129 * testsuite/20_util/variant/run.cc: Runtime tests.
1131 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1133 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1134 (test.new_tests): Rewrite section.
1135 (tests.dg.directives): New section.
1136 * doc/html/*: Regenerate.
1138 * doc/xml/manual/test.xml: Improve documentation of test targets.
1139 Document new-abi-baseline, check-debug, and check-parallel targets.
1141 * doc/xml/manual/build_hacking.xml: New section on shared library
1144 * doc/xml/manual/build_hacking.xml: Improve markup.
1145 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1147 * doc/xml/faq.xml: Change link text to "Testing".
1149 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1150 dg-options directive.
1152 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1154 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1155 directive and use effective target instead of dg-options.
1157 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1158 instead of -std in dg-options.
1159 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1160 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1161 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1162 * testsuite/20_util/hash/quality.cc: Likewise.
1163 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1164 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1165 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1166 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1167 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1168 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1170 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1171 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1172 * testsuite/27_io/rvalue_streams.cc: Likewise.
1174 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1176 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1177 Remove duplicate dg-options directive.
1179 * testsuite/ext/profile/all.cc: Use effective target instead of
1180 -std=gnu++11. Use dg-additional-options instead of repeating options.
1182 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1183 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1184 instead of dg-excess-errors.
1186 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1188 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1189 * testsuite/experimental/ratio/value.cc: Likewise.
1190 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1192 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1193 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1194 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1195 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1196 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1197 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1198 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1199 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1200 * testsuite/tr1/5_numerical_facilities/special_functions/
1201 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1202 C++17 compatibility.
1204 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1205 expected signatures for C++14 compatibility.
1208 * include/bits/basic_string.h (operator=(__sv_type)
1209 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1210 (replace(size_type, size_type, __sv_type))
1211 (replace(const_iterator, const_iterator, __sv_type))
1212 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1213 (compare(size_type, size_type, __sv_type)): Reformat.
1214 (_If_sv): Define helper for SFINAE constaints.
1215 (append(const _Tp&, size_type, size_type))
1216 (assign(const _Tp&, size_type, size_type))
1217 (insert(size_type, const _Tp&, size_type, size_type))
1218 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1220 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1222 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1224 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1226 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1228 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1230 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1232 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1234 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1236 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1238 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1240 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1243 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1246 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1247 pointers to start and end of storage.
1248 * testsuite/23_containers/vector/bool/72847.cc: New test.
1249 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1250 _M_finish after deallocating.
1251 (vector<bool>::_M_fill_insert): Likewise.
1252 (vector<bool>::_M_insert_range): Likewise.
1253 (vector<bool>::_M_insert_aux): Likewise.
1255 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1257 Implement LWG 2744 and LWG 2754.
1258 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1259 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1260 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1262 (emplace(_Args&&...)): Likewise.
1263 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1264 * include/std/utility: (__is_in_place_type_impl): New.
1265 (__is_in_place_type): Likewise.
1266 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1268 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1269 in_place constructor.
1270 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1271 * testsuite/20_util/any/requirements.cc: Add a test for
1272 in_place-constructing a non-default-constructible type.
1274 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1276 Add a feature macro for C++17 make_from_tuple.
1277 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1278 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1279 Qualify the call to get<>().
1280 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1282 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1284 * src/filesystem/ops.cc: Always include ostream and
1285 ext/stdio_filebuf.h.
1286 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1287 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1288 sendfile fails with ENOSYS or EINVAL.
1290 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1293 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1296 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1298 Implement C++17 make_from_tuple.
1299 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1300 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1302 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1305 * include/bits/basic_string.h
1306 (append(__sv_type, size_type, size_type)): Turn into a template,
1307 change parameter type, constrain, add a conversion to __sv_type
1308 from the dependent parameter type.
1309 (assign(__sv_type, size_type, size_type)): Likewise.
1310 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1311 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1313 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1315 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1317 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1319 * doc/xml/manual/status_cxx2017.xml: Update status table.
1320 * doc/html/manual/status.html: Regenerate.
1322 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1325 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1326 Qualify new operator.
1327 * testsuite/20_util/function/cons/72820.cc: New test.
1329 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1330 * doc/html/manual/status.html: Regenerate.
1331 * include/Makefile.am: Add new header.
1332 * include/Makefile.in: Regenerate.
1333 * include/bits/invoke.h: New header.
1334 (__invoke): Make constexpr. Add && to types in exception specification.
1335 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1336 names. Include <bits/invoke.h> and use std::__invoke.
1337 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1339 (invoke): Add && to types in exception specification.
1340 * include/std/tuple (apply, __apply_impl): Define for C++17.
1341 * testsuite/20_util/tuple/apply/1.cc: New test.
1342 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1345 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1347 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1348 * doc/html/manual/status.html: Regenerate.
1350 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1351 * testsuite/20_util/duration_cast/rounding.cc: New test.
1352 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1353 * doc/xml/manual/status_cxx2017.xml: Update status table.
1354 * doc/html/manual/status.html: Regenerate.
1355 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1357 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1358 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1359 * testsuite/20_util/duration/literals/range.cc: Likewise.
1361 * include/std/functional (__callable_functor): Remove.
1362 (_Function_handler::_M_invoke): Use __invoke instead of
1363 __callable_functor or mem_fn.
1364 (function::_Callable): Use lvalue in result_of expression.
1365 (function): Remove TODO comments about allocators.
1366 * testsuite/20_util/function/cons/refqual.cc: New test.
1368 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1370 * doc/xml/manual/status_cxx2017.xml: Update status table.
1371 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1372 (__invoke_impl): Remove exception specifications.
1373 (__invoke, invoke): Add exception specifications using
1374 __is_nothrow_callable.
1375 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1376 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1377 (__is_callable, __is_nothrow_callable): New traits.
1378 (is_callable, is_callable_v): New C++17 traits.
1379 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1380 * testsuite/20_util/is_callable/requirements/
1381 explicit_instantiation.cc: New test.
1382 * testsuite/20_util/is_callable/requirements/
1383 explicit_instantiation_ext.cc: New test.
1384 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1385 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1387 * testsuite/20_util/is_callable/value.cc: New test.
1388 * testsuite/20_util/is_callable/value_ext.cc: New test.
1389 * testsuite/20_util/is_nothrow_callable/requirements/
1390 explicit_instantiation.cc: New test.
1391 * testsuite/20_util/is_nothrow_callable/requirements/
1392 explicit_instantiation_ext.cc: New test.
1393 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1395 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1397 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1398 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1400 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1401 * doc/html/manual/status.html: Regenerate.
1403 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1404 effective target not dg-options. Move check for feature-test macro to:
1405 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1408 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1410 (__invoke_impl): Remove unused template parameters.
1411 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1413 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1414 and test __invoke extension for C++11.
1416 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1418 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1419 Define feature-test macro.
1420 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1423 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1424 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1425 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1426 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1427 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1429 * include/std/utility (as_const): Define.
1430 * testsuite/20_util/as_const/1.cc: New test.
1431 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1433 * include/bits/shared_ptr.h (owner_less): Add default template
1435 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1437 (owner_less<void>): Define specialization.
1438 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1440 * testsuite/20_util/owner_less/void.cc: New test.
1441 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1443 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1444 Define feature-test macro.
1445 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1446 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1447 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1448 (__cpp_lib_type_trait_variable_templates): Define.
1450 * include/bits/stl_function.h: Remove commented-out macro.
1451 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1452 Define feature-test macro.
1453 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1455 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1456 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1458 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1459 do #error for C++17.
1460 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1461 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1462 * include/tr1/bessel_function.tcc: Likewise.
1463 * include/tr1/beta_function.tcc: Likewise.
1464 * include/tr1/cmath: Likewise.
1465 * include/tr1/ell_integral.tcc: Likewise.
1466 * include/tr1/exp_integral.tcc: Likewise.
1467 * include/tr1/gamma.tcc: Likewise.
1468 * include/tr1/hypergeometric.tcc: Likewise.
1469 * include/tr1/legendre_function.tcc: Likewise.
1470 * include/tr1/modified_bessel_func.tcc: Likewise.
1471 * include/tr1/poly_hermite.tcc: Likewise.
1472 * include/tr1/poly_laguerre.tcc: Likewise.
1473 * include/tr1/riemann_zeta.tcc: Likewise.
1474 * include/tr1/special_function_util.h: Likewise.
1475 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1477 * include/std/type_traits (has_trivial_default_constructor): Remove.
1478 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1479 * testsuite/20_util/has_trivial_copy_assign/requirements/
1480 explicit_instantiation.cc: Remove test.
1481 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1483 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1485 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1486 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1487 explicit_instantiation.cc: Likewise.
1488 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1489 typedefs.cc: Likewise.
1490 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1491 * testsuite/20_util/has_trivial_default_constructor/requirements/
1492 explicit_instantiation.cc: Likewise.
1493 * testsuite/20_util/has_trivial_default_constructor/requirements/
1494 typedefs.cc: Likewise.
1495 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1497 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1498 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1499 and has_trivial_copy_assign are not defined.
1500 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1502 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1503 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1504 dg-error line number.
1505 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1508 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1510 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1511 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1512 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1514 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1516 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1518 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1520 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1522 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1525 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1528 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1529 dg-error to relevant line.
1530 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1532 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1534 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1536 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1537 options are present that aren't valid for C.
1538 * testsuite/abi/header_cxxabi.c: Likewise.
1540 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1541 check_value.cc: Do not add special functions to namespace std in TR1
1544 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1545 run for C++11 and later.
1546 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1548 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1549 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1550 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1551 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1552 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1554 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1556 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1557 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1559 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1561 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1563 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1564 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1565 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1566 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1567 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1568 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1569 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1570 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1572 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1573 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1574 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1575 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1577 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1578 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1579 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1580 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1582 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1583 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1584 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1585 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1587 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1588 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1589 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1590 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1591 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1593 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1594 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1595 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1596 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1598 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1599 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1600 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1601 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1602 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1603 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1604 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1605 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1606 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1607 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1608 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1609 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1610 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1611 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1612 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1613 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1614 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1615 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1616 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1617 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1618 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1619 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1620 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1621 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1622 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1623 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1624 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1625 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1626 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1627 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1628 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1629 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1630 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1631 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1632 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1633 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1635 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1636 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1637 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1638 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1639 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1640 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1641 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1642 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1644 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1645 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1646 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1647 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1648 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1649 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1651 * testsuite/tr1/5_numerical_facilities/special_functions/
1652 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1654 * testsuite/tr1/5_numerical_facilities/special_functions/
1655 09_cyl_bessel_j/check_value.cc: Likewise.
1656 * testsuite/tr1/5_numerical_facilities/special_functions/
1657 10_cyl_bessel_k/check_value.cc: Likewise.
1658 * testsuite/tr1/5_numerical_facilities/special_functions/
1659 11_cyl_neumann/check_value.cc: Likewise.
1660 * testsuite/tr1/5_numerical_facilities/special_functions/
1661 21_sph_bessel/check_value.cc: Likewise.
1662 * testsuite/tr1/5_numerical_facilities/special_functions/
1663 23_sph_neumann/check_value.cc: Likewise.
1665 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1667 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1668 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1669 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1670 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1671 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1672 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1674 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1676 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1679 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1680 additional flags for compiling libtestc++.a objects.
1682 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
1684 * include/bits/basic_string.h (data() const): Update comment.
1685 (data()): Add non-const overload for C++17.
1686 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1687 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1689 * include/bits/basic_string.tcc: Disable explicit instantiation
1690 declarations for C++17.
1692 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1693 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1694 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1696 * testsuite/26_numerics/headers/cmath/
1697 c99_classification_macros_c++11.cc: Likewise.
1698 * testsuite/26_numerics/headers/cmath/
1699 c99_classification_macros_c++98.cc: Likewise.
1700 * testsuite/26_numerics/headers/cmath/
1701 c99_classification_macros_c.cc: Likewise.
1703 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1704 for different construct/destroy counts in C++98 mode.
1706 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1708 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1710 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1713 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1714 C++98-compatible initialization for array.
1716 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1717 unused header and variable from compile-only test.
1718 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1719 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1720 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1721 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1724 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1725 Remove duplicate dg-options directive.
1727 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1728 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1730 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1731 linker options from compile-only tests.
1732 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1735 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1736 supported for C++11 and later.
1737 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1738 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1740 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
1742 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1744 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1746 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1749 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1750 Ensure test is compiled with optimization.
1752 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1753 Adjust dg-prune-output pattern for error in C++98 mode.
1755 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1756 run for C++11 or later.
1758 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1759 test to not rely on GNU extension (escaped normal characters in POSIX
1760 BRE). Enable tests for other strings which are now supported.
1762 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1763 c++11 instead of setting -std=gnu++14.
1766 * include/std/array (get): Use positive message for static assertions.
1767 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1768 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1769 specialization for invalid indices, with static assertion.
1770 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1772 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1773 dg-error to relevant line.
1774 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1776 * testsuite/23_containers/forward_list/requirements/dr438/
1777 assign_neg.cc: Likewise.
1778 * testsuite/23_containers/forward_list/requirements/dr438/
1779 constructor_1_neg.cc: Likewise.
1780 * testsuite/23_containers/forward_list/requirements/dr438/
1781 constructor_2_neg.cc: Likewise.
1782 * testsuite/23_containers/forward_list/requirements/dr438/
1783 insert_neg.cc: Likewise.
1784 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1786 * testsuite/26_numerics/random/linear_congruential_engine/
1787 requirements/non_uint_neg.cc: Likewise.
1788 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1789 Likewise. Also test for std::atomic_address.
1791 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
1793 Add missing variable traits, fix testsuite failures.
1794 * include/bits/uses_allocator.h (uses_allocator_v): New.
1795 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1797 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1798 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1799 * testsuite/20_util/duration/literals/range.cc: Likewise.
1800 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1801 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1802 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1803 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1804 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1806 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1807 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1810 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1812 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1813 not test 128-bit types.
1814 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1815 * testsuite/20_util/is_integral/value.cc: Likewise.
1816 * testsuite/20_util/is_signed/value.cc: Likewise.
1817 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1818 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1819 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1820 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1822 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1825 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1827 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1829 Implement C++17 variable templates for type traits.
1830 * include/std/chrono (treat_as_floating_point_v): New.
1831 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1832 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1833 (ratio_greater_equal_v): Likewise.
1834 * include/std/system_error (is_error_code_enum_v)
1835 (is_error_condition_enum_v): Likewise.
1836 * include/std/tuple (tuple_size_v): Likewise.
1837 * type_traits (conjunction_v, disjunction_v, negation_v)
1838 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1839 (is_array_v, is_pointer_v, is_lvalue_reference_v)
1840 (is_rvalue_reference_v, is_member_object_pointer_v)
1841 (is_member_function_pointer_v, is_enum_v, is_union_v)
1842 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1843 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1844 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1845 (is_trivially_copyable_v, is_standard_layout_v)
1846 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1847 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1848 (is_constructible_v, is_default_constructible_v)
1849 (is_copy_constructible_v, is_move_constructible_v)
1850 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1851 (is_destructible_v, is_trivially_constructible_v)
1852 (is_trivially_default_constructible_v)
1853 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1854 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1855 (is_trivially_move_assignable_v, is_trivially_destructible_v)
1856 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1857 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1858 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1859 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1860 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1861 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1862 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1863 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1865 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1866 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1867 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1869 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
1871 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1872 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1873 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1875 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
1877 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1878 * doc/html/manual/abi.html: Regenerate.
1880 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1881 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1883 * configure: Regenerate.
1884 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1886 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1887 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1888 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1889 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1891 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1892 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1893 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1895 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
1897 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1898 Adjust dg-prune-output pattern for error in C++98 mode.
1899 * testsuite/23_containers/deque/requirements/dr438/
1900 constructor_1_neg.cc: Likewise.
1901 * testsuite/23_containers/deque/requirements/dr438/
1902 constructor_2_neg.cc: Likewise.
1903 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1905 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1907 * testsuite/23_containers/list/requirements/dr438/
1908 constructor_1_neg.cc: Likewise.
1909 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1911 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1913 * testsuite/23_containers/vector/requirements/dr438/
1914 constructor_1_neg.cc: Likewise.
1915 * testsuite/23_containers/vector/requirements/dr438/
1916 constructor_2_neg.cc: Likewise.
1917 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1920 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1921 for different construct/destroy counts in C++98 mode.
1923 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1924 dg-options to dg-additional-options so that default options are used.
1925 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1927 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1928 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1930 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1931 Use dg-additional-options instead of repeating the common options.
1933 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1934 dg-do compile directive.
1935 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1937 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1939 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
1941 Implement std::string_view and P0254r2,
1942 Integrating std::string_view and std::string.
1943 * include/Makefile.am: Add string_view and string_view.tcc
1944 to the exported headers.
1945 * include/Makefile.in: Likewise.
1946 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
1948 (basic_string(__sv_type, const _Alloc&)): Likewise.
1949 (operator=(__sv_type)): Likewise.
1950 (operator __sv_type()): Likewise.
1951 (operator+=(__sv_type)): Likewise.
1952 (append(__sv_type __sv)): Likewise.
1953 (append(__sv_type, size_type, size_type)): Likewise.
1954 (assign(__sv_type)): Likewise.
1955 (assign(__sv_type, size_type, size_type)): Likewise.
1956 (insert(size_type, __sv_type)): Likewise.
1957 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1958 (replace(size_type, size_type, __sv_type)): Likewise.
1959 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1961 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
1962 (find(__sv_type, size_type)): Likewise.
1963 (rfind(__sv_type, size_type)): Likewise.
1964 (find_first_of(__sv_type, size_type)): Likewise.
1965 (find_last_of(__sv_type, size_type)): Likewise.
1966 (find_first_not_of(__sv_type, size_type)): Likewise.
1967 (find_last_not_of(__sv_type, size_type)): Likewise.
1968 (compare(__sv_type)): Likewise.
1969 (compare(size_type, size_type, __sv_type)): Likewise.
1970 (compare(size_type, size_type, __sv_type, size_type, size_type)):
1972 * include/bits/string_view.tcc: New.
1973 * include/std/string_view: Likewise.
1974 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1975 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1976 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1978 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1980 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1982 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1984 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1986 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1988 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1990 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1992 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1994 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1996 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1998 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2000 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2001 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2002 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2003 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2004 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2005 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2006 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2007 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2008 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2009 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2011 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2013 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2015 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2017 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2019 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2021 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2023 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2025 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2026 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2027 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2028 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2029 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2031 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2033 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2035 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2037 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2039 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2041 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2043 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2045 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2047 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2049 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2051 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2053 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2055 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2057 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2059 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2061 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2063 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2065 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2067 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2069 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2071 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2073 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2075 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2077 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2079 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2081 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2083 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2085 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2087 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2089 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2091 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2093 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2095 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2096 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2098 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2100 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2102 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2104 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2106 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2108 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2110 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2112 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2114 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2115 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2117 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2119 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2121 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2123 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2124 _S_concat enumerator.
2125 * testsuite/ext/rope/6.cc: New test.
2127 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2129 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2130 std::mt19937, std::thread and std::atomic to simplify test.
2131 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2133 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2136 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2137 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2138 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2139 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2140 * testsuite/23_containers/set/allocator/71964.cc: New test.
2142 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2143 delete[] instead of delete.
2145 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2147 * include/experimental/propagate_const (propagate_const::__t): Rename
2148 to _M_t and remove comment. Qualify std::move and std::forward.
2149 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2151 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2152 Define sized deallocation function.
2153 * testsuite/util/testsuite_new_operators.h:
2154 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2155 deallocation function.
2157 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2158 reads past the end of strings.
2159 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2161 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2162 invalid array accesses.
2163 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2164 Fix read past the end of string.
2165 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2167 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2168 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2170 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2171 leak) memory for arguments to placement delete.
2172 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2173 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2174 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2177 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2179 * doc/xml/manual/intro.xml: Document DR 2684 status.
2180 * doc/html/*: Regenerate.
2182 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2183 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2184 (atomic_uint64_t): Define (LWG 2441).
2185 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2187 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2189 * doc/xml/manual/intro.xml: Document DR 2441 status.
2191 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2192 to use perfect forwarding (LWG 2328).
2193 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2194 * doc/xml/manual/intro.xml: Document DR 2328 status.
2196 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2197 static objects for catching nullptr as pointer to member types.
2199 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2201 Clean up optional's comments.
2202 * include/std/optional: Remove incorrect section headers
2203 from comments when redundant, replace bare section
2204 headers with more descriptive comments.
2206 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2208 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2209 * include/bits/move.h: Likewise.
2210 * include/bits/postypes.h: Likewise.
2211 * include/debug/bitset: Likewise.
2212 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2213 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2215 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2216 * testsuite/util/thread/all.h: Likewise.
2218 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2222 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2223 nullptr match handlers of pointer type.
2225 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2227 Implement C++17 P0025 clamp.
2228 * include/bits/algorithmfwd.h: Declare clamp overloads.
2229 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2230 * testsuite/25_algorithms/clamp/1.cc: New test.
2231 * testsuite/25_algorithms/clamp/2.cc: New test.
2232 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2233 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2235 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2238 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2240 Fix the constraints for any's assignment operator template to properly
2241 reject assignment from a non-copyable lvalue.
2242 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2243 type for is_copy_constructible,
2244 * testsuite/20_util/any/requirements.cc: Add a test for
2245 non-copyable lvalues.
2247 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2249 * include/experimental/functional: Include <parallel/algorithm> in
2252 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2256 * include/bits/forward_list.h (forward_list): Update doxygen comments
2257 to reflect allocator propagation semantics. Remove ambiguous
2258 statements about data being lost.
2259 * include/bits/stl_deque.h (deque): Likewise.
2260 * include/bits/stl_list.h (list): Likewise.
2261 * include/bits/stl_map.h (map): Likewise.
2262 * include/bits/stl_multimap.h (multimap): Likewise.
2263 * include/bits/stl_multiset.h (multiset): Likewise.
2264 * include/bits/stl_set.h (set): Likewise.
2265 * include/bits/stl_vector.h (vector): Likewise.
2266 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2268 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2271 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2273 Implement P0032R3, Homogeneous interface for variant, any and optional,
2274 for the parts concerning any and optional.
2275 * include/std/any (_Storage()): Make constexpr and have it
2277 (any()): Make constexpr.
2278 (any(const any&)): Adjust.
2279 (any(any&&)): Likewise.
2280 (__any_constructible_t): New.
2281 (any(_ValueType&&)): Constrain.
2282 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2283 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2286 (operator=(const any&)): Likewise.
2287 (operator=(any&&)): Likewise.
2288 (operator=(_ValueType&&)): Constrain.
2289 (emplace(_Args&&...)): New.
2290 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2293 (swap(any&)): Adjust.
2297 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2298 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2299 (make_any(_Args&&...)): Likewise.
2300 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2301 * include/std/optional (in_place_t, in_place): Remove.
2302 (bad_optional_access): Add a comment referring to LEWG 72.
2303 (emplace(_Args&&...)): Constrain.
2305 (reset()): Likewise.
2306 (make_optional(_Args&&...)): Likewise.
2307 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2308 * include/std/utility (in_place_tag): New.
2309 (__in_place, __in_place_type, __in_place_index): Likewise.
2310 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2311 (in_place(__in_place*)): Likewise.
2312 (in_place(__in_place_type<_Tp>*)): Likewise.
2313 (in_place(__in_place_index<_Idx>*)): Likewise.
2314 * testsuite/20_util/any/assign/1.cc: Adjust.
2315 * testsuite/20_util/any/assign/emplace.cc: New.
2316 * testsuite/20_util/any/assign/self.cc: Adjust.
2317 * testsuite/20_util/any/cons/1.cc: Likewise.
2318 * testsuite/20_util/any/cons/in_place.cc: New.
2319 * testsuite/20_util/any/make_any.cc: Likewise.
2320 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2321 * testsuite/20_util/any/misc/swap.cc: Likewise.
2322 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2323 * testsuite/20_util/any/requirements.cc: New.
2324 * testsuite/20_util/in_place/requirements.cc: Likewise.
2325 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2326 * testsuite/20_util/optional/in_place.cc: Likewise.
2327 * testsuite/20_util/optional/make_optional.cc: Add tests for
2328 the new overloads of make_optional.
2330 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2332 Implement P0307R2, Making Optional Greater Equal Again.
2333 * include/experimental/optional (_Has_addressof): Fix the comment.
2334 * include/std/optional (_Has_addressof): Likewise.
2335 (operator=(_Up&&)): Constrain.
2336 (operator=(const optional<_Up>&)): Likewise.
2337 (operator=(optional<_Up>&&)): Likewise.
2338 (__optional_relop_t): New.
2339 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2340 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2341 Constrain and make transparent.
2342 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2343 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2344 Constrain and make transparent.
2345 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2346 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2347 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2348 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2349 (operator!=(const optional<_Tp>&, _Tp const&)):
2350 Constrain and make transparent.
2351 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2352 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2353 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2354 (operator>(const optional<_Tp>&, const _Tp&)):
2355 Constrain and make transparent.
2356 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2357 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2358 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2359 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2360 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2361 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2362 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2363 * testsuite/20_util/optional/relops/1.cc: Likewise.
2364 * testsuite/20_util/optional/relops/2.cc: Likewise.
2365 * testsuite/20_util/optional/relops/3.cc: Likewise.
2366 * testsuite/20_util/optional/relops/4.cc: Likewise.
2367 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2368 that optional's relops are transparent and don't synthesize
2369 operators. Also test that assignment sfinaes.
2371 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2374 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2375 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2376 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2377 on _GLIBCXX_ASSERTIONS.
2378 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2379 Include <unistd.h> for sleep.
2380 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2381 * include/parallel/merge.h: Likewise.
2382 * include/parallel/multiway_merge.h: Likewise.
2383 * include/parallel/partition.h: Likewise.
2384 * include/parallel/queue.h: Likewise.
2385 * include/parallel/sort.h: Likewise.
2386 * testsuite/25_algorithms/headers/algorithm/
2387 parallel_algorithm_assert.cc: New.
2389 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2390 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2391 Forward to different overload.
2393 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2396 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2398 Revert "Add non-const overload of std::string::data()".
2400 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2402 Implement P0307R2, Making Optional Greater Equal Again.
2403 * include/experimental/optional (_Has_addressof): Fix the comment.
2404 * include/std/optional (_Has_addressof): Likewise.
2405 (operator=(_Up&&)): Constrain.
2406 (operator=(const optional<_Up>&)): Likewise.
2407 (operator=(optional<_Up>&&)): Likewise.
2408 (__optional_relop_t): New.
2409 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2410 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2411 Constrain and make transparent.
2412 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2413 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2414 Constrain and make transparent.
2415 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2416 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2417 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2418 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2419 (operator!=(const optional<_Tp>&, _Tp const&)):
2420 Constrain and make transparent.
2421 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2422 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2423 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2424 (operator>(const optional<_Tp>&, const _Tp&)):
2425 Constrain and make transparent.
2426 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2427 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2428 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2429 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2430 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2431 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2432 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2433 * testsuite/20_util/optional/relops/1.cc: Likewise.
2434 * testsuite/20_util/optional/relops/2.cc: Likewise.
2435 * testsuite/20_util/optional/relops/3.cc: Likewise.
2436 * testsuite/20_util/optional/relops/4.cc: Likewise.
2437 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2438 that optional's relops are transparent and don't synthesize
2439 operators. Also test that assignment sfinaes.
2441 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2443 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2445 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2446 instead of _M_data().
2447 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2449 (append(const basic_string&)): Likewise.
2450 (append(const basic_string&, size_type, size_type)): Likewise.
2451 (assign(const basic_string&, size_type, size_type)): Likewise.
2452 (insert(size_type, const basic_string&)): Likewise.
2453 (insert(size_type, const basic_string&, size_type, size_type)):
2455 (replace(size_type, size_type, const basic_string&, size_type,
2456 size_type)): Likewise.
2457 (replace(__const_iterator, __const_iterator, const basic_string&)):
2459 (c_str(), data()): Use c_str() instead of _M_data().
2460 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2461 (compare(const basic_string&)): Use data() instead of _M_data().
2462 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2463 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2464 Pass raw pointers to _S_copy.
2465 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2467 (find(const _CharT*, size_type, size_type)): Use data instead of
2469 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2470 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2471 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2473 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2475 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2476 * doc/xml/manual/intro.xml: Document DR 2458 status.
2477 * doc/html*: Regenerate.
2479 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2480 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2481 Only include <array>.
2482 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2484 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2485 * doc/html*: Regenerate.
2487 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2488 Add testcase from LWG 2164.
2490 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2492 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2493 to _M_realloc_insert.
2494 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2495 (_M_realloc_insert): Declare new function.
2496 (_M_emplace_back_aux): Remove definition.
2497 * include/bits/vector.tcc (emplace_back(_Args...)):
2498 Use _M_realloc_insert.
2499 (insert(const_iterator, const value_type&)): Likewise.
2500 (_M_insert_rval, _M_emplace_aux): Likewise.
2501 (_M_emplace_back_aux): Remove declaration.
2502 (_M_realloc_insert): Define.
2503 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2504 Adjust expected results for emplacing an lvalue with reallocation.
2506 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2508 Implement std::optional.
2509 * include/Makefile.am: Add optional to exported headers.
2510 * include/Makefile.in: Likewise.
2511 * include/std/optional: New.
2512 * testsuite/20_util/optional/typedefs.cc: Likewise.
2513 * testsuite/20_util/optional/relops/2.cc: Likewise.
2514 * testsuite/20_util/optional/relops/3.cc: Likewise.
2515 * testsuite/20_util/optional/relops/4.cc: Likewise.
2516 * testsuite/20_util/optional/relops/5.cc: Likewise.
2517 * testsuite/20_util/optional/relops/1.cc: Likewise.
2518 * testsuite/20_util/optional/relops/6.cc: Likewise.
2519 * testsuite/20_util/optional/nullopt.cc: Likewise.
2520 * testsuite/20_util/optional/in_place.cc: Likewise.
2521 * testsuite/20_util/optional/make_optional.cc: Likewise.
2522 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2523 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2524 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2525 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2526 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2527 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2528 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2529 * testsuite/20_util/optional/cons/default.cc: Likewise.
2530 * testsuite/20_util/optional/cons/move.cc: Likewise.
2531 * testsuite/20_util/optional/cons/value.cc: Likewise.
2532 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2533 * testsuite/20_util/optional/requirements.cc: Likewise.
2534 * testsuite/20_util/optional/observers/2.cc: Likewise.
2535 * testsuite/20_util/optional/observers/3.cc: Likewise.
2536 * testsuite/20_util/optional/observers/4.cc: Likewise.
2537 * testsuite/20_util/optional/observers/5.cc: Likewise.
2538 * testsuite/20_util/optional/observers/1.cc: Likewise.
2539 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2540 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2541 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2542 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2543 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2544 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2545 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2546 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2547 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2548 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2549 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2550 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2551 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2552 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2553 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2554 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2555 * testsuite/20_util/optional/swap/1.cc: Likewise.
2557 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2559 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2561 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2563 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2564 * doc/html/*: Regenerate.
2566 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2569 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2570 * include/Makefile.in: Likewise.
2571 * include/std/any: New.
2572 * testsuite/20_util/any/assign/1.cc: Likewise.
2573 * testsuite/20_util/any/assign/2.cc: Likewise.
2574 * testsuite/20_util/any/assign/self.cc: Likewise.
2575 * testsuite/20_util/any/cons/1.cc: Likewise.
2576 * testsuite/20_util/any/cons/2.cc: Likewise.
2577 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2578 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2579 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2580 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2581 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2582 * testsuite/20_util/any/misc/swap.cc: Likewise.
2583 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2584 * testsuite/20_util/any/observers/type.cc: Likewise.
2585 * testsuite/20_util/any/typedefs.cc: Likewise.
2587 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2589 Add a new header for diagnosing the use of C++17 facilities
2591 * include/bits/c++17_warning.h: New.
2593 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2595 Implement LWG 2451, optional<T> should 'forward' T's
2596 implicit conversions.
2597 * include/experimental/optional (__is_optional_impl, __is_optional):
2599 (optional()): Make constexpr and default.
2600 (optional(_Up&&), optional(const optional<_Up>&),
2601 optional(optional<_Up>&& __t): New.
2602 (operator=(_Up&&)): Constrain.
2603 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2604 * testsuite/experimental/optional/cons/value.cc:
2605 Add tests for the functionality added by LWG 2451.
2606 * testsuite/experimental/optional/cons/value_neg.cc: New.
2608 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2611 any_cast doesn't work with rvalue reference targets and cannot
2612 move with a value target.
2613 * include/experimental/any (any(_ValueType&&)): Constrain and
2614 add an overload that doesn't forward.
2615 (any_cast(any&&)): Constrain and add an overload that moves.
2616 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2617 the functionality added by LWG 2509.
2619 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2621 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2623 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2626 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2628 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2629 Define inline. Forward to _M_emplace_aux.
2630 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2631 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2632 (_Temporary_value): New RAII type using allocator to construct/destroy.
2633 (_S_insert_aux_assign): Remove.
2634 (_M_insert_aux): Make non-variadic.
2635 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2636 Use _Temporary_value.
2637 (emplace(const_iterator, _Args&&...)): Remove definition.
2638 (_M_insert_rval, _M_emplace_aux): Define.
2639 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2640 (_M_fill_insert): Use _Temporary_value.
2641 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2642 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2643 Adjust expected results for emplacing an lvalue with reallocation.
2644 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2645 expected results to account for construction/destruction of temporary
2647 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2649 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2652 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2653 Call remove_all for children of a directory.
2654 * testsuite/experimental/filesystem/operations/create_directories.cc:
2657 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
2659 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2660 dg-error line numbers.
2661 * testsuite/23_containers/array/tuple_interface/
2662 tuple_element_debug_neg.cc: Likewise.
2663 * testsuite/25_algorithms/lexicographical_compare/debug/
2664 irreflexive_neg.cc: Remove.
2666 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2668 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2669 than specific target.
2671 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
2674 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2677 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
2679 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2682 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2684 * configure.host: Remove mep-* support.
2686 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2688 * configure: Regenerate.
2689 * configure.host: Remove support for knetbsd.
2690 * crossconfig.m4: Likewise.
2692 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
2695 * include/tr1/hashtable_policy.h
2696 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2697 dereferenceable to avoid check on lower_bound result.
2698 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2699 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2700 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2701 Always return a value greater than input value. Set _M_next_resize to
2702 max value when reaching highest prime number.
2703 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2705 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2706 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2708 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2709 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2712 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
2715 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2716 Remove irreflexive checks.
2717 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2718 binary_search): Likewise.
2719 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2720 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2721 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2722 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2723 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2724 Add constructor from array.
2726 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
2728 * include/debug/debug.h
2729 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2730 (__glibcxx_requires_subscript): Move...
2731 * include/debug/assertions.h: ...here and add __builtin_expect.
2732 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2733 * include/bits/stl_deque.h
2734 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2735 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2736 (std::deque<>::back()): Likewise.
2737 (std::deque<>::pop_front()): Likewise.
2738 (std::deque<>::pop_back()): Likewise.
2739 (std::deque<>::swap(deque&)): Add allocator check.
2740 * include/bits/stl_vector.h
2741 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2742 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2743 (std::vector<>::back()): Likewise.
2744 (std::vector<>::pop_back()): Likewise.
2745 (std::vector<>::swap(vector&)): Add allocator check.
2747 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
2749 Provide swappable traits (p0185r1)
2750 * include/std/type_traits (is_swappable, is_nothrow_swappable,
2751 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2752 is_nothrow_swappable_v, is_swappable_with_v,
2753 is_nothrow_swappable_with_v): New.
2754 * include/bits/stl_pair.h: Use it as per p0185r1.
2755 * include/bits/stl_queue.h: Likewise.
2756 * include/bits/stl_stack.h: Likewise.
2757 * include/bits/unique_ptr.h: Likewise.
2758 * include/std/tuple: Likewise.
2759 * include/std/array: Likewise. Fix zero-size member swap.
2760 * include/bits/hashtable.h: Use __and_.
2761 * testsuite/20_util/is_nothrow_swappable/requirements/
2762 explicit_instantiation.cc: Change test options to std=gnu++17.
2763 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2765 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2766 * testsuite/20_util/is_swappable/requirements/
2767 explicit_instantiation.cc: Likewise.
2768 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2769 * testsuite/20_util/is_swappable/value.cc: Likewise.
2770 * testsuite/20_util/is_nothrow_swappable/requirements/
2771 explicit_instantiation_ext.cc: New.
2772 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2774 * testsuite/20_util/is_nothrow_swappable/value.h: New.
2775 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2776 * testsuite/20_util/is_nothrow_swappable_with/requirements/
2777 explicit_instantiation.cc: New.
2778 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2780 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2781 * testsuite/20_util/is_swappable/requirements/
2782 explicit_instantiation_ext.cc: New.
2783 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2784 * testsuite/20_util/is_swappable/value.h: New.
2785 * testsuite/20_util/is_swappable/value_ext.cc: New.
2786 * testsuite/20_util/is_swappable_with/requirements/
2787 explicit_instantiation.cc: New.
2788 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2789 * testsuite/20_util/is_swappable_with/value.cc: New.
2790 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2791 dg-error line numbers.
2792 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2795 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
2797 * include/std/array: Remove trailing whitespace.
2798 * include/std/atomic: Likewise.
2799 * include/std/bitset: Likewise.
2800 * include/std/chrono: Likewise.
2801 * include/std/complex: Likewise.
2802 * include/std/condition_variable: Likewise.
2803 * include/std/fstream: Likewise.
2804 * include/std/functional: Likewise.
2805 * include/std/future: Likewise.
2806 * include/std/iomanip: Likewise.
2807 * include/std/iosfwd: Likewise.
2808 * include/std/istream: Likewise.
2809 * include/std/limits: Likewise.
2810 * include/std/ratio: Likewise.
2811 * include/std/scoped_allocator: Likewise.
2812 * include/std/sstream: Likewise.
2813 * include/std/stdexcept: Likewise.
2814 * include/std/string: Likewise.
2815 * include/std/system_error: Likewise.
2816 * include/std/thread: Likewise.
2817 * include/std/tuple: Likewise.
2818 * include/std/type_traits: Likewise.
2819 * include/std/utility: Likewise.
2820 * include/std/valarray: Likewise.
2821 * include/std/vector: Likewise.
2823 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2824 new overloaded functions.
2825 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2826 to avoid creating a redundant temporary.
2827 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2830 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
2832 * include/bits/stl_deque.h
2833 (std::deque<>::operator=): Call _M_assign_aux.
2834 (std::deque<>::assign(initializer_list<>)): Likewise.
2835 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2836 (std::deque<>::insert(const_iterator, initializer_list<>)):
2837 Call _M_range_insert_aux.
2838 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2840 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2841 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2842 * include/bits/deque.tcc
2843 (std::deque<>::operator=): Call _M_range_insert_aux.
2844 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2846 * include/bits/stl_vector.h
2847 (std::vector<>::operator=): Call _M_assign_aux.
2848 (std::vector<>::assign(initializer_list<>)): Likewise.
2849 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2850 (std::vector<>::insert(const_iterator, initializer_list<>)):
2851 Call _M_range_insert.
2852 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2854 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
2856 * include/std/tuple (_Head_base<>): Default specialization condition at
2859 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2861 Support allocators in tuples of zero size.
2862 * include/std/tuple (tuple<>::tuple(),
2863 tuple<>::tuple(allocator_arg_t, const _Alloc&),
2864 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2865 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2867 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
2870 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2871 Add or remove permissions according to perms argument.
2872 * testsuite/experimental/filesystem/operations/permissions.cc: New
2875 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2877 Protect allocator-overloads of tuple-from-tuple constructors
2878 from cases that would create dangling references.
2879 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2880 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2881 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2882 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2884 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
2886 * doc/xml/manual/backwards_compatibility.xml: Adjust
2887 lists.debian.org link to https.
2888 * doc/html/manual/backwards.html: Regenerate.
2890 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
2892 * doc/xml/manual/abi.xml: Adjust URL to use https.
2893 * doc/html/manual/*: Regenerate.
2895 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
2898 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2899 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2900 check for _NotSameTuple.
2901 * include/std/tuple (_TMCT): New.
2902 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2903 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2904 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2905 const tuple<_UElements...>&)): Likewise.
2906 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2907 tuple<_UElements...>&&)): Likewise.
2908 * testsuite/20_util/tuple/cons/66338.cc: New.
2910 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
2912 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2913 * configure: Regenerate.
2914 * config.h.in: Regenerate.
2916 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2917 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2918 Remove const qualification on function. Replace
2919 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2920 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2921 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2923 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
2925 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2926 * include/bits/hashtable_policy.h
2927 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2928 having load factor management.
2929 (_Mask_range_hashing): New.
2931 (_Power2_rehash_policy): New.
2932 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2933 partial specializations only depend on whether iterators are constant
2935 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2936 test new hash policy.
2937 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2939 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2941 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2943 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2945 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2947 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
2948 using the new hash policy.
2949 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
2951 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
2953 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
2955 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
2957 * include/debug/safe_iterator.h
2958 (_Safe_iterator<>::operator->()): Implement using underlying iterator
2960 * include/debug/safe_local_iterator.h
2961 (_Safe_local_iterator<>::operator->()): Likewise.
2963 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
2965 * testsuite/experimental/memory_resource/1.cc: Add required argument
2966 to dg-require-atomic-builtins.
2968 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
2971 * include/debug/bitset: Add #pragma GCC system_header.
2972 * include/debug/deque: Likewise.
2973 * include/debug/list: Likewise.
2974 * include/debug/map: Likewise.
2975 * include/debug/set: Likewise.
2976 * include/debug/string: Likewise.
2977 * include/debug/unordered_map: Likewise.
2978 * include/debug/unordered_set: Likewise.
2979 * include/debug/vector: Likewise.
2980 * include/debug/functions.h: Adjust whitespace.
2982 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
2985 * testsuite/experimental/memory_resource/1.cc: Require atomics.
2987 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
2990 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
2991 exception constructors with __sso_string parameters.
2993 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
2995 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
2996 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2997 Test begin and end functions.
2998 * testsuite/experimental/filesystem/iterators/
2999 recursive_directory_iterator.cc: Likewise.
3002 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3003 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3005 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3006 Overload operator* to move from rvalues.
3009 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3010 * testsuite/experimental/filesystem/operations/create_directory.cc:
3014 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3015 base path to exception.
3016 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3017 paths contained in exception.
3019 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3023 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3025 (directory_iterator::operator++(int)): Return proxy.
3026 (recursive_directory_iterator::operator++(int)): Likewise.
3027 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3028 Test post-increment.
3029 * testsuite/experimental/filesystem/iterators/
3030 recursive_directory_iterator.cc: Likewise.
3032 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3035 * testsuite/experimental/filesystem/iterators/
3036 recursive_directory_iterator.cc: Fix test02 to not call member
3037 functions on invalid iterator, and use VERIFY not assert.
3039 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3041 Avoid endless run-time recursion for copying single-element
3042 tuples where the element type is by-value constructible
3044 * include/std/tuple (_NotSameTuple): New.
3045 * include/std/tuple (tuple(_UElements&&...): Use it.
3046 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3048 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3051 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3052 Initialize scalar member variables in default constructor.
3053 * testsuite/experimental/filesystem/iterators/
3054 recursive_directory_iterator.cc: Test default construction.
3056 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3058 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3060 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3062 * testsuite/experimental/filesystem/path/native/string.cc: Add
3063 dg-require-filesystem-ts directive.
3065 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3068 * include/experimental/memory_resource
3069 (__resource_adaptor_imp::do_allocate): Do not default-construct
3071 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3072 allocator_traits to get pointer type.
3073 (__null_memory_resource::do_allocate): Remove unused parameters.
3074 (__null_memory_resource::do_deallocate): Likewise.
3075 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3076 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3077 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3079 * testsuite/experimental/memory_resource/1.cc: Here.
3080 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3081 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3083 2016-04-29 Chris Gregory <czipperz@gmail.com>
3085 * config/*: Remove trailing whitespace.
3087 * testsuite/tr1/*: Likewise.
3088 * testsuite/util/*: Likewise.
3090 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3093 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3095 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3097 * include/std/atomic (atomic<_Tp>): Likewise.
3098 * include/std/shared_mutex (shared_lock): Likewise.
3099 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3100 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3101 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3102 * testsuite/29_atomics/atomic/70766.cc: New test.
3103 * testsuite/30_threads/shared_lock/70766.cc: New test.
3105 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3106 __detail::_Insert): Improve comments.
3108 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3111 * include/std/limits: Update comments about DRs.
3112 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3113 numeric_limits<const volatile _Tp>): Define unconditionally.
3115 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3118 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3119 static counter to return a different path on every call.
3121 2016-04-22 Tim Shen <timshen@google.com>
3124 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3125 Fix the match_not_bow and match_not_eow behavior.
3126 * testsuite/28_regex/regression.cc: Add testcase.
3128 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3131 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3132 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3134 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3137 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3138 Override endianness bit in mode.
3139 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3140 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3141 that little_endian mode is ignored.
3142 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3145 * src/filesystem/ops.cc (close_fd): New function.
3146 (do_copy_file): Set permissions before copying file contents. Check
3147 result of closing file descriptors. Don't copy streambuf when file
3149 (copy(const path&, const path&, copy_options, error_code&)): Use
3150 lstat for source file when copy_symlinks is set.
3151 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3153 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3154 operator~ operator&=, operator|=, operator^=): Add noexcept to
3155 overloaded operators for copy_options, perms and directory_options.
3156 * src/filesystem/ops.cc (make_file_type, make_file_status,
3157 is_not_found_errno, file_time): Add noexcept.
3159 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3161 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3163 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3166 * include/bits/random.h: Reword static assertion messages to state
3167 positive conditions.
3168 * include/bits/random.tcc: Likewise.
3169 * include/bits/uniform_int_dist.h: Likewise.
3170 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3173 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3175 * config/cpu/sh/atomicity.h: Fix typo in comment.
3178 * include/std/thread (operator<, operator==): Move definitions to
3180 * testsuite/30_threads/thread/id/70294.cc: New test.
3182 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3183 -Wno-pedantic to dg-options.
3184 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3185 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3187 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3188 Remove extra semi-colon.
3189 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3190 Always supply second argument to static_assert.
3191 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3193 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3195 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3196 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3197 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3198 alignof when operand is an object not a type.
3199 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3200 * testsuite/decimal/make-decimal.cc: Likewise.
3201 * testsuite/experimental/type_traits/value.cc: Always supply second
3202 argument to static_assert.
3203 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3206 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3208 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3209 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3210 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3211 Likewise. Add licence and change to compile-only test.
3213 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3215 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3217 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3220 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3222 * include/bits/specfun.h: Trivial comment misspelling.
3224 2016-04-14 Jason Merrill <jason@redhat.com>
3226 Revert Jonathan's empty ABI change from yesterday.
3228 2016-04-13 Martin Sebor <msebor@redhat.com>
3231 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3232 upper bound is positive.
3234 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3236 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3237 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3238 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3239 of functions taking empty structs by value. Add a template parameter
3240 to overloads without hints. Rename overloads with hints to
3242 (_Hashtable::_M_erase(true_type, const_iterator),
3243 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3244 by reordering parameters.
3245 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3246 _M_emplace_hint instead of _M_emplace.
3247 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3248 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3249 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3250 __shared_ptr): Likewise.
3251 * include/bits/stl_algo.h (replace_if): Likewise.
3252 * include/bits/stl_pair.h (piecewise_construct_t,
3253 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3254 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3255 __uses_alloc0): Likewise.
3256 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3257 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3258 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3259 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3260 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3261 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3262 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3264 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3266 Document C++17/TR29124 C++ Special Math Functions.
3267 * include/bits/specfun.h: Add Doxygen markup.
3269 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3271 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3273 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3275 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3276 * src/Makefile.in: Regenerate.
3278 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3281 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3282 __atomic_fetch_add for bool.
3283 * configure: Regenerate.
3285 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3288 * src/c++11/thread.cc (execute_native_thread_routine,
3289 execute_native_thread_routine_compat): Give internal linkage.
3290 * testsuite/30_threads/thread/70503.cc: New test.
3292 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3295 * include/bits/stl_pair.h (_ConstructiblePair,
3296 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3297 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3298 for same-type cases.
3299 * testsuite/20_util/pair/70437.cc: New.
3301 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3304 * config/abi/pre/gnu.ver: Add new symbol.
3305 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3306 * testsuite/18_support/free_eh_pool.cc: New test.
3308 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3310 * include/Makefile.am (install-freestanding-headers): Add
3311 concept_check.h and move.h to the installed headers.
3312 * include/Makefile.in: Regenerated.
3313 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3314 freestanding implementations.
3315 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3316 that this macro has no effect for freestanding implementations.
3317 * doc/html/manual/using_macros.html: Likewise.
3319 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3322 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3324 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3326 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3327 * doc/html/*: Regenerate.
3330 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3331 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3332 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3333 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3334 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3335 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3336 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3338 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3339 namespace before including TR1 headers.
3340 * testsuite/tr1/headers/c++200x/math.cc: New test.
3342 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3345 * include/c_global/cstdarg: Undefine __need___va_list.
3346 * include/c_global/cstddef: Undefine all kinds of __need_*.
3348 2016-02-16 Tim Shen <timshen@google.com>
3351 * include/bits/regex_scanner.h: Add different special character
3352 sets for grep and egrep regex.
3353 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3354 * testsuite/28_regex/regression.cc: Add new testcase.
3356 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3358 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3359 added 'constexpr' in previous commit.
3360 * configure: Regenerate.
3363 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3364 checks for all targets except *-*-solaris2.* and ensure we find the
3365 libc math.h header not our own.
3366 * configure: Regenerate.
3368 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3370 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3371 New file. Copied over from s390-linux-gnu.
3373 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3376 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3377 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3378 * config.h.in: Regenerate.
3379 * configure: Regenerate.
3380 * testsuite/21_strings/c_strings/char/69626.cc: New.
3382 * doc/html/index.html: Regenerate.
3384 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3385 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3386 * doc/html/*: Regenerate.
3388 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3391 * include/c_compatibility/math.h: Move header guards.
3392 * include/c_compatibility/stdlib.h: Likewise.
3394 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3397 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3399 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3402 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3403 isinf and isnan functions into two independent checks. Check on hpux.
3404 * config.h.in: Regenerate.
3405 * configure: Regenerate.
3406 * include/c_global/cmath (isinf(double), isnan(double)): Use
3407 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3410 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3412 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3414 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3417 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3418 -ffp-contract=off, and -ffloat-store to disable excess precision.
3419 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3422 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3425 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3426 random_access_iterator_tag>): Check is_move_assignable when moving.
3427 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3429 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3430 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3431 * testsuite/25_algorithms/move/69478.cc: New.
3432 * testsuite/25_algorithms/move_backward/69478.cc: new.
3434 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3436 * include/c_compatibility/stdlib.h: Include wide character related
3437 definitions only when they are available in cstdlib.
3439 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3442 * include/Makefile.am: Add new header.
3443 * include/Makefile.in: Regenerate.
3444 * include/bits/random.h (uniform_int_distribution): Move to
3445 bits/uniform_int_dist.h.
3446 * include/bits/random.tcc (uniform_int_distribution::operator(),
3447 uniform_int_distribution::__generate_impl): Likewise.
3448 * include/bits/uniform_int_dist.h: New header.
3449 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3450 <bits/uniform_int_dist.h> instead of <random>.
3451 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3452 move_iterators/1.cc: Include correct header for uninitialized_copy.
3453 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3454 move_iterators/1.cc: Likewise.
3455 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3457 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3459 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3462 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3464 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3466 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3467 * include/c_compatibility/math.h: Import the TR29124 functions
3468 into the global namespace.
3469 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3470 xfail and make compile-only.
3471 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3472 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3473 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3474 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3475 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3476 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3477 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3478 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3479 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3480 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3481 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3482 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3483 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3484 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3485 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3486 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3487 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3488 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3489 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3490 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3492 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3495 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3496 define result_type for types which can be safely used with valarrays.
3497 * testsuite/26_numerics/valarray/69116.cc: New.
3500 * config/os/gnu-linux/os_defines.h: Define
3501 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3502 * include/c_global/cmath (isinf, isnan): Check it.
3503 * doc/xml/manual/internals.xml: Document it.
3504 * doc/html/*: Regenerate.
3506 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3509 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3510 * include/ext/type_traits.h: Likewise.
3511 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3512 for presence of C headers.
3513 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3514 dg-error line number.
3515 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3516 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3517 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3519 2016-01-20 Torvald Riegel <triegel@redhat.com>
3522 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3524 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3527 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3528 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3529 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3530 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3531 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3532 Add using declarations.
3533 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3536 * include/c_global/ccomplex: Ensure C++ language linkage.
3537 * include/c_global/cmath: Likewise.
3538 * include/c_global/cstdlib: Likewise.
3539 * include/c_global/ctgmath: Likewise.
3540 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3542 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3546 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3547 --enable-cheaders=c_global configs.
3548 * include/Makefile.in: Regenerate.
3549 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3550 test and allow inclusion from C files.
3551 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3552 (at_quick_exit, quick_exit): Add using directives.
3553 * include/c_global/cmath: Use #include_next for math.h.
3554 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3555 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3556 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3557 Remove xfail for most targets.
3558 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3560 2016-01-18 Torvald Riegel <triegel@redhat.com>
3562 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3563 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3564 and move after its definition.
3565 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3566 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3567 __GXX_WEAK__, and only provide transactional clones if
3568 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3571 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3574 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3577 * include/std/functional (_Function_base::_M_not_empty_function):
3578 Change overloads for pointers to take arguments by value.
3579 * testsuite/20_util/function/cons/57465.cc: Add tests for
3580 pointer-to-member cases.
3583 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3584 Use macros for exception handling and fix unused parameter warning.
3586 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3589 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3591 2016-01-17 Torvald Riegel <triegel@redhat.com>
3593 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3595 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3597 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3600 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3603 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3604 static assertion that type is constructible from the arguments.
3605 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3606 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3607 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3610 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3611 and isnan on AIX. Quote variables.
3612 * configure: Regenerate.
3614 2016-01-15 Torvald Riegel <triegel@redhat.com>
3616 * include/bits/basic_string.h (basic_string): Declare friends.
3617 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3618 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3619 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3620 length_error, out_of_range, runtime_error, range_error,
3621 underflow_error, overflow_error): Declare members as transaction-safe.
3622 (logic_error, runtime_error): Declare friend functions.
3623 * libsupc++/exception (exception, bad_exception): Declare members as
3625 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3626 transaction-safe members of exceptions and helper functions.
3627 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3628 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3629 (CXXABI_1.3.10): New.
3630 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3631 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3632 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3633 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3634 * include/Makefile.in: Regenerate.
3635 * config.h.in: Regenerate.
3636 * configure: Regenerate.
3637 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3639 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3641 * include/ext/random.tcc: Use __builtin_isfinite instead of
3644 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3646 * include/bits/std_mutex.h: Fix Doxygen @file name.
3648 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3649 Jonathan Wakely <jwakely@redhat.com>
3650 Florian Goth <CaptainSifff@gmx.de>
3652 Implement TR29124 C++ special Math Functions.
3653 * include/Makefile.am: Add new headers.
3654 * include/Makefile.in: Regenerate.
3655 * include/bits/specfun.h: New.
3656 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3657 * include/tr1/bessel_function.tcc: Ditto.
3658 * include/tr1/beta_function.tcc: Ditto.
3659 * include/tr1/cmath: Ditto.
3660 * include/tr1/ell_integral.tcc: Ditto.
3661 * include/tr1/exp_integral.tcc: Ditto.
3662 * include/tr1/gamma.tcc: Ditto.
3663 * include/tr1/hypergeometric.tcc: Ditto.
3664 * include/tr1/legendre_function.tcc: Ditto.
3665 * include/tr1/modified_bessel_func.tcc: Ditto.
3666 * include/tr1/poly_hermite.tcc: Ditto.
3667 * include/tr1/poly_laguerre.tcc: Ditto.
3668 * include/tr1/riemann_zeta.tcc: Ditto.
3669 * include/tr1/special_function_util.h: Ditto.
3670 * testsuite/ext/special_functions/conf_hyperg: New.
3671 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3672 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3673 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3674 * testsuite/ext/special_functions/hyperg: New.
3675 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3676 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3677 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3678 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3679 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3680 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3681 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3682 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3683 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3684 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3685 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3686 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3687 * testsuite/special_functions/03_beta/check_nan.cc: New.
3688 * testsuite/special_functions/03_beta/check_value.cc: New.
3689 * testsuite/special_functions/03_beta/compile.cc: New.
3690 * testsuite/special_functions/03_beta/compile_2.cc: New.
3691 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3692 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3693 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3694 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3695 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3696 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3697 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3698 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3699 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3700 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3701 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3702 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3703 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3704 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3705 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3706 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3707 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3708 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3709 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3710 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3711 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3712 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3713 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3714 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3715 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3716 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3717 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3718 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3719 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3720 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3721 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3722 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3723 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3724 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3725 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3726 * testsuite/special_functions/12_ellint_2/compile.cc: New.
3727 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3728 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3729 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3730 * testsuite/special_functions/13_ellint_3/compile.cc: New.
3731 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3732 * testsuite/special_functions/14_expint/check_nan.cc: New.
3733 * testsuite/special_functions/14_expint/check_value.cc: New.
3734 * testsuite/special_functions/14_expint/compile.cc: New.
3735 * testsuite/special_functions/14_expint/compile_2.cc: New.
3736 * testsuite/special_functions/15_hermite/check_nan.cc: New.
3737 * testsuite/special_functions/15_hermite/check_value.cc: New.
3738 * testsuite/special_functions/15_hermite/compile.cc: New.
3739 * testsuite/special_functions/15_hermite/compile_2.cc: New.
3740 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3741 * testsuite/special_functions/16_laguerre/check_value.cc: New.
3742 * testsuite/special_functions/16_laguerre/compile.cc: New.
3743 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3744 * testsuite/special_functions/17_legendre/check_nan.cc: New.
3745 * testsuite/special_functions/17_legendre/check_value.cc: New.
3746 * testsuite/special_functions/17_legendre/compile.cc: New.
3747 * testsuite/special_functions/17_legendre/compile_2.cc: New.
3748 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3749 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3750 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3751 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3752 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3753 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3754 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3755 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3756 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3757 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3758 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3759 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3760 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3761 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3762 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3763 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3764 * testsuite/util/specfun_testcase.h: New.
3765 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3766 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3767 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3768 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3769 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3770 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3771 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3773 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
3776 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3777 and isnan functions.
3778 * config.h.in: Regenerate.
3779 * configure: Regenerate.
3780 * include/c_global/cmath (isinf(double), isnan(double))
3781 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3782 * testsuite/26_numerics/headers/cmath/48891.cc: New.
3784 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3787 * configure.host (abi_baseline_pair): Use separate baseline for
3788 Solaris 11+ and Solaris 10 with gld.
3789 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3790 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3791 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3793 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
3796 * include/std/type_traits: Following N4511, reimplement __is_swappable
3797 and __is_nothrow_swappable. Move __is_swappable to namespace std,
3798 adjust callers. Use __is_nothrow_swappable in swap.
3799 * include/bits/move.h: Use __is_nothrow_swappable in swap.
3800 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3801 __is_swappable related tests.
3802 * testsuite/20_util/is_swappable/value.cc: New.
3803 * testsuite/20_util/is_swappable/requirements/
3804 explicit_instantiation.cc: New.
3805 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3806 * testsuite/25_algorithms/swap/68877.cc: New.
3808 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
3810 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3814 * include/std/functional (function::_Invoke): Remove, use result_of.
3815 (function::_Callable): Replace alias template with class template
3816 and use partial specialization instead of _NotSelf alias template.
3817 (function(_Functor)): Add "not self" constraint so that _Callable is
3818 not used while type is incomplete.
3819 * testsuite/20_util/function/69222.cc: New.
3821 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
3824 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3825 Define partial specialization.
3826 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3827 destroy members to std::allocator explicit specialization.
3829 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
3831 * testsuite/26_numerics/headers/cmath/
3832 c99_classification_macros_c++.cc: Rename to ...
3833 * testsuite/26_numerics/headers/cmath/
3834 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3835 * testsuite/26_numerics/headers/cmath/
3836 c99_classification_macros_c++0x.cc: Rename to ...
3837 * testsuite/26_numerics/headers/cmath/
3838 c99_classification_macros_c++11.cc: Here.
3841 * include/bits/uses_allocator.h: Add missing include.
3843 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
3848 * include/bits/stl_iterator.h (back_insert_iterator,
3849 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3850 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3851 * include/std/future (__future::base::_State_baseV2::__setter):
3853 * include/std/scoped_allocator (__outermost): Likewise.
3854 * testsuite/20_util/scoped_allocator/69114.cc: New.
3855 * testsuite/20_util/uses_allocator/69114.cc: New.
3856 * testsuite/30_threads/promise/69106.cc: New.
3858 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
3861 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3862 Remove _GLIBCXX_NOEXCEPT.
3863 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3865 * include/Makefile.am: Adjust.
3866 * include/Makefile.in: Regenerate.
3867 * include/bits/mutex.h: Rename to bits/std_mutex.h.
3868 * include/std/condition_variable: Adjust include.
3869 * include/std/mutex: Likewise.
3871 2016-01-04 Jakub Jelinek <jakub@redhat.com>
3873 Update copyright years.
3875 Copyright (C) 2016 Free Software Foundation, Inc.
3877 Copying and distribution of this file, with or without modification,
3878 are permitted in any medium without royalty provided the copyright
3879 notice and this notice are preserved.