1 2016-09-27 Jonathan Wakely <jwakely@redhat.com>
3 * doc/xml/manual/status_cxx2017.xml: Update status.
4 * doc/html/*: Regenerate.
5 * include/std/functional (__cpp_lib_boyer_moore_searcher): Define.
6 * testsuite/20_util/function_objects/searchers.cc: Test feature macro.
8 * doc/xml/manual/status_cxx2017.xml: Update status.
9 * include/c_global/cmath (hypot): Add three-dimensional overloads.
10 * testsuite/26_numerics/headers/cmath/hypot.cc: New.
12 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
15 * include/std/optional (optional(const optional<_Up>&)):
16 Default-initialize the base and use emplace.
17 (optional(optional<_Up>&&)): Likewise.
18 * testsuite/20_util/optional/cons/77727.cc: New.
20 2016-09-26 François Dumont <fdumont@gcc.gnu.org>
22 * include/debug/safe_base.h
23 (_Safe_iterator_base::_M_detach_single): Make public.
25 2016-09-26 Jonathan Wakely <jwakely@redhat.com>
27 * include/bits/range_access.h (__cpp_lib_array_constexpr): Do not
28 redefine macro defined in <bits/stl_iterator.h>.
30 * include/bits/stl_map.h (map::extract(const_iterator)): Assert that
31 iterator is not past-the-end.
32 * include/bits/stl_multimap.h (multimap::extract(const_iterator)):
34 * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
36 * include/bits/stl_set.h (set::extract(const_iterator)): Likewise.
37 * include/bits/unordered_map.h (unordered_map::extract(const_iterator))
38 (unordered_multimap::extract(const_iterator)): Likewise.
39 * include/bits/unordered_set.h (unordered_set::extract(const_iterator))
40 (unordered_multiset::extract(const_iterator)): Likewise.
42 2016-09-26 Ville Voutilainen <ville.voutilainen@gmail.com>
45 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
46 Fix an out-of-bounds access.
48 2016-09-26 Marek Polacek <polacek@redhat.com>
51 * libsupc++/hash_bytes.cc: Add [[gnu::fallthrough]].
53 2016-09-25 François Dumont <fdumont@gcc.gnu.org>
55 * src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
57 (get_safe_base_mutex): Get mutex based on address lowest non nil bits.
58 * testsuite/23_containers/vector/debug/mutex_association.cc: New.
60 * include/debug/bitset (bitset::reference::reference(const _Base_ref&,
61 bitset*)): Remove __unused__ attribute.
62 * include/debug/safe_base.h (_Safe_iterator_base): Make
63 _Safe_sequence_base a friend.
64 (_Safe_iterator_base::_M_attach): Make protected.
65 (_Safe_iterator_base::_M_attach_single): Likewise.
66 (_Safe_iterator_base::_M_detach): Likewise.
67 (_Safe_iterator_base::_M_detach_single): Likewise.
68 (_Safe_sequence_base): Make _Safe_iterator_base a friend.
69 (_Safe_sequence_base::_Safe_sequence_base(_Safe_sequence_base&&)): New.
70 (_Safe_sequence_base::_M_swap): Make protected.
71 (_Safe_sequence_base::_M_attach): Make private.
72 (_Safe_sequence_base::_M_attach_single): Likewise.
73 (_Safe_sequence_base::_M_detach): Likewise.
74 (_Safe_sequence_base::_M_detach_single): Likewise.
75 * include/debug/safe_container.h
76 (_Safe_container::_Safe_container(_Safe_container&&)): Make default.
77 * include/debug/safe_iterator.h
78 (_Safe_iterator::operator++()): Name __scoped_lock instance.
79 * include/debug/safe_iterator.tcc: Remove trailing line.
80 * include/debug/safe_unordered_base.h
81 (_Safe_local_iterator_base::_M_attach): Make protected.
82 (_Safe_local_iterator_base::_M_attach_single): Likewise.
83 (_Safe_local_iterator_base::_M_detach): Likewise.
84 (_Safe_local_iterator_base::_M_detach_single): Likewise.
85 (_Safe_unordered_container_base): Make _Safe_local_iterator_base friend.
86 (_Safe_unordered_container_base::_M_attach_local): Make private.
87 (_Safe_unordered_container_base::_M_attach_local_single): Likewise.
88 (_Safe_unordered_container_base::_M_detach_local): Likewise.
89 (_Safe_unordered_container_base::_M_detach_local_single): Likewise.
91 * include/parallel/algo.h: Generalize usage of std::__iterator_category.
94 2016-09-23 Jonathan Wakely <jwakely@redhat.com>
98 * include/bits/basic_string.h (basic_string::clear()): Drop reference
100 * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
102 * testsuite/21_strings/basic_string/56166.cc: New.
103 * testsuite/ext/vstring/modifiers/clear/56166.cc: New.
105 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
106 (basic_string::erase(size_type, size_type)): Add fast path for
107 truncating the string, by calling _M_set_length directly.
108 (basic_string::erase(__const_iterator, __const_iterator)): Likewise.
109 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
110 (basic_string::resize(size_type, _CharT)): Likewise.
112 2016-09-22 Jason Merrill <jason@redhat.com>
114 * configure.ac: Define HAVE_MEMALIGN for newlib.
116 2015-09-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
118 * config/cpu/m68k/atomicity.h: Adjust comment.
119 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
120 explicit atomicity_dir setup via configure.host.
121 * configure.host (rtems-*): Set atomicity_dir.
122 * configure: Regenerate.
124 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
126 Implement C++17 node extraction and insertion (P0083R5)
127 * doc/xml/manual/status_cxx2017.xml: Document status.
128 * doc/html/*: Regenerate.
129 * include/Makefile.am: Add bits/node_handle.h and reorder.
130 * include/Makefile.in: Regenerate.
131 * include/bits/hashtable.h (_Hashtable::node_type)
132 (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
133 (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
134 (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
135 (_Hash_merge_helper): Define primary template.
136 * include/bits/node_handle.h: New header.
137 * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
139 (map::node_type, map::insert_return_type, map::extract, map::merge)
140 (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
142 (_Rb_tree_merge_helper): Specialize for map.
143 * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
145 (multimap::node_type, multimap::extract, multimap::merge)
146 (multimap::insert(node_type&&))
147 (multimap::insert(const_iterator, node_type&&)): Define.
148 (_Rb_tree_merge_helper): Specialize for multimap.
149 * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
151 (multiset::node_type, multiset::extract, multiset::merge)
152 (multiset::insert(node_type&&))
153 (multiset::insert(const_iterator, node_type&&)): Define.
154 * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
156 (set::node_type, set::insert_return_type, set::extract, set::merge)
157 (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
159 (_Rb_tree_merge_helper): Specialize for set.
160 * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
161 (_Rb_tree::node_type, _Rb_tree::insert_return_type)
162 (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
163 (_Rb_tree::_M_reinsert_node_hint_unique)
164 (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
165 (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
166 (_Rb_tree_merge_helper): Specialize for multiset.
167 * include/bits/unordered_map.h (unordered_map): Declare
168 unordered_map<> and unordered_multimap<> as friends.
169 (unordered_map::node_type, unordered_map::insert_return_type)
170 (unordered_map::extract, unordered_map::merge)
171 (unordered_map::insert(node_type&&))
172 (unordered_map::insert(const_iterator, node_type&&))
173 (unordered_multimap): Declare _Hash_merge_helper as friend.
174 (unordered_multimap::node_type, unordered_multimap::extract)
175 (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
176 (unordered_multimap::insert(const_iterator, node_type&&)): Define.
177 (_Hash_merge_helper): Specialize for unordered maps and multimaps.
178 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
179 Declare _Hash_merge_helper as friend.
180 (unordered_set::node_type, unordered_set::insert_return_type)
181 (unordered_set::extract, unordered_set::merge)
182 (unordered_set::insert(node_type&&))
183 (unordered_set::insert(const_iterator, node_type&&)): Define.
184 (unordered_multiset::node_type, unordered_multiset::extract)
185 (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
186 (unordered_multiset::insert(const_iterator, node_type&&)): Define.
187 (_Hash_merge_helper): Specialize for unordered sets and multisets.
188 * include/debug/map.h (map): Add using declarations or forwarding
189 functions for new members.
190 * include/debug/map.h (multimap): Likewise.
191 * include/debug/map.h (multiset): Likewise.
192 * include/debug/map.h (set): Likewise.
193 * include/debug/unordered_map (unordered_map, unordered_multimap):
195 * include/debug/unordered_set( unordered_set, unordered_multiset):
197 * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
199 (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
200 (StdNodeHandlePrinter): Define printer for node handles.
201 (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
202 * testsuite/23_containers/map/modifiers/extract.cc: New.
203 * testsuite/23_containers/map/modifiers/merge.cc: New.
204 * testsuite/23_containers/multimap/modifiers/extract.cc: New.
205 * testsuite/23_containers/multimap/modifiers/merge.cc: New.
206 * testsuite/23_containers/multiset/modifiers/extract.cc: New.
207 * testsuite/23_containers/multiset/modifiers/merge.cc: New.
208 * testsuite/23_containers/set/modifiers/extract.cc: New.
209 * testsuite/23_containers/set/modifiers/merge.cc: New.
210 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
211 * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
212 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
214 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
215 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
217 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
218 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
219 * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
220 * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
222 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
224 2016-09-22 Ville Voutilainen <ville.voutilainen@gmail.com>
226 Fix tests on old arm platforms for optional.
227 * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
229 2016-09-22 Jonathan Wakely <jwakely@redhat.com>
231 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
232 recent change to _Variant_storage.
233 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
236 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
237 std::forward and ::new. Cast pointer to void*.
238 * include/std/variant (_Variant_storage, _Union, _Variant_base)
239 (__access, __visit_invoke, variant, visit): Qualify std::forward.
240 * testsuite/20_util/variant/compile.cc: Test for ADL problems.
242 2016-09-22 Tim Shen <timshen@google.com>
244 * include/std/variant (variant::operator=): Fix assignment
246 * testsuite/20_util/variant/compile.cc: Add test.
248 2016-09-22 Tim Shen <timshen@google.com>
251 * include/std/variant (_Variant_storage::_Variant_storage):
252 Change _Variant_storage's union to be default constructible.
253 * testsuite/20_util/variant/compile.cc: New test.
255 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
258 * include/std/optional (__is_optional_impl, __is_optional): Remove.
259 (__converts_from_optional, __assigns_from_optional): New.
260 (optional(_Up&&)): Use is_same instead of __is_optional.
261 (optional(const optional<_Up>&)): Constrain with
262 __converts_from_optional.
263 (optional(optional<_Up>&&)): Likewise.
264 (operator=(_Up&&)): Use is_same instead of __is_optional, check
265 is_same and is_scalar.
266 (operator=(const optional<_Up>&)): Constrain with
267 __converts_from_optional and __assigns_from_optional.
268 (operator=(optional<_Up>&&)): Likewise.
269 * testsuite/20_util/optional/77288.cc: New.
270 * testsuite/20_util/optional/cons/value.cc: Adjust.
272 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
274 Implement LWG 2729 for tuple.
275 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
276 Suppress conditionally.
277 (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
278 (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
279 (_Tuple_impl(const _Head&)): Constrain.
280 (_Tuple_impl(_UHead&&)): Likewise.
281 (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
282 (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
283 (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
284 (operator=(const tuple&)): Enable conditionally.
285 (operator=(tuple&&)): Suppress conditionally.
286 (operator=(const tuple<_UElements...>&)): Constrain.
287 (operator=(tuple<_UElements...>&&)): Likewise.
288 (operator=(const tuple&)): Enable conditionally (2-param tuple).
289 (operator=(tuple&&)): Suppress conditionally (2-param tuple).
290 (operator=(const tuple<_U1, _U2>&)): Constrain.
291 (operator=(tuple<_U1, _U2>&&)): Likewise.
292 (operator=(const pair<_U1, _U2>&)): Likewise.
293 (operator=(pair<_U1, _U2>&&)): Likewise.
294 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
295 * testsuite/20_util/tuple/tuple_traits.cc: New.
297 2016-09-21 Ville Voutilainen <ville.voutilainen@gmail.com>
300 Implement LWG 2729 for pair.
301 * include/bits/stl_pair.h (_PCC): New.
302 (_ConstructiblePair, _ImplicitlyConvertiblePair):
303 Turn into static member functions of _PCC.
304 (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
306 (pair(const _T1&, const _T2&)): Adjust.
308 (pair(const pair<_U1, _U2>&)): Adjust.
309 (pair(_U1&&, const _T2&)): Likewise.
310 (pair(const _T1&, _U2&&)): Likewise.
311 (pair(_U1&&, _U2&&)): Likewise.
312 (pair(pair<_U1, _U2>&&)): Likewise.
313 (operator=(const pair&)): Make conditionally deleted.
314 (operator=(pair&&)): Make conditionally suppressed.
315 (operator=(const pair<_U1, _U2>&)): Constrain.
316 (operator=(pair<_U1, _U2>&&): Likewise.
317 * include/std/type_traits (__nonesuch): New.
318 * testsuite/20_util/pair/traits.cc: New.
320 2016-09-20 Ville Voutilainen <ville.voutilainen@gmail.com>
323 * include/bits/stl_construct.h: (_Construct_novalue): New.
324 (_Destroy_n_aux, _Destroy_n): New.
325 * include/bits/stl_uninitialized.h: (type_traits):
326 New include in C++11 mode.
327 (__uninitialized_default_novalue_1): New.
328 (__uninitialized_default_novalue_n_1): Likewise.
329 (__uninitialized_default_novalue): Likewise.
330 (__uninitialized_default_novalue_n): Likewise.
331 (__uninitialized_copy_n_pair): Likewise.
332 (uninitialized_default_construct):
333 Use __uninitialized_default_novalue.
334 (uninitialized_default_construct_n):
335 Use __uninitialized_default_novalue_n.
336 (uninitialized_value_construct): Use __uninitialized_default.
337 (uninitialized_value_construct_n): Use __uninitialized_default_n.
338 (uninitialized_move): Use uninitialized_copy.
339 (uninitialized_move_n): Use __uninitialized_copy_n_pair.
340 (destroy_at): Use _Destroy.
342 (destroy_n): Likewise.
343 * testsuite/20_util/specialized_algorithms/
344 memory_management_tools/1.cc: Add tests for exceptions,
345 add tests for trivial cases for construct and move.
347 2016-09-20 Jonathan Wakely <jwakely@redhat.com>
349 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
350 (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
352 2016-09-19 Jonathan Wakely <jwakely@redhat.com>
355 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
356 (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
357 division to int to work with Python 3.
359 * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
361 * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
362 display_hint to be set by subclasses.
363 (StdVariantPrinter): Use array for display_hint. Adjust output to be
364 more similar to std::any and std::optional output.
365 (register_type_printers): Add type printers for basic_string_view
366 typedefs and experimental::any. Adjust type printers for
367 fundamentals_v1 templates to match fundamentals_v2 and later.
368 * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
371 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
373 (ListWorkerBase.get_value_from_node): Define new method.
374 (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
376 2016-09-17 Jonathan Wakely <jwakely@redhat.com>
378 * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
379 (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
380 Register for C++17 components in namespace std. Strip inline namespace
383 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
385 * doc/xml/manual/profile_mode.xml: Fix typo.
386 * doc/html/manual/profile_mode_devel.html: Regenerate.
388 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
389 Marc Glisse <marc.glisse@inria.fr>
391 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
392 (operator new(size_t, align_val_t)): Replace modulus operator with
395 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
397 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
398 Increase alignment if less than sizeof(void*).
399 [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
400 Increase size if not a multiple of alignment.
402 2016-09-15 Jonathan Wakely <jwakely@redhat.com>
404 * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
405 * doc/html/*: Regenerate.
407 * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
409 * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
411 2016-09-14 Marek Polacek <polacek@redhat.com>
413 * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
416 2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
418 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
419 Move dg-do directive before dg-skip.
420 * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
421 Move dg-do directive before dg-require.
422 * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
423 * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
424 * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
425 * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
426 * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
427 * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
428 * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
429 * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
430 * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
431 * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
432 * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
433 * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
434 * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
435 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
436 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
438 * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
439 * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
440 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
441 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
442 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
444 2016-09-13 Ville Voutilainen <ville.voutilainen@gmail.com>
446 Implement P0040R3, Extending memory management tools.
447 * include/bits/stl_uninitialized.h (utility): New include
449 (uninitialized_default_construct): New.
450 (uninitialized_default_construct_n): Likewise.
451 (uninitialized_value_construct): Likewise.
452 (uninitialized_value_construct_n): Likewise.
453 (uninitialized_move): Likewise.
454 (uninitialized_move_n): Likewise.
455 (destroy_at, destroy, destroy_n): Likewise.
456 * testsuite/20_util/specialized_algorithms/memory_management_tools/
459 2016-09-12 Jason Merrill <jason@redhat.com>
461 * config/abi/pre/gnu.ver: Use [jmy] for size_t.
463 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
465 Implement P0253R1, Fixing a design mistake in the searchers
466 interface in Library Fundamentals.
467 * include/std/functional: (utility): New include in C++17 mode.
468 (default_searcher): Use a pair as return type, adjust the definition.
469 (boyer_moore_searcher): Likewise.
470 (boyer_moore_horspool_searcher): Likewise.
471 * testsuite/20_util/function_objects/searchers.cc: Adjust.
473 2016-09-12 Ville Voutilainen <ville.voutilainen@gmail.com>
475 Implement C++17 string searchers.
476 * include/std/functional: (unordered_map, vector): New includes
478 (array, bits/stl_algo.h): Likewise.
479 (default_searcher, __boyer_moore_map_base): New.
480 (__boyer_moore_array_base, __is_std_equal_to): Likewise.
481 (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
482 (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
483 (make_boyer_moore_searcher): Likewise.
484 (make_boyer_moore_horspool_searcher): Likewise.
485 * testsuite/20_util/function_objects/searchers.cc: New.
487 2016-09-12 Matthew Wahab <matthew.wahab@arm.com>
489 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
490 Move dg-do directive before dg-require.
491 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
492 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
494 * testsuite/22_locale/codecvt/utf8.cc: Likewise.
495 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
496 * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
497 * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
498 * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
499 * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
500 * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
501 * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
502 * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
503 * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
504 * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
505 * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
506 * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
508 * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
510 * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
511 * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
512 * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
514 * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
516 * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
518 * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
520 * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
522 * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
524 * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
526 * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
528 * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
530 * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
532 * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
534 * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
536 * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
538 * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
540 * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
542 * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
544 * testsuite/23_containers/forward_list/debug/
545 iterator_self_move_assign_neg.cc: Likewise.
546 * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
548 * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
550 * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
552 * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
554 * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
556 * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
558 * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
560 * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
562 * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
563 * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
564 * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
565 * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
566 * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
567 * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
568 * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
569 * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
570 * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
571 * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
572 * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
574 * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
575 * testsuite/23_containers/map/debug/60499.cc: Likewise.
576 * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
577 * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
578 * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
579 * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
580 * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
581 * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
582 * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
584 * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
585 * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
586 * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
587 * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
588 * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
589 * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
590 * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
591 * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
592 * testsuite/23_containers/multimap/debug/
593 iterator_self_move_assign_neg.cc: Likewise.
594 * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
596 * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
597 * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
598 * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
599 * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
600 * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
601 * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
602 * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
603 * testsuite/23_containers/multiset/debug/
604 iterator_self_move_assign_neg.cc: Likewise.
605 * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
607 * testsuite/23_containers/set/debug/60499.cc: Likewise.
608 * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
609 * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
610 * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
611 * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
612 * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
613 * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
614 * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
616 * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
617 * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
618 * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
619 * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
620 * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
622 * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
623 * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
624 * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
626 * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
628 * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
630 * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
631 * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
632 * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
633 * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
634 * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
635 * testsuite/23_containers/unordered_map/debug/
636 invalid_local_iterator_compare_neg.cc: Likewise.
637 * testsuite/23_containers/unordered_map/debug/
638 invalid_local_iterator_range_neg.cc: Likewise.
639 * testsuite/23_containers/unordered_map/debug/
640 iterator_self_move_assign_neg.cc: Likewise.
641 * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
643 * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
645 * testsuite/23_containers/unordered_map/debug/
646 use_erased_local_iterator_neg.cc: Likewise.
647 * testsuite/23_containers/unordered_map/debug/
648 use_invalid_iterator_neg.cc: Likewise.
649 * testsuite/23_containers/unordered_map/debug/
650 use_invalid_local_iterator_neg.cc: Likewise.
651 * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
652 * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
654 * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
656 * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
658 * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
660 * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
662 * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
664 * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
666 * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
668 * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
670 * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
672 * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
674 * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
676 * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
678 * testsuite/23_containers/unordered_multimap/debug/
679 invalid_local_iterator_compare_neg.cc: Likewise.
680 * testsuite/23_containers/unordered_multimap/debug/
681 invalid_local_iterator_range_neg.cc: Likewise.
682 * testsuite/23_containers/unordered_multimap/debug/
683 iterator_self_move_assign_neg.cc: Likewise.
684 * testsuite/23_containers/unordered_multimap/debug/
685 max_load_factor_neg.cc: Likewise.
686 * testsuite/23_containers/unordered_multimap/debug/
687 self_move_assign_neg.cc: Likewise.
688 * testsuite/23_containers/unordered_multimap/debug/
689 use_erased_local_iterator_neg.cc: Likewise.
690 * testsuite/23_containers/unordered_multimap/debug/
691 use_invalid_iterator_neg.cc: Likewise.
692 * testsuite/23_containers/unordered_multimap/debug/
693 use_invalid_local_iterator_neg.cc: Likewise.
694 * testsuite/23_containers/unordered_multiset/debug/60499.cc:
696 * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
698 * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
700 * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
702 * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
704 * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
706 * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
708 * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
710 * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
712 * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
714 * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
716 * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
718 * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
720 * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
722 * testsuite/23_containers/unordered_multiset/debug/
723 invalid_local_iterator_compare_neg.cc: Likewise.
724 * testsuite/23_containers/unordered_multiset/debug/
725 invalid_local_iterator_range_neg.cc: Likewise.
726 * testsuite/23_containers/unordered_multiset/debug/
727 iterator_self_move_assign_neg.cc: Likewise.
728 * testsuite/23_containers/unordered_multiset/debug/
729 max_load_factor_neg.cc: Likewise.
730 * testsuite/23_containers/unordered_multiset/debug/
731 self_move_assign_neg.cc: Likewise.
732 * testsuite/23_containers/unordered_multiset/debug/
733 use_erased_local_iterator_neg.cc: Likewise.
734 * testsuite/23_containers/unordered_multiset/debug/
735 use_invalid_iterator_neg.cc: Likewise.
736 * testsuite/23_containers/unordered_multiset/debug/
737 use_invalid_local_iterator_neg.cc: Likewise.
738 * testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
739 * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
740 * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
741 * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
743 * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
744 * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
745 * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
747 * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
749 * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
751 * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
752 * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
753 * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
754 * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
755 * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
756 * testsuite/23_containers/unordered_set/debug/
757 invalid_local_iterator_compare_neg.cc: Likewise.
758 * testsuite/23_containers/unordered_set/debug/
759 invalid_local_iterator_range_neg.cc: Likewise.
760 * testsuite/23_containers/unordered_set/debug/
761 iterator_self_move_assign_neg.cc: Likewise.
762 * testsuite/23_containers/unordered_set/debug/
763 max_load_factor_neg.cc: Likewise.
764 * testsuite/23_containers/unordered_set/debug/
765 self_move_assign_neg.cc: Likewise.
766 * testsuite/23_containers/unordered_set/debug/
767 use_erased_local_iterator_neg.cc: Likewise.
768 * testsuite/23_containers/unordered_set/debug/
769 use_invalid_iterator_neg.cc: Likewise.
770 * testsuite/23_containers/unordered_set/debug/
771 use_invalid_local_iterator_neg.cc: Likewise.
772 * testsuite/23_containers/vector/debug/52433.cc: Likewise.
773 * testsuite/23_containers/vector/debug/60499.cc: Likewise.
774 * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
775 * testsuite/23_containers/vector/debug/
776 iterator_self_move_assign_neg.cc: Likewise.
777 * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
779 * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
780 * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
781 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
782 * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
783 * testsuite/29_atomics/atomic/60658.cc: Likewise.
784 * testsuite/29_atomics/atomic/60695.cc: Likewise.
785 * testsuite/29_atomics/atomic/62259.cc: Likewise.
786 * testsuite/29_atomics/atomic/64658.cc: Likewise.
787 * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
788 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
789 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
792 2016-09-11 Jonathan Wakely <jwakely@redhat.com>
794 * libsupc++/new_opant.cc: Include exception_defines.h.
795 * libsupc++/new_opvant.cc: Likewise.
797 2016-09-09 Jason Merrill <jason@redhat.com>
799 Implement P0035R4, C++17 new of over-aligned types.
800 * libsupc++/new: Declare aligned new/delete operators.
801 * config/abi/pre/gnu.ver: Export them.
802 * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
804 * libsupc++/new_opa.cc: New.
805 * libsupc++/new_opant.cc: New.
806 * libsupc++/new_opva.cc: New.
807 * libsupc++/new_opva.cc: New.
808 * libsupc++/del_opa.cc: New.
809 * libsupc++/del_opant.cc: New.
810 * libsupc++/del_opsa.cc: New.
811 * libsupc++/del_opva.cc: New.
812 * libsupc++/del_opvant.cc: New.
813 * libsupc++/del_opvsa.cc: New.
814 * libsupc++/Makefile.am: Build them.
816 2016-09-05 Tim Shen <timshen@google.com>
818 * include/std/variant: include bits/move.h for std::addressof.
820 2016-09-05 Mikhail Strelnikov <mikhail.strelnikov@gmail.com>
822 * include/std/variant (_Variant_storage::_M_storage()): Use
823 std::addressof instead of operator& to take address.
825 2016-09-02 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
827 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
828 setrlimit on both native and cross targets.
829 * configure: Regenerate.
831 2016-08-31 Jonathan Wakely <jwakely@redhat.com>
833 * include/bits/shared_ptr.h (_Assignable): New alias template.
834 (shared_ptr::operator=(const shared_ptr<_Tp1>&))
835 (shared_ptr::operator=(shared_ptr<_Tp1>&&))
836 (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
838 * include/bits/shared_ptr_base.h (_Assignable): New alias template.
839 (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
840 (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
841 (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
843 (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
844 (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
846 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
848 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
849 * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
850 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
851 expected errors. Remove unnecessary code.
852 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
854 * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
856 * testsuite/23_containers/set/move_comparison.cc: New test.
858 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
861 2016-08-30 Ville Voutilainen <ville.voutilainen@gmail.com>
864 * include/std/type_traits (is_constructible): Forward-declare...
865 (__is_base_to_derived_ref): ...and use here.
866 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
867 * testsuite/20_util/is_constructible/77395.cc: New.
868 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
869 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
871 * testsuite/20_util/tuple/77395.cc: New.
873 2016-08-30 Uros Bizjak <ubizjak@gmail.com>
875 * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
876 directive above dg-require-namedlocale directive.
877 * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
878 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
879 * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
880 * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
881 * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
883 2016-08-27 Tim Shen <timshen@google.com>
886 * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
887 _M_expression_term): Modify to support dash literal.
888 * include/bits/regex_scanner.h: Add dash as a token type to make
889 a different from the mandated dash literal by escaping.
890 * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
891 token in bracket expression parsing.
892 * testsuite/28_regex/regression.cc: Add new testcases.
894 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
897 * doc/xml/manual/intro.xml: Document DR 2127 change.
898 * doc/html/*: Regenerate.
899 * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
900 (operator++(), operator++(int)): Use injected class name.
901 * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
903 * testsuite/*: Use { target c++11 } or { target c++14 } instead of
904 using -std in dg-options.
906 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
907 Pedro Alves <palves@redhat.com>
909 * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
910 and restore dg-interpreter-batch-mode.
911 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
912 gdb-dg-runtest instead of dg-runtest.
913 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
915 2016-08-26 Jonathan Wakely <jwakely@redhat.com>
917 * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
918 precise patterns for basic_string constructors.
919 (GLIBCXX_3.4.23): Export new constructors.
920 * doc/xml/manual/intro.xml: Document LWG 2583 status.
921 * doc/html/*: Regenerate.
922 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
923 (basic_string(const basic_string&, size_type, const Alloc&)): Add
924 new constructor for LWG 2583.
925 (basic_string(const basic_string&, size_type, size_type)): Remove
927 [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
928 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
929 * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
930 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
932 2016-08-24 Aditya Kumar <hiraditya@msn.com>
934 * include/bits/algorithmfwd.h: Remove trailing whitespace.
935 * include/bits/shared_ptr_base.h: Likewise.
937 2016-08-23 Jonathan Wakely <jwakely@redhat.com>
939 * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
940 * include/profile/array (array): Likewise.
941 (array::swap): Fix exception specification for zero-sized arrays.
944 * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
945 (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
946 * testsuite/23_containers/map/77334.cc: New test.
948 * doc/xml/manual/using.xml: Remove reference to -pthreads option.
949 * doc/html/*: Regenerate.
951 * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
952 * testsuite/experimental/feat-lib-fund.cc: Likewise.
955 * include/bits/stl_iterator.h
956 (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
957 define for C++98 mode.
958 (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
959 * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
961 * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
962 * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
963 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
964 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
966 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
967 difference operator for C++98.
968 * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
970 * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
971 * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
972 (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
973 * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
974 (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
976 * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
977 _GLIBCXX14_CONSTEXPR.
978 (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
979 * include/std/array (array::begin, array::end, array::rbegin)
980 (array::rend, array::cbegin, array:cend, array::crbegin)
981 (array::crend, array::operator[], array::at, array::front)
982 (array::back, array::data): Likewise.
983 * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
984 with separate tests for C++11, C++14, and C++17.
985 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
986 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
987 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
989 2016-08-22 Tim Shen <timshen@google.com>
991 Split _M_dfs() into smaller functions.
992 * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
993 (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
994 (_M_handle_line_end_assertion, _M_handle_word_boundary)
995 (_M_handle_subexpr_lookahead, _M_handle_match)
996 (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
997 Add separate function declarations.
998 * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
1000 2016-08-22 Gleb Natapov <gleb@scylladb.com>
1003 * config/abi/pre/gnu-versioned-namespace.ver: Export
1004 __cxa_init_primary_exception and std::exception_ptr(void*).
1005 * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
1006 export __cxa_init_primary_exception and std::exception_ptr(void*).
1007 * include/Makefile.am: Add new headers.
1008 * include/Makefile.in: Regenerate.
1009 * libsupc++/Makefile.am: Add new headers.
1010 * libsupc++/Makefile.in: Regenerate.
1011 * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
1012 * libsupc++/cxxabi_init_exception.h: New header.
1013 (__cxa_init_primary_exception): Declare.
1014 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
1015 (__cxa_throw): Use __cxa_init_primary_exception.
1016 * libsupc++/exception (std::exception): Move to ...
1017 * libsupc++/exception.h: New header.
1018 * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
1020 (__exception_ptr::__dest_thunk): New function template.
1021 (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
1022 Use __cxa_allocate_exception and __cxa_init_primary_exception to
1023 create exception_ptr.
1024 * libsupc++/typeinfo: Include bits/exception.h instead of exception.
1025 * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
1027 2016-08-22 Jonathan Wakely <jwakely@redhat.com>
1029 * doc/xml/api.xml: Replace hardcoded links for specific versions with
1030 link to docs for all releases.
1031 * doc/html/*: Regenerate.
1034 * doc/xml/manual/intro.xml: Document DR 2062 change.
1035 * include/std/functional (function::swap): Add noexcept.
1036 (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
1037 * testsuite/20_util/function/77322.cc: New test.
1039 2016-08-19 Jonathan Wakely <jwakely@redhat.com>
1041 * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
1042 *-*-solaris* instead of -pthreads.
1043 * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
1044 * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
1045 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
1046 * testsuite/23_containers/list/pthread1.cc: Likewise.
1047 * testsuite/23_containers/list/pthread5.cc: Likewise.
1048 * testsuite/23_containers/map/pthread6.cc: Likewise.
1049 * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
1050 * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
1051 * testsuite/30_threads/shared_mutex/*: Likewise.
1052 * testsuite/ext/rope/pthread7-rope.cc: Likewise.
1053 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1054 default_weaktoshared.cc: Likewise.
1055 * testsuite/tr1/2_general_utilities/shared_ptr/thread/
1056 mutex_weaktoshared.cc: Likewise.
1057 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
1058 dg-require-effective-target instead of using -std option.
1059 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1061 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1062 * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1064 * testsuite/30_threads/async/*: Likewise.
1065 * testsuite/30_threads/call_once/*: Likewise.
1066 * testsuite/30_threads/condition_variable/*: Likewise.
1067 * testsuite/30_threads/condition_variable_any/*: Likewise.
1068 * testsuite/30_threads/future/*: Likewise.
1069 * testsuite/30_threads/lock/*: Likewise.
1070 * testsuite/30_threads/mutex/*: Likewise.
1071 * testsuite/30_threads/packaged_task/*: Likewise.
1072 * testsuite/30_threads/promise/*: Likewise.
1073 * testsuite/30_threads/recursive_mutex/*: Likewise.
1074 * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
1075 * testsuite/30_threads/shared_future/*: Likewise.
1076 * testsuite/30_threads/shared_lock/*: Likewise.
1077 * testsuite/30_threads/shared_timed_mutex/*: Likewise.
1078 * testsuite/30_threads/this_thread/*: Likewise.
1079 * testsuite/30_threads/thread/*: Likewise.
1080 * testsuite/30_threads/timed_mutex/*: Likewise.
1081 * testsuite/30_threads/try_lock/*: Likewise.
1082 * testsuite/30_threads/unique_lock/*: Likewise.
1084 * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
1085 * doc/html/*: Regenerate.
1086 * include/experimental/functional (_Not_fn, not_fn): Match C++17
1088 * include/std/functional (_Not_fn, not_fn): Define for C++17.
1089 * testsuite/20_util/not_fn/1.cc: New.
1090 * testsuite/experimental/functional/not_fn.cc: Test abstract class.
1091 Remove test for volatile-qualified wrapper.
1093 * include/std/atomic (atomic::is_always_lock_free): Define.
1094 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
1095 * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
1096 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
1097 * doc/xml/manual/status_cxx2017.xml: Update status.
1098 * doc/html/*: Regenerate.
1100 * include/experimental/tuple (apply): Qualify call to __apply_impl.
1101 * include/std/tuple (apply): Likewise.
1102 * testsuite/experimental/system_error/value.cc: Fix ambiguities in
1104 * testsuite/experimental/tuple/tuple_size.cc: Likewise.
1105 * testsuite/experimental/type_traits/value.cc: Likewise.
1107 * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
1109 * doc/html/*: Regenerate.
1111 2016-08-18 Ville Voutilainen <ville.voutilainen@gmail.com>
1113 Implement the latest proposed resolution of LWG 2756.
1114 * include/std/optional (Optional_base(const _Tp&))
1115 (Optional_base(_Tp&&), using _Base::_Base): Remove.
1116 (optional(nullopt_t)): New.
1117 (optional(_Up&&)): Invoke base directly with in_place
1118 rather than creating a temporary, add default template
1119 argument, change constraints.
1120 (optional(const optional<_Up>&)): Invoke base directly
1121 with in_place, remove unnecessary constraints.
1122 (optional(optional<_Up>&& __t)): Likewise.
1123 (optional(in_place_t, _Args&&...)): New.
1124 (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1125 (operator=(_Up&&)): Add default template argument, change constraints.
1126 (operator=(const optional<_Up>&)): Put is_same first in the
1128 (operator=(optional<_Up>&&)): Likewise.
1129 * testsuite/20_util/optional/assignment/5.cc: Add a test to
1130 verify assignment from something that can't be perfect-forwarded.
1131 * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1132 that a nested optional is disengaged when constructed
1133 from a disengaged element type, and to verify that assignments
1134 from an engaged element type engage the optional.
1136 2016-08-18 Tim Shen <timshen@google.com>
1140 * include/Makefile.am: Add new file std/variant.
1141 * include/Makefile.in: Generated from Makefile.am.
1142 * include/bits/enable_special_members.h: Add a tag type to allow
1143 the construction in non-default constructor.
1144 * include/bits/uses_allocator.h: Add convenience traits to
1145 detect constructibility.
1146 * include/std/variant: Implement <variant>.
1147 * testsuite/20_util/variant/compile.cc: Compile-time tests.
1148 * testsuite/20_util/variant/run.cc: Runtime tests.
1150 2016-08-18 Jonathan Wakely <jwakely@redhat.com>
1152 * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1153 (test.new_tests): Rewrite section.
1154 (tests.dg.directives): New section.
1155 * doc/html/*: Regenerate.
1157 * doc/xml/manual/test.xml: Improve documentation of test targets.
1158 Document new-abi-baseline, check-debug, and check-parallel targets.
1160 * doc/xml/manual/build_hacking.xml: New section on shared library
1163 * doc/xml/manual/build_hacking.xml: Improve markup.
1164 * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1166 * doc/xml/faq.xml: Change link text to "Testing".
1168 * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1169 dg-options directive.
1171 2016-08-17 Jonathan Wakely <jwakely@redhat.com>
1173 * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1174 directive and use effective target instead of dg-options.
1176 * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1177 instead of -std in dg-options.
1178 * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1179 * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1180 * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1181 * testsuite/20_util/hash/quality.cc: Likewise.
1182 * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1183 * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1184 * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1185 * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1186 * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1187 * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1189 * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1190 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1191 * testsuite/27_io/rvalue_streams.cc: Likewise.
1193 * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1195 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1196 Remove duplicate dg-options directive.
1198 * testsuite/ext/profile/all.cc: Use effective target instead of
1199 -std=gnu++11. Use dg-additional-options instead of repeating options.
1201 * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1202 -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1203 instead of dg-excess-errors.
1205 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1207 * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1208 * testsuite/experimental/ratio/value.cc: Likewise.
1209 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1211 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1212 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1213 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1214 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1215 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1216 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1217 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1218 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1219 * testsuite/tr1/5_numerical_facilities/special_functions/
1220 10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1221 C++17 compatibility.
1223 * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1224 expected signatures for C++14 compatibility.
1227 * include/bits/basic_string.h (operator=(__sv_type)
1228 (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1229 (replace(size_type, size_type, __sv_type))
1230 (replace(const_iterator, const_iterator, __sv_type))
1231 (find(__sv_type, size_type), rfind(__sv_type, size_type))
1232 (compare(size_type, size_type, __sv_type)): Reformat.
1233 (_If_sv): Define helper for SFINAE constaints.
1234 (append(const _Tp&, size_type, size_type))
1235 (assign(const _Tp&, size_type, size_type))
1236 (insert(size_type, const _Tp&, size_type, size_type))
1237 (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1239 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1241 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1243 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1245 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1247 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1249 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1251 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1253 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1255 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1257 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1259 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1262 2016-08-16 Jonathan Wakely <jwakely@redhat.com>
1265 * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1266 pointers to start and end of storage.
1267 * testsuite/23_containers/vector/bool/72847.cc: New test.
1268 * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1269 _M_finish after deallocating.
1270 (vector<bool>::_M_fill_insert): Likewise.
1271 (vector<bool>::_M_insert_range): Likewise.
1272 (vector<bool>::_M_insert_aux): Likewise.
1274 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1276 Implement LWG 2744 and LWG 2754.
1277 * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1278 (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1279 (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1281 (emplace(_Args&&...)): Likewise.
1282 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1283 * include/std/utility: (__is_in_place_type_impl): New.
1284 (__is_in_place_type): Likewise.
1285 * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1287 * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1288 in_place constructor.
1289 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1290 * testsuite/20_util/any/requirements.cc: Add a test for
1291 in_place-constructing a non-default-constructible type.
1293 2016-08-15 Ville Voutilainen <ville.voutilainen@gmail.com>
1295 Add a feature macro for C++17 make_from_tuple.
1296 * include/std/tuple (__cpp_lib_make_from_tuple): New.
1297 (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1298 Qualify the call to get<>().
1299 * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1301 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1303 * src/filesystem/ops.cc: Always include ostream and
1304 ext/stdio_filebuf.h.
1305 (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1306 [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1307 sendfile fails with ENOSYS or EINVAL.
1309 2016-08-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1312 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1315 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1317 Implement C++17 make_from_tuple.
1318 * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1319 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1321 2016-08-11 Ville Voutilainen <ville.voutilainen@gmail.com>
1324 * include/bits/basic_string.h
1325 (append(__sv_type, size_type, size_type)): Turn into a template,
1326 change parameter type, constrain, add a conversion to __sv_type
1327 from the dependent parameter type.
1328 (assign(__sv_type, size_type, size_type)): Likewise.
1329 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1330 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1332 (compare(size_type, size_type,__sv_type, size_type, size_type)):
1334 * testsuite/21_strings/basic_string/lwg2758.cc: New.
1336 2016-08-06 Jonathan Wakely <jwakely@redhat.com>
1338 * doc/xml/manual/status_cxx2017.xml: Update status table.
1339 * doc/html/manual/status.html: Regenerate.
1341 * testsuite/lib/libstdc++.exp: Fix typo in comment.
1344 * include/std/functional (_Function_base::_Base_manager::_M_clone):
1345 Qualify new operator.
1346 * testsuite/20_util/function/cons/72820.cc: New test.
1348 * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1349 * doc/html/manual/status.html: Regenerate.
1350 * include/Makefile.am: Add new header.
1351 * include/Makefile.in: Regenerate.
1352 * include/bits/invoke.h: New header.
1353 (__invoke): Make constexpr. Add && to types in exception specification.
1354 * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1355 names. Include <bits/invoke.h> and use std::__invoke.
1356 * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1358 (invoke): Add && to types in exception specification.
1359 * include/std/tuple (apply, __apply_impl): Define for C++17.
1360 * testsuite/20_util/tuple/apply/1.cc: New test.
1361 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1364 2016-08-05 Jonathan Wakely <jwakely@redhat.com>
1366 * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1367 * doc/html/manual/status.html: Regenerate.
1369 * include/std/chrono (floor, ceil, round, abs): New for C++17.
1370 * testsuite/20_util/duration_cast/rounding.cc: New test.
1371 * testsuite/20_util/time_point_cast/rounding.cc: New test.
1372 * doc/xml/manual/status_cxx2017.xml: Update status table.
1373 * doc/html/manual/status.html: Regenerate.
1374 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1376 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1377 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1378 * testsuite/20_util/duration/literals/range.cc: Likewise.
1380 * include/std/functional (__callable_functor): Remove.
1381 (_Function_handler::_M_invoke): Use __invoke instead of
1382 __callable_functor or mem_fn.
1383 (function::_Callable): Use lvalue in result_of expression.
1384 (function): Remove TODO comments about allocators.
1385 * testsuite/20_util/function/cons/refqual.cc: New test.
1387 2016-08-04 Jonathan Wakely <jwakely@redhat.com>
1389 * doc/xml/manual/status_cxx2017.xml: Update status table.
1390 * include/std/functional (__inv_unwrap): Move to <type_traits>.
1391 (__invoke_impl): Remove exception specifications.
1392 (__invoke, invoke): Add exception specifications using
1393 __is_nothrow_callable.
1394 * include/std/type_traits (__inv_unwrap): Move from <functional>.
1395 (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1396 (__is_callable, __is_nothrow_callable): New traits.
1397 (is_callable, is_callable_v): New C++17 traits.
1398 (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1399 * testsuite/20_util/is_callable/requirements/
1400 explicit_instantiation.cc: New test.
1401 * testsuite/20_util/is_callable/requirements/
1402 explicit_instantiation_ext.cc: New test.
1403 * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1404 * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1406 * testsuite/20_util/is_callable/value.cc: New test.
1407 * testsuite/20_util/is_callable/value_ext.cc: New test.
1408 * testsuite/20_util/is_nothrow_callable/requirements/
1409 explicit_instantiation.cc: New test.
1410 * testsuite/20_util/is_nothrow_callable/requirements/
1411 explicit_instantiation_ext.cc: New test.
1412 * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1414 * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1416 * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1417 * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1419 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1420 * doc/html/manual/status.html: Regenerate.
1422 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1423 effective target not dg-options. Move check for feature-test macro to:
1424 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1427 * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1429 (__invoke_impl): Remove unused template parameters.
1430 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1432 * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1433 and test __invoke extension for C++11.
1435 2016-08-03 Jonathan Wakely <jwakely@redhat.com>
1437 * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1438 Define feature-test macro.
1439 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1442 * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1443 * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1444 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1445 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1446 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1448 * include/std/utility (as_const): Define.
1449 * testsuite/20_util/as_const/1.cc: New test.
1450 * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1452 * include/bits/shared_ptr.h (owner_less): Add default template
1454 * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1456 (owner_less<void>): Define specialization.
1457 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1459 * testsuite/20_util/owner_less/void.cc: New test.
1460 * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1462 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1463 Define feature-test macro.
1464 * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1465 * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1466 * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1467 (__cpp_lib_type_trait_variable_templates): Define.
1469 * include/bits/stl_function.h: Remove commented-out macro.
1470 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1471 Define feature-test macro.
1472 * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1474 * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1475 C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1477 * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1478 do #error for C++17.
1479 * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1480 of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1481 * include/tr1/bessel_function.tcc: Likewise.
1482 * include/tr1/beta_function.tcc: Likewise.
1483 * include/tr1/cmath: Likewise.
1484 * include/tr1/ell_integral.tcc: Likewise.
1485 * include/tr1/exp_integral.tcc: Likewise.
1486 * include/tr1/gamma.tcc: Likewise.
1487 * include/tr1/hypergeometric.tcc: Likewise.
1488 * include/tr1/legendre_function.tcc: Likewise.
1489 * include/tr1/modified_bessel_func.tcc: Likewise.
1490 * include/tr1/poly_hermite.tcc: Likewise.
1491 * include/tr1/poly_laguerre.tcc: Likewise.
1492 * include/tr1/riemann_zeta.tcc: Likewise.
1493 * include/tr1/special_function_util.h: Likewise.
1494 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1496 * include/std/type_traits (has_trivial_default_constructor): Remove.
1497 (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1498 * testsuite/20_util/has_trivial_copy_assign/requirements/
1499 explicit_instantiation.cc: Remove test.
1500 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1502 * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1504 * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1505 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1506 explicit_instantiation.cc: Likewise.
1507 * testsuite/20_util/has_trivial_copy_constructor/requirements/
1508 typedefs.cc: Likewise.
1509 * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1510 * testsuite/20_util/has_trivial_default_constructor/requirements/
1511 explicit_instantiation.cc: Likewise.
1512 * testsuite/20_util/has_trivial_default_constructor/requirements/
1513 typedefs.cc: Likewise.
1514 * testsuite/20_util/has_trivial_default_constructor/value.cc:
1516 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1517 Check has_trivial_default_constructor, has_trivial_copy_constructor,
1518 and has_trivial_copy_assign are not defined.
1519 * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1521 * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1522 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1523 dg-error line number.
1524 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1527 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1529 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1530 Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1531 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1533 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1535 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1537 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1539 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1541 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1544 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1547 * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1548 dg-error to relevant line.
1549 * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1551 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1553 * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1555 * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1556 options are present that aren't valid for C.
1557 * testsuite/abi/header_cxxabi.c: Likewise.
1559 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1560 check_value.cc: Do not add special functions to namespace std in TR1
1563 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1564 run for C++11 and later.
1565 * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1567 * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1568 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1569 * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1570 * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1571 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1573 * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1575 * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1576 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1578 * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1580 * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1582 * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1583 * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1584 * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1585 * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1586 * testsuite/special_functions/03_beta/compile.cc: Likewise.
1587 * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1588 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1589 * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1591 * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1592 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1593 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1594 * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1596 * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1597 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1598 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1599 * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1601 * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1602 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1603 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1604 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1606 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1607 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1608 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1609 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1610 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1612 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1613 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1614 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1615 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1617 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1618 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1619 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1620 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1621 * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1622 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1623 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1624 * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1625 * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1626 * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1627 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1628 * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1629 * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1630 * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1631 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1632 * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1633 * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1634 * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1635 * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1636 * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1637 * testsuite/special_functions/14_expint/compile.cc: Likewise.
1638 * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1639 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1640 * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1641 * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1642 * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1643 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1644 * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1645 * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1646 * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1647 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1648 * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1649 * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1650 * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1651 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1652 * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1654 * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1655 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1656 * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1657 * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1658 * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1659 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1660 * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1661 * testsuite/special_functions/20_sph_legendre/check_value.cc:
1663 * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1664 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1665 * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1666 * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1667 * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1668 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1670 * testsuite/tr1/5_numerical_facilities/special_functions/
1671 08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1673 * testsuite/tr1/5_numerical_facilities/special_functions/
1674 09_cyl_bessel_j/check_value.cc: Likewise.
1675 * testsuite/tr1/5_numerical_facilities/special_functions/
1676 10_cyl_bessel_k/check_value.cc: Likewise.
1677 * testsuite/tr1/5_numerical_facilities/special_functions/
1678 11_cyl_neumann/check_value.cc: Likewise.
1679 * testsuite/tr1/5_numerical_facilities/special_functions/
1680 21_sph_bessel/check_value.cc: Likewise.
1681 * testsuite/tr1/5_numerical_facilities/special_functions/
1682 23_sph_neumann/check_value.cc: Likewise.
1684 2016-08-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1686 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1687 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1688 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1689 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1690 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1691 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1693 2016-08-02 Jonathan Wakely <jwakely@redhat.com>
1695 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1698 * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1699 additional flags for compiling libtestc++.a objects.
1701 2016-08-01 Jonathan Wakely <jwakely@redhat.com>
1703 * include/bits/basic_string.h (data() const): Update comment.
1704 (data()): Add non-const overload for C++17.
1705 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1706 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1708 * include/bits/basic_string.tcc: Disable explicit instantiation
1709 declarations for C++17.
1711 * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1712 ignored "xfail" from { dg-do compile { xfail selector } } directive.
1713 * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1715 * testsuite/26_numerics/headers/cmath/
1716 c99_classification_macros_c++11.cc: Likewise.
1717 * testsuite/26_numerics/headers/cmath/
1718 c99_classification_macros_c++98.cc: Likewise.
1719 * testsuite/26_numerics/headers/cmath/
1720 c99_classification_macros_c.cc: Likewise.
1722 * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1723 for different construct/destroy counts in C++98 mode.
1725 * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1727 * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1729 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1732 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1733 C++98-compatible initialization for array.
1735 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1736 unused header and variable from compile-only test.
1737 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1738 * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1739 * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1740 * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1743 * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1744 Remove duplicate dg-options directive.
1746 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1747 808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1749 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1750 linker options from compile-only tests.
1751 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1754 * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1755 supported for C++11 and later.
1756 * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1757 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1759 2016-08-01 Uros Bizjak <ubizjak@gmail.com>
1761 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1763 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1765 * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1768 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1769 Ensure test is compiled with optimization.
1771 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1772 Adjust dg-prune-output pattern for error in C++98 mode.
1774 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1775 run for C++11 or later.
1777 * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1778 test to not rely on GNU extension (escaped normal characters in POSIX
1779 BRE). Enable tests for other strings which are now supported.
1781 * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1782 c++11 instead of setting -std=gnu++14.
1785 * include/std/array (get): Use positive message for static assertions.
1786 * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1787 * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1788 specialization for invalid indices, with static assertion.
1789 * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1791 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1792 dg-error to relevant line.
1793 * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1795 * testsuite/23_containers/forward_list/requirements/dr438/
1796 assign_neg.cc: Likewise.
1797 * testsuite/23_containers/forward_list/requirements/dr438/
1798 constructor_1_neg.cc: Likewise.
1799 * testsuite/23_containers/forward_list/requirements/dr438/
1800 constructor_2_neg.cc: Likewise.
1801 * testsuite/23_containers/forward_list/requirements/dr438/
1802 insert_neg.cc: Likewise.
1803 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1805 * testsuite/26_numerics/random/linear_congruential_engine/
1806 requirements/non_uint_neg.cc: Likewise.
1807 * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1808 Likewise. Also test for std::atomic_address.
1810 2016-07-31 Ville Voutilainen <ville.voutilainen@gmail.com>
1812 Add missing variable traits, fix testsuite failures.
1813 * include/bits/uses_allocator.h (uses_allocator_v): New.
1814 * include/std/functional (is_bind_expression_v, is_placeholder_v):
1816 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1817 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1818 * testsuite/20_util/duration/literals/range.cc: Likewise.
1819 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1820 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1821 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1822 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1823 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1825 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1826 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1829 2016-07-31 Jonathan Wakely <jwakely@redhat.com>
1831 * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1832 not test 128-bit types.
1833 * testsuite/20_util/is_floating_point/value.cc: Likewise.
1834 * testsuite/20_util/is_integral/value.cc: Likewise.
1835 * testsuite/20_util/is_signed/value.cc: Likewise.
1836 * testsuite/20_util/is_unsigned/value.cc: Likewise.
1837 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1838 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1839 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1841 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1844 * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1846 2016-07-29 Ville Voutilainen <ville.voutilainen@gmail.com>
1848 Implement C++17 variable templates for type traits.
1849 * include/std/chrono (treat_as_floating_point_v): New.
1850 * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1851 (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1852 (ratio_greater_equal_v): Likewise.
1853 * include/std/system_error (is_error_code_enum_v)
1854 (is_error_condition_enum_v): Likewise.
1855 * include/std/tuple (tuple_size_v): Likewise.
1856 * type_traits (conjunction_v, disjunction_v, negation_v)
1857 (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1858 (is_array_v, is_pointer_v, is_lvalue_reference_v)
1859 (is_rvalue_reference_v, is_member_object_pointer_v)
1860 (is_member_function_pointer_v, is_enum_v, is_union_v)
1861 (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1862 (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1863 (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1864 (is_trivially_copyable_v, is_standard_layout_v)
1865 (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1866 (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1867 (is_constructible_v, is_default_constructible_v)
1868 (is_copy_constructible_v, is_move_constructible_v)
1869 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1870 (is_destructible_v, is_trivially_constructible_v)
1871 (is_trivially_default_constructible_v)
1872 (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1873 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1874 (is_trivially_move_assignable_v, is_trivially_destructible_v)
1875 (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1876 (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1877 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1878 (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1879 (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1880 (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1881 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1882 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1884 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1885 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1886 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1888 2016-07-29 Andreas Schwab <schwab@linux-m68k.org>
1890 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1891 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1892 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1894 2016-07-29 Jonathan Wakely <jwakely@redhat.com>
1896 * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1897 * doc/html/manual/abi.html: Regenerate.
1899 * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1900 * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1902 * configure: Regenerate.
1903 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1905 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1906 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1907 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1908 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1910 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1911 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1912 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1914 2016-07-28 Jonathan Wakely <jwakely@redhat.com>
1916 * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1917 Adjust dg-prune-output pattern for error in C++98 mode.
1918 * testsuite/23_containers/deque/requirements/dr438/
1919 constructor_1_neg.cc: Likewise.
1920 * testsuite/23_containers/deque/requirements/dr438/
1921 constructor_2_neg.cc: Likewise.
1922 * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1924 * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1926 * testsuite/23_containers/list/requirements/dr438/
1927 constructor_1_neg.cc: Likewise.
1928 * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1930 * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1932 * testsuite/23_containers/vector/requirements/dr438/
1933 constructor_1_neg.cc: Likewise.
1934 * testsuite/23_containers/vector/requirements/dr438/
1935 constructor_2_neg.cc: Likewise.
1936 * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1939 * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1940 for different construct/destroy counts in C++98 mode.
1942 * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1943 dg-options to dg-additional-options so that default options are used.
1944 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1946 * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1947 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1949 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1950 Use dg-additional-options instead of repeating the common options.
1952 * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1953 dg-do compile directive.
1954 * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1956 * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1958 2016-07-28 Ville Voutilainen <ville.voutilainen@gmail.com>
1960 Implement std::string_view and P0254r2,
1961 Integrating std::string_view and std::string.
1962 * include/Makefile.am: Add string_view and string_view.tcc
1963 to the exported headers.
1964 * include/Makefile.in: Likewise.
1965 * include/bits/basic_string.h: Include <string_view> in C++17 mode.
1967 (basic_string(__sv_type, const _Alloc&)): Likewise.
1968 (operator=(__sv_type)): Likewise.
1969 (operator __sv_type()): Likewise.
1970 (operator+=(__sv_type)): Likewise.
1971 (append(__sv_type __sv)): Likewise.
1972 (append(__sv_type, size_type, size_type)): Likewise.
1973 (assign(__sv_type)): Likewise.
1974 (assign(__sv_type, size_type, size_type)): Likewise.
1975 (insert(size_type, __sv_type)): Likewise.
1976 (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1977 (replace(size_type, size_type, __sv_type)): Likewise.
1978 (replace(size_type, size_type, __sv_type, size_type, size_type)):
1980 (replace(const_iterator, const_iterator, __sv_type)): Likewise.
1981 (find(__sv_type, size_type)): Likewise.
1982 (rfind(__sv_type, size_type)): Likewise.
1983 (find_first_of(__sv_type, size_type)): Likewise.
1984 (find_last_of(__sv_type, size_type)): Likewise.
1985 (find_first_not_of(__sv_type, size_type)): Likewise.
1986 (find_last_not_of(__sv_type, size_type)): Likewise.
1987 (compare(__sv_type)): Likewise.
1988 (compare(size_type, size_type, __sv_type)): Likewise.
1989 (compare(size_type, size_type, __sv_type, size_type, size_type)):
1991 * include/bits/string_view.tcc: New.
1992 * include/std/string_view: Likewise.
1993 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1994 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1995 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1997 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1999 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2001 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2003 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2005 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2007 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2009 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2011 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2013 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2015 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2017 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2019 * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
2020 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
2021 * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
2022 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
2023 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
2024 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
2025 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
2026 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
2027 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
2028 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2030 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2032 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2034 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2036 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2038 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2040 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2042 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2044 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2045 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
2046 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
2047 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
2048 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2050 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2052 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2054 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2056 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2058 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2060 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2062 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2064 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2066 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2068 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2070 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2072 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2074 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2076 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2078 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2080 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2082 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2084 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2086 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2088 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2090 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2092 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2094 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2096 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2098 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2100 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2102 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2104 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2106 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2108 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2110 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2112 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2114 * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2115 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2117 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2119 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2121 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2123 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2125 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2127 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2129 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2131 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2133 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2134 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2136 2016-07-27 Jonathan Wakely <jwakely@redhat.com>
2138 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2140 2016-07-25 Georeth Chow <georeth2010@gmail.com>
2142 * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2143 _S_concat enumerator.
2144 * testsuite/ext/rope/6.cc: New test.
2146 2016-07-25 Jonathan Wakely <jwakely@redhat.com>
2148 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2149 std::mt19937, std::thread and std::atomic to simplify test.
2150 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2152 2016-07-22 Jonathan Wakely <jwakely@redhat.com>
2155 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2156 (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2157 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2158 * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2159 * testsuite/23_containers/set/allocator/71964.cc: New test.
2161 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2162 delete[] instead of delete.
2164 2016-07-21 Jonathan Wakely <jwakely@redhat.com>
2166 * include/experimental/propagate_const (propagate_const::__t): Rename
2167 to _M_t and remove comment. Qualify std::move and std::forward.
2168 * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2170 * testsuite/23_containers/vector/zero_sized_allocations.cc:
2171 Define sized deallocation function.
2172 * testsuite/util/testsuite_new_operators.h:
2173 (operator delete(void*, const std::nothrow_t&)): Define nothrow
2174 deallocation function.
2176 * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2177 reads past the end of strings.
2178 * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2180 * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2181 invalid array accesses.
2182 * testsuite/experimental/string_view/operations/compare/char/1.cc:
2183 Fix read past the end of string.
2184 * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2186 * testsuite/24_iterators/container_access.cc: Fix missing returns.
2187 * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2189 * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2190 leak) memory for arguments to placement delete.
2191 * testsuite/20_util/addressof/1.cc: Don't leak memory.
2192 * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2193 * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2196 2016-07-20 Jonathan Wakely <jwakely@redhat.com>
2198 * doc/xml/manual/intro.xml: Document DR 2684 status.
2199 * doc/html/*: Regenerate.
2201 * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2202 (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2203 (atomic_uint64_t): Define (LWG 2441).
2204 * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2206 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2208 * doc/xml/manual/intro.xml: Document DR 2441 status.
2210 * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2211 to use perfect forwarding (LWG 2328).
2212 * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2213 * doc/xml/manual/intro.xml: Document DR 2328 status.
2215 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2216 static objects for catching nullptr as pointer to member types.
2218 2016-07-18 Ville Voutilainen <ville.voutilainen@gmail.com>
2220 Clean up optional's comments.
2221 * include/std/optional: Remove incorrect section headers
2222 from comments when redundant, replace bare section
2223 headers with more descriptive comments.
2225 2016-07-15 Jonathan Wakely <jwakely@redhat.com>
2227 * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2228 * include/bits/move.h: Likewise.
2229 * include/bits/postypes.h: Likewise.
2230 * include/debug/bitset: Likewise.
2231 * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2232 * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2234 * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2235 * testsuite/util/thread/all.h: Likewise.
2237 * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2241 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2242 nullptr match handlers of pointer type.
2244 2016-07-15 Edward Smith-Rowland <3dw4rd@verizon.net>
2246 Implement C++17 P0025 clamp.
2247 * include/bits/algorithmfwd.h: Declare clamp overloads.
2248 * include/bits/stl_algo.h: Implement clamp. Feature __cpp_lib_clamp.
2249 * testsuite/25_algorithms/clamp/1.cc: New test.
2250 * testsuite/25_algorithms/clamp/2.cc: New test.
2251 * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2252 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2254 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2257 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2259 Fix the constraints for any's assignment operator template to properly
2260 reject assignment from a non-copyable lvalue.
2261 * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2262 type for is_copy_constructible,
2263 * testsuite/20_util/any/requirements.cc: Add a test for
2264 non-copyable lvalues.
2266 2016-07-14 Jonathan Wakely <jwakely@redhat.com>
2268 * include/experimental/functional: Include <parallel/algorithm> in
2271 * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2275 * include/bits/forward_list.h (forward_list): Update doxygen comments
2276 to reflect allocator propagation semantics. Remove ambiguous
2277 statements about data being lost.
2278 * include/bits/stl_deque.h (deque): Likewise.
2279 * include/bits/stl_list.h (list): Likewise.
2280 * include/bits/stl_map.h (map): Likewise.
2281 * include/bits/stl_multimap.h (multimap): Likewise.
2282 * include/bits/stl_multiset.h (multiset): Likewise.
2283 * include/bits/stl_set.h (set): Likewise.
2284 * include/bits/stl_vector.h (vector): Likewise.
2285 * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2287 * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2290 2016-07-14 Ville Voutilainen <ville.voutilainen@gmail.com>
2292 Implement P0032R3, Homogeneous interface for variant, any and optional,
2293 for the parts concerning any and optional.
2294 * include/std/any (_Storage()): Make constexpr and have it
2296 (any()): Make constexpr.
2297 (any(const any&)): Adjust.
2298 (any(any&&)): Likewise.
2299 (__any_constructible_t): New.
2300 (any(_ValueType&&)): Constrain.
2301 (any(in_place_type_t<_Tp>, _Args&&...)): New.
2302 (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2305 (operator=(const any&)): Likewise.
2306 (operator=(any&&)): Likewise.
2307 (operator=(_ValueType&&)): Constrain.
2308 (emplace(_Args&&...)): New.
2309 (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2312 (swap(any&)): Adjust.
2316 (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2317 (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2318 (make_any(_Args&&...)): Likewise.
2319 (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2320 * include/std/optional (in_place_t, in_place): Remove.
2321 (bad_optional_access): Add a comment referring to LEWG 72.
2322 (emplace(_Args&&...)): Constrain.
2324 (reset()): Likewise.
2325 (make_optional(_Args&&...)): Likewise.
2326 (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2327 * include/std/utility (in_place_tag): New.
2328 (__in_place, __in_place_type, __in_place_index): Likewise.
2329 (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2330 (in_place(__in_place*)): Likewise.
2331 (in_place(__in_place_type<_Tp>*)): Likewise.
2332 (in_place(__in_place_index<_Idx>*)): Likewise.
2333 * testsuite/20_util/any/assign/1.cc: Adjust.
2334 * testsuite/20_util/any/assign/emplace.cc: New.
2335 * testsuite/20_util/any/assign/self.cc: Adjust.
2336 * testsuite/20_util/any/cons/1.cc: Likewise.
2337 * testsuite/20_util/any/cons/in_place.cc: New.
2338 * testsuite/20_util/any/make_any.cc: Likewise.
2339 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2340 * testsuite/20_util/any/misc/swap.cc: Likewise.
2341 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2342 * testsuite/20_util/any/requirements.cc: New.
2343 * testsuite/20_util/in_place/requirements.cc: Likewise.
2344 * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2345 * testsuite/20_util/optional/in_place.cc: Likewise.
2346 * testsuite/20_util/optional/make_optional.cc: Add tests for
2347 the new overloads of make_optional.
2349 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2351 Implement P0307R2, Making Optional Greater Equal Again.
2352 * include/experimental/optional (_Has_addressof): Fix the comment.
2353 * include/std/optional (_Has_addressof): Likewise.
2354 (operator=(_Up&&)): Constrain.
2355 (operator=(const optional<_Up>&)): Likewise.
2356 (operator=(optional<_Up>&&)): Likewise.
2357 (__optional_relop_t): New.
2358 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2359 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2360 Constrain and make transparent.
2361 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2362 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2363 Constrain and make transparent.
2364 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2365 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2366 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2367 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2368 (operator!=(const optional<_Tp>&, _Tp const&)):
2369 Constrain and make transparent.
2370 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2371 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2372 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2373 (operator>(const optional<_Tp>&, const _Tp&)):
2374 Constrain and make transparent.
2375 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2376 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2377 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2378 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2379 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2380 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2381 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2382 * testsuite/20_util/optional/relops/1.cc: Likewise.
2383 * testsuite/20_util/optional/relops/2.cc: Likewise.
2384 * testsuite/20_util/optional/relops/3.cc: Likewise.
2385 * testsuite/20_util/optional/relops/4.cc: Likewise.
2386 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2387 that optional's relops are transparent and don't synthesize
2388 operators. Also test that assignment sfinaes.
2390 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2393 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2394 * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2395 Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2396 on _GLIBCXX_ASSERTIONS.
2397 * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2398 Include <unistd.h> for sleep.
2399 * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2400 * include/parallel/merge.h: Likewise.
2401 * include/parallel/multiway_merge.h: Likewise.
2402 * include/parallel/partition.h: Likewise.
2403 * include/parallel/queue.h: Likewise.
2404 * include/parallel/sort.h: Likewise.
2405 * testsuite/25_algorithms/headers/algorithm/
2406 parallel_algorithm_assert.cc: New.
2408 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2409 (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2410 Forward to different overload.
2412 * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2415 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2417 Revert "Add non-const overload of std::string::data()".
2419 2016-07-13 Ville Voutilainen <ville.voutilainen@gmail.com>
2421 Implement P0307R2, Making Optional Greater Equal Again.
2422 * include/experimental/optional (_Has_addressof): Fix the comment.
2423 * include/std/optional (_Has_addressof): Likewise.
2424 (operator=(_Up&&)): Constrain.
2425 (operator=(const optional<_Up>&)): Likewise.
2426 (operator=(optional<_Up>&&)): Likewise.
2427 (__optional_relop_t): New.
2428 (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2429 (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2430 Constrain and make transparent.
2431 (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2432 (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2433 Constrain and make transparent.
2434 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2435 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2436 (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2437 (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2438 (operator!=(const optional<_Tp>&, _Tp const&)):
2439 Constrain and make transparent.
2440 (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2441 (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2442 (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2443 (operator>(const optional<_Tp>&, const _Tp&)):
2444 Constrain and make transparent.
2445 (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2446 (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2447 (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2448 (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2449 (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2450 * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2451 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2452 * testsuite/20_util/optional/relops/1.cc: Likewise.
2453 * testsuite/20_util/optional/relops/2.cc: Likewise.
2454 * testsuite/20_util/optional/relops/3.cc: Likewise.
2455 * testsuite/20_util/optional/relops/4.cc: Likewise.
2456 * testsuite/20_util/optional/requirements.cc: Add tests to verify
2457 that optional's relops are transparent and don't synthesize
2458 operators. Also test that assignment sfinaes.
2460 2016-07-13 Jonathan Wakely <jwakely@redhat.com>
2462 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2464 (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2465 instead of _M_data().
2466 (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2468 (append(const basic_string&)): Likewise.
2469 (append(const basic_string&, size_type, size_type)): Likewise.
2470 (assign(const basic_string&, size_type, size_type)): Likewise.
2471 (insert(size_type, const basic_string&)): Likewise.
2472 (insert(size_type, const basic_string&, size_type, size_type)):
2474 (replace(size_type, size_type, const basic_string&, size_type,
2475 size_type)): Likewise.
2476 (replace(__const_iterator, __const_iterator, const basic_string&)):
2478 (c_str(), data()): Use c_str() instead of _M_data().
2479 (data()): Add non-const overload as per LWG 2391 and P0272R1.
2480 (compare(const basic_string&)): Use data() instead of _M_data().
2481 [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2482 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2483 Pass raw pointers to _S_copy.
2484 (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2486 (find(const _CharT*, size_type, size_type)): Use data instead of
2488 * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2489 * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2490 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2492 2016-07-12 Jonathan Wakely <jwakely@redhat.com>
2494 * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2495 * doc/xml/manual/intro.xml: Document DR 2458 status.
2496 * doc/html*: Regenerate.
2498 * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2499 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2500 Only include <array>.
2501 * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2503 * doc/xml/manual/intro.xml: Document LWG 2212 support.
2504 * doc/html*: Regenerate.
2506 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2507 Add testcase from LWG 2164.
2509 2016-07-11 François Dumont <fdumont@gcc.gnu.org>
2511 * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2512 to _M_realloc_insert.
2513 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2514 (_M_realloc_insert): Declare new function.
2515 (_M_emplace_back_aux): Remove definition.
2516 * include/bits/vector.tcc (emplace_back(_Args...)):
2517 Use _M_realloc_insert.
2518 (insert(const_iterator, const value_type&)): Likewise.
2519 (_M_insert_rval, _M_emplace_aux): Likewise.
2520 (_M_emplace_back_aux): Remove declaration.
2521 (_M_realloc_insert): Define.
2522 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2523 Adjust expected results for emplacing an lvalue with reallocation.
2525 2016-07-10 Ville Voutilainen <ville.voutilainen@gmail.com>
2527 Implement std::optional.
2528 * include/Makefile.am: Add optional to exported headers.
2529 * include/Makefile.in: Likewise.
2530 * include/std/optional: New.
2531 * testsuite/20_util/optional/typedefs.cc: Likewise.
2532 * testsuite/20_util/optional/relops/2.cc: Likewise.
2533 * testsuite/20_util/optional/relops/3.cc: Likewise.
2534 * testsuite/20_util/optional/relops/4.cc: Likewise.
2535 * testsuite/20_util/optional/relops/5.cc: Likewise.
2536 * testsuite/20_util/optional/relops/1.cc: Likewise.
2537 * testsuite/20_util/optional/relops/6.cc: Likewise.
2538 * testsuite/20_util/optional/nullopt.cc: Likewise.
2539 * testsuite/20_util/optional/in_place.cc: Likewise.
2540 * testsuite/20_util/optional/make_optional.cc: Likewise.
2541 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2542 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2543 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2544 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2545 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2546 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2547 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2548 * testsuite/20_util/optional/cons/default.cc: Likewise.
2549 * testsuite/20_util/optional/cons/move.cc: Likewise.
2550 * testsuite/20_util/optional/cons/value.cc: Likewise.
2551 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2552 * testsuite/20_util/optional/requirements.cc: Likewise.
2553 * testsuite/20_util/optional/observers/2.cc: Likewise.
2554 * testsuite/20_util/optional/observers/3.cc: Likewise.
2555 * testsuite/20_util/optional/observers/4.cc: Likewise.
2556 * testsuite/20_util/optional/observers/5.cc: Likewise.
2557 * testsuite/20_util/optional/observers/1.cc: Likewise.
2558 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2559 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2560 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2561 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2562 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2563 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2564 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2565 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2566 * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2567 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2568 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2569 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2570 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2571 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2572 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2573 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2574 * testsuite/20_util/optional/swap/1.cc: Likewise.
2576 2016-07-08 Jonathan Wakely <jwakely@redhat.com>
2578 * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2580 2016-07-07 Jonathan Wakely <jwakely@redhat.com>
2582 * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2583 * doc/html/*: Regenerate.
2585 2016-07-07 Ville Voutilainen <ville.voutilainen@gmail.com>
2588 * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2589 * include/Makefile.in: Likewise.
2590 * include/std/any: New.
2591 * testsuite/20_util/any/assign/1.cc: Likewise.
2592 * testsuite/20_util/any/assign/2.cc: Likewise.
2593 * testsuite/20_util/any/assign/self.cc: Likewise.
2594 * testsuite/20_util/any/cons/1.cc: Likewise.
2595 * testsuite/20_util/any/cons/2.cc: Likewise.
2596 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2597 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2598 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2599 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2600 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2601 * testsuite/20_util/any/misc/swap.cc: Likewise.
2602 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2603 * testsuite/20_util/any/observers/type.cc: Likewise.
2604 * testsuite/20_util/any/typedefs.cc: Likewise.
2606 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2608 Add a new header for diagnosing the use of C++17 facilities
2610 * include/bits/c++17_warning.h: New.
2612 2016-07-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2614 Implement LWG 2451, optional<T> should 'forward' T's
2615 implicit conversions.
2616 * include/experimental/optional (__is_optional_impl, __is_optional):
2618 (optional()): Make constexpr and default.
2619 (optional(_Up&&), optional(const optional<_Up>&),
2620 optional(optional<_Up>&& __t): New.
2621 (operator=(_Up&&)): Constrain.
2622 (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2623 * testsuite/experimental/optional/cons/value.cc:
2624 Add tests for the functionality added by LWG 2451.
2625 * testsuite/experimental/optional/cons/value_neg.cc: New.
2627 2016-07-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2630 any_cast doesn't work with rvalue reference targets and cannot
2631 move with a value target.
2632 * include/experimental/any (any(_ValueType&&)): Constrain and
2633 add an overload that doesn't forward.
2634 (any_cast(any&&)): Constrain and add an overload that moves.
2635 * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2636 the functionality added by LWG 2509.
2638 2016-07-04 François Dumont <fdumont@gcc.gnu.org>
2640 * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2642 * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2645 2016-07-04 Jonathan Wakely <jwakely@redhat.com>
2647 * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2648 Define inline. Forward to _M_emplace_aux.
2649 (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2650 (_M_insert_rval, _M_emplace_aux): Declare new functions.
2651 (_Temporary_value): New RAII type using allocator to construct/destroy.
2652 (_S_insert_aux_assign): Remove.
2653 (_M_insert_aux): Make non-variadic.
2654 * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2655 Use _Temporary_value.
2656 (emplace(const_iterator, _Args&&...)): Remove definition.
2657 (_M_insert_rval, _M_emplace_aux): Define.
2658 (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2659 (_M_fill_insert): Use _Temporary_value.
2660 * testsuite/23_containers/vector/allocator/construction.cc: New test.
2661 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2662 Adjust expected results for emplacing an lvalue with reallocation.
2663 * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2664 expected results to account for construction/destruction of temporary
2666 * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2668 2016-07-04 Ville Voutilainen <ville.voutilainen@gmail.com>
2671 * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2672 Call remove_all for children of a directory.
2673 * testsuite/experimental/filesystem/operations/create_directories.cc:
2676 2016-07-02 François Dumont <fdumont@gcc.gnu.org>
2678 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2679 dg-error line numbers.
2680 * testsuite/23_containers/array/tuple_interface/
2681 tuple_element_debug_neg.cc: Likewise.
2682 * testsuite/25_algorithms/lexicographical_compare/debug/
2683 irreflexive_neg.cc: Remove.
2685 2016-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2687 * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2688 than specific target.
2690 2016-06-27 François Dumont <fdumont@gcc.gnu.org>
2693 * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2696 2016-06-23 François Dumont <fdumont@gcc.gnu.org>
2698 * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2701 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2703 * configure.host: Remove mep-* support.
2705 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2707 * configure: Regenerate.
2708 * configure.host: Remove support for knetbsd.
2709 * crossconfig.m4: Likewise.
2711 2016-06-20 François Dumont <fdumont@gcc.gnu.org>
2714 * include/tr1/hashtable_policy.h
2715 (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2716 dereferenceable to avoid check on lower_bound result.
2717 (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2718 (_Prime_rehash_policy::_M_need_rehash): Likewise.
2719 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2720 Always return a value greater than input value. Set _M_next_resize to
2721 max value when reaching highest prime number.
2722 * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2724 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2725 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2727 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2728 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2731 2016-06-17 Jonathan Wakely <jwakely@redhat.com>
2734 * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2735 Remove irreflexive checks.
2736 * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2737 binary_search): Likewise.
2738 * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2739 * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2740 * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2741 * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2742 * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2743 Add constructor from array.
2745 2016-06-16 François Dumont <fdumont@gcc.gnu.org>
2747 * include/debug/debug.h
2748 (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2749 (__glibcxx_requires_subscript): Move...
2750 * include/debug/assertions.h: ...here and add __builtin_expect.
2751 (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2752 * include/bits/stl_deque.h
2753 (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2754 (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2755 (std::deque<>::back()): Likewise.
2756 (std::deque<>::pop_front()): Likewise.
2757 (std::deque<>::pop_back()): Likewise.
2758 (std::deque<>::swap(deque&)): Add allocator check.
2759 * include/bits/stl_vector.h
2760 (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2761 (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2762 (std::vector<>::back()): Likewise.
2763 (std::vector<>::pop_back()): Likewise.
2764 (std::vector<>::swap(vector&)): Add allocator check.
2766 2016-06-16 Daniel Kruegler <daniel.kruegler@gmail.com>
2768 Provide swappable traits (p0185r1)
2769 * include/std/type_traits (is_swappable, is_nothrow_swappable,
2770 is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2771 is_nothrow_swappable_v, is_swappable_with_v,
2772 is_nothrow_swappable_with_v): New.
2773 * include/bits/stl_pair.h: Use it as per p0185r1.
2774 * include/bits/stl_queue.h: Likewise.
2775 * include/bits/stl_stack.h: Likewise.
2776 * include/bits/unique_ptr.h: Likewise.
2777 * include/std/tuple: Likewise.
2778 * include/std/array: Likewise. Fix zero-size member swap.
2779 * include/bits/hashtable.h: Use __and_.
2780 * testsuite/20_util/is_nothrow_swappable/requirements/
2781 explicit_instantiation.cc: Change test options to std=gnu++17.
2782 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2784 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2785 * testsuite/20_util/is_swappable/requirements/
2786 explicit_instantiation.cc: Likewise.
2787 * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2788 * testsuite/20_util/is_swappable/value.cc: Likewise.
2789 * testsuite/20_util/is_nothrow_swappable/requirements/
2790 explicit_instantiation_ext.cc: New.
2791 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2793 * testsuite/20_util/is_nothrow_swappable/value.h: New.
2794 * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2795 * testsuite/20_util/is_nothrow_swappable_with/requirements/
2796 explicit_instantiation.cc: New.
2797 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2799 * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2800 * testsuite/20_util/is_swappable/requirements/
2801 explicit_instantiation_ext.cc: New.
2802 * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2803 * testsuite/20_util/is_swappable/value.h: New.
2804 * testsuite/20_util/is_swappable/value_ext.cc: New.
2805 * testsuite/20_util/is_swappable_with/requirements/
2806 explicit_instantiation.cc: New.
2807 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2808 * testsuite/20_util/is_swappable_with/value.cc: New.
2809 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2810 dg-error line numbers.
2811 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2814 2016-06-16 Jonathan Wakely <jwakely@redhat.com>
2816 * include/std/array: Remove trailing whitespace.
2817 * include/std/atomic: Likewise.
2818 * include/std/bitset: Likewise.
2819 * include/std/chrono: Likewise.
2820 * include/std/complex: Likewise.
2821 * include/std/condition_variable: Likewise.
2822 * include/std/fstream: Likewise.
2823 * include/std/functional: Likewise.
2824 * include/std/future: Likewise.
2825 * include/std/iomanip: Likewise.
2826 * include/std/iosfwd: Likewise.
2827 * include/std/istream: Likewise.
2828 * include/std/limits: Likewise.
2829 * include/std/ratio: Likewise.
2830 * include/std/scoped_allocator: Likewise.
2831 * include/std/sstream: Likewise.
2832 * include/std/stdexcept: Likewise.
2833 * include/std/string: Likewise.
2834 * include/std/system_error: Likewise.
2835 * include/std/thread: Likewise.
2836 * include/std/tuple: Likewise.
2837 * include/std/type_traits: Likewise.
2838 * include/std/utility: Likewise.
2839 * include/std/valarray: Likewise.
2840 * include/std/vector: Likewise.
2842 * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2843 new overloaded functions.
2844 * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2845 to avoid creating a redundant temporary.
2846 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2849 2016-06-15 François Dumont <fdumont@gcc.gnu.org>
2851 * include/bits/stl_deque.h
2852 (std::deque<>::operator=): Call _M_assign_aux.
2853 (std::deque<>::assign(initializer_list<>)): Likewise.
2854 (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2855 (std::deque<>::insert(const_iterator, initializer_list<>)):
2856 Call _M_range_insert_aux.
2857 (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2859 (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2860 (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2861 * include/bits/deque.tcc
2862 (std::deque<>::operator=): Call _M_range_insert_aux.
2863 (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2865 * include/bits/stl_vector.h
2866 (std::vector<>::operator=): Call _M_assign_aux.
2867 (std::vector<>::assign(initializer_list<>)): Likewise.
2868 (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2869 (std::vector<>::insert(const_iterator, initializer_list<>)):
2870 Call _M_range_insert.
2871 * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2873 2016-06-07 François Dumont <fdumont@gcc.gnu.org>
2875 * include/std/tuple (_Head_base<>): Default specialization condition at
2878 2016-06-06 Ville Voutilainen <ville.voutilainen@gmail.com>
2880 Support allocators in tuples of zero size.
2881 * include/std/tuple (tuple<>::tuple(),
2882 tuple<>::tuple(allocator_arg_t, const _Alloc&),
2883 tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2884 * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2886 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
2889 * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2890 Add or remove permissions according to perms argument.
2891 * testsuite/experimental/filesystem/operations/permissions.cc: New
2894 2016-06-05 Ville Voutilainen <ville.voutilainen@gmail.com>
2896 Protect allocator-overloads of tuple-from-tuple constructors
2897 from cases that would create dangling references.
2898 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2899 const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2900 tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2901 * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2903 2016-05-29 Gerald Pfeifer <gerald@pfeifer.com>
2905 * doc/xml/manual/backwards_compatibility.xml: Adjust
2906 lists.debian.org link to https.
2907 * doc/html/manual/backwards.html: Regenerate.
2909 2016-05-27 Jonathan Wakely <jwakely@redhat.com>
2911 * doc/xml/manual/abi.xml: Adjust URL to use https.
2912 * doc/html/manual/*: Regenerate.
2914 2016-05-27 Ville Voutilainen <ville.voutilainen@gmail.com>
2917 * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2918 * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2919 check for _NotSameTuple.
2920 * include/std/tuple (_TMCT): New.
2921 * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2922 * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2923 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2924 const tuple<_UElements...>&)): Likewise.
2925 * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2926 tuple<_UElements...>&&)): Likewise.
2927 * testsuite/20_util/tuple/cons/66338.cc: New.
2929 2016-05-25 Jonathan Wakely <jwakely@redhat.com>
2931 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2932 * configure: Regenerate.
2933 * config.h.in: Regenerate.
2935 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2936 * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2937 Remove const qualification on function. Replace
2938 _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2939 (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2940 (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2942 2016-05-24 François Dumont <fdumont@gcc.gnu.org>
2944 * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2945 * include/bits/hashtable_policy.h
2946 (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2947 having load factor management.
2948 (_Mask_range_hashing): New.
2950 (_Power2_rehash_policy): New.
2951 (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2952 partial specializations only depend on whether iterators are constant
2954 * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2955 test new hash policy.
2956 * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2958 * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2960 * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2962 * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2964 * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2966 * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
2967 using the new hash policy.
2968 * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
2970 2016-05-24 Jonathan Wakely <jwakely@redhat.com>
2972 * include/bits/stl_queue.h (priority_queue::value_compare): Define.
2974 2016-05-23 François Dumont <fdumont@gcc.gnu.org>
2976 * include/debug/safe_iterator.h
2977 (_Safe_iterator<>::operator->()): Implement using underlying iterator
2979 * include/debug/safe_local_iterator.h
2980 (_Safe_local_iterator<>::operator->()): Likewise.
2982 2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
2984 * testsuite/experimental/memory_resource/1.cc: Add required argument
2985 to dg-require-atomic-builtins.
2987 2016-05-13 Jonathan Wakely <jwakely@redhat.com>
2990 * include/debug/bitset: Add #pragma GCC system_header.
2991 * include/debug/deque: Likewise.
2992 * include/debug/list: Likewise.
2993 * include/debug/map: Likewise.
2994 * include/debug/set: Likewise.
2995 * include/debug/string: Likewise.
2996 * include/debug/unordered_map: Likewise.
2997 * include/debug/unordered_set: Likewise.
2998 * include/debug/vector: Likewise.
2999 * include/debug/functions.h: Adjust whitespace.
3001 2016-05-12 Jonathan Wakely <jwakely@redhat.com>
3004 * testsuite/experimental/memory_resource/1.cc: Require atomics.
3006 2016-05-11 Jonathan Wakely <jwakely@redhat.com>
3009 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
3010 exception constructors with __sso_string parameters.
3012 2016-05-10 Jonathan Wakely <jwakely@redhat.com>
3014 * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
3015 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3016 Test begin and end functions.
3017 * testsuite/experimental/filesystem/iterators/
3018 recursive_directory_iterator.cc: Likewise.
3021 * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
3022 * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
3024 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3025 Overload operator* to move from rvalues.
3028 * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3029 * testsuite/experimental/filesystem/operations/create_directory.cc:
3033 * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
3034 base path to exception.
3035 * testsuite/experimental/filesystem/operations/canonical.cc: Test
3036 paths contained in exception.
3038 * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
3042 * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3044 (directory_iterator::operator++(int)): Return proxy.
3045 (recursive_directory_iterator::operator++(int)): Likewise.
3046 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
3047 Test post-increment.
3048 * testsuite/experimental/filesystem/iterators/
3049 recursive_directory_iterator.cc: Likewise.
3051 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3054 * testsuite/experimental/filesystem/iterators/
3055 recursive_directory_iterator.cc: Fix test02 to not call member
3056 functions on invalid iterator, and use VERIFY not assert.
3058 2016-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
3060 Avoid endless run-time recursion for copying single-element
3061 tuples where the element type is by-value constructible
3063 * include/std/tuple (_NotSameTuple): New.
3064 * include/std/tuple (tuple(_UElements&&...): Use it.
3065 * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
3067 2016-05-09 Jonathan Wakely <jwakely@redhat.com>
3070 * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
3071 Initialize scalar member variables in default constructor.
3072 * testsuite/experimental/filesystem/iterators/
3073 recursive_directory_iterator.cc: Test default construction.
3075 2016-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3077 * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
3079 2016-05-05 Jonathan Wakely <jwakely@redhat.com>
3081 * testsuite/experimental/filesystem/path/native/string.cc: Add
3082 dg-require-filesystem-ts directive.
3084 2016-05-04 Jonathan Wakely <jwakely@redhat.com>
3087 * include/experimental/memory_resource
3088 (__resource_adaptor_imp::do_allocate): Do not default-construct
3090 (__resource_adaptor_imp::do_deallocate): Likewise. Use
3091 allocator_traits to get pointer type.
3092 (__null_memory_resource::do_allocate): Remove unused parameters.
3093 (__null_memory_resource::do_deallocate): Likewise.
3094 (__null_memory_resource::do_is_equal): Likewise. Add return statement.
3095 * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
3096 * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
3098 * testsuite/experimental/memory_resource/1.cc: Here.
3099 * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
3100 * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
3102 2016-04-29 Chris Gregory <czipperz@gmail.com>
3104 * config/*: Remove trailing whitespace.
3106 * testsuite/tr1/*: Likewise.
3107 * testsuite/util/*: Likewise.
3109 2016-04-28 Jonathan Wakely <jwakely@redhat.com>
3112 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3114 * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3116 * include/std/atomic (atomic<_Tp>): Likewise.
3117 * include/std/shared_mutex (shared_lock): Likewise.
3118 * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3119 * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3120 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3121 * testsuite/29_atomics/atomic/70766.cc: New test.
3122 * testsuite/30_threads/shared_lock/70766.cc: New test.
3124 * include/bits/hashtable_policy.h (__detail::_Insert_base,
3125 __detail::_Insert): Improve comments.
3127 2016-04-27 Jonathan Wakely <jwakely@redhat.com>
3130 * include/std/limits: Update comments about DRs.
3131 (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3132 numeric_limits<const volatile _Tp>): Define unconditionally.
3134 2016-04-24 Jonathan Wakely <jwakely@redhat.com>
3137 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3138 static counter to return a different path on every call.
3140 2016-04-22 Tim Shen <timshen@google.com>
3143 * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3144 Fix the match_not_bow and match_not_eow behavior.
3145 * testsuite/28_regex/regression.cc: Add testcase.
3147 2016-04-20 Jonathan Wakely <jwakely@redhat.com>
3150 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3151 __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3153 2016-04-19 Jonathan Wakely <jwakely@redhat.com>
3156 * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3157 Override endianness bit in mode.
3158 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3159 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3160 that little_endian mode is ignored.
3161 * testsuite/experimental/filesystem/path/native/string.cc: New test.
3164 * src/filesystem/ops.cc (close_fd): New function.
3165 (do_copy_file): Set permissions before copying file contents. Check
3166 result of closing file descriptors. Don't copy streambuf when file
3168 (copy(const path&, const path&, copy_options, error_code&)): Use
3169 lstat for source file when copy_symlinks is set.
3170 * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3172 * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3173 operator~ operator&=, operator|=, operator^=): Add noexcept to
3174 overloaded operators for copy_options, perms and directory_options.
3175 * src/filesystem/ops.cc (make_file_type, make_file_status,
3176 is_not_found_errno, file_time): Add noexcept.
3178 2016-04-19 Edward Smith-Rowland <3dw4rd@verizon.net>
3180 * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3182 2016-04-18 Jonathan Wakely <jwakely@redhat.com>
3185 * include/bits/random.h: Reword static assertion messages to state
3186 positive conditions.
3187 * include/bits/random.tcc: Likewise.
3188 * include/bits/uniform_int_dist.h: Likewise.
3189 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3192 * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3194 * config/cpu/sh/atomicity.h: Fix typo in comment.
3197 * include/std/thread (operator<, operator==): Move definitions to
3199 * testsuite/30_threads/thread/id/70294.cc: New test.
3201 * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3202 -Wno-pedantic to dg-options.
3203 * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3204 * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3206 * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3207 Remove extra semi-colon.
3208 * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3209 Always supply second argument to static_assert.
3210 * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3212 * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3214 * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3215 * testsuite/29_atomics/atomic/60695.cc: Likewise.
3216 * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3217 alignof when operand is an object not a type.
3218 * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3219 * testsuite/decimal/make-decimal.cc: Likewise.
3220 * testsuite/experimental/type_traits/value.cc: Always supply second
3221 argument to static_assert.
3222 * testsuite/util/testsuite_common_types.h: Use __extension__ for
3225 * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3227 * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3228 * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3229 * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3230 Likewise. Add licence and change to compile-only test.
3232 * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3234 * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3236 * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3239 2016-04-17 Edward Smith-Rowland <3dw4rd@verizon.net>
3241 * include/bits/specfun.h: Trivial comment misspelling.
3243 2016-04-14 Jason Merrill <jason@redhat.com>
3245 Revert Jonathan's empty ABI change from yesterday.
3247 2016-04-13 Martin Sebor <msebor@redhat.com>
3250 * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3251 upper bound is positive.
3253 2016-04-13 Jonathan Wakely <jwakely@redhat.com>
3255 * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3256 _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3257 * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3258 of functions taking empty structs by value. Add a template parameter
3259 to overloads without hints. Rename overloads with hints to
3261 (_Hashtable::_M_erase(true_type, const_iterator),
3262 _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3263 by reordering parameters.
3264 * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3265 _M_emplace_hint instead of _M_emplace.
3266 * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3267 shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3268 * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3269 __shared_ptr): Likewise.
3270 * include/bits/stl_algo.h (replace_if): Likewise.
3271 * include/bits/stl_pair.h (piecewise_construct_t,
3272 piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3273 * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3274 __uses_alloc0): Likewise.
3275 * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3276 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3277 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3278 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3279 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3280 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3281 * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3283 2016-04-12 Edward Smith-Rowland <3dw4rd@verizon.net>
3285 Document C++17/TR29124 C++ Special Math Functions.
3286 * include/bits/specfun.h: Add Doxygen markup.
3288 2016-04-07 Jonathan Wakely <jwakely@redhat.com>
3290 * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3292 2016-04-06 Eric Botcazou <ebotcazou@adacore.com>
3294 * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3295 * src/Makefile.in: Regenerate.
3297 2016-04-05 Jonathan Wakely <jwakely@redhat.com>
3300 * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3301 __atomic_fetch_add for bool.
3302 * configure: Regenerate.
3304 * testsuite/30_threads/thread/70503.cc: Require -static to work.
3307 * src/c++11/thread.cc (execute_native_thread_routine,
3308 execute_native_thread_routine_compat): Give internal linkage.
3309 * testsuite/30_threads/thread/70503.cc: New test.
3311 2016-04-05 Ville Voutilainen <ville.voutilainen@gmail.com>
3314 * include/bits/stl_pair.h (_ConstructiblePair,
3315 _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3316 _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3317 for same-type cases.
3318 * testsuite/20_util/pair/70437.cc: New.
3320 2016-03-24 Jonathan Wakely <jwakely@redhat.com>
3323 * config/abi/pre/gnu.ver: Add new symbol.
3324 * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3325 * testsuite/18_support/free_eh_pool.cc: New test.
3327 2016-03-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3329 * include/Makefile.am (install-freestanding-headers): Add
3330 concept_check.h and move.h to the installed headers.
3331 * include/Makefile.in: Regenerated.
3332 * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3333 freestanding implementations.
3334 * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3335 that this macro has no effect for freestanding implementations.
3336 * doc/html/manual/using_macros.html: Likewise.
3338 2016-02-24 Jonathan Wakely <jwakely@redhat.com>
3341 * include/experimental/tuple (__apply_impl): Qualify get and forward.
3343 2016-02-23 Jonathan Wakely <jwakely@redhat.com>
3345 * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3346 * doc/html/*: Regenerate.
3349 * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3350 exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3351 llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3352 nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3353 trunc) [__cplusplus >= 201103L]: Import from namespace std.
3354 (fabs) [__cplusplus < 201103L]: Import from namespace std.
3355 * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3357 * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3358 namespace before including TR1 headers.
3359 * testsuite/tr1/headers/c++200x/math.cc: New test.
3361 2016-02-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3364 * include/c_global/cstdarg: Undefine __need___va_list.
3365 * include/c_global/cstddef: Undefine all kinds of __need_*.
3367 2016-02-16 Tim Shen <timshen@google.com>
3370 * include/bits/regex_scanner.h: Add different special character
3371 sets for grep and egrep regex.
3372 * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3373 * testsuite/28_regex/regression.cc: Add new testcase.
3375 2016-02-08 Jonathan Wakely <jwakely@redhat.com>
3377 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3378 added 'constexpr' in previous commit.
3379 * configure: Regenerate.
3382 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3383 checks for all targets except *-*-solaris2.* and ensure we find the
3384 libc math.h header not our own.
3385 * configure: Regenerate.
3387 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
3389 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3390 New file. Copied over from s390-linux-gnu.
3392 2016-02-04 Jonathan Wakely <jwakely@redhat.com>
3395 * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3396 with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3397 * config.h.in: Regenerate.
3398 * configure: Regenerate.
3399 * testsuite/21_strings/c_strings/char/69626.cc: New.
3401 * doc/html/index.html: Regenerate.
3403 * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3404 * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3405 * doc/html/*: Regenerate.
3407 2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
3410 * include/c_compatibility/math.h: Move header guards.
3411 * include/c_compatibility/stdlib.h: Likewise.
3413 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
3416 * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3418 2016-01-28 John David Anglin <danglin@gcc.gnu.org>
3421 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3422 isinf and isnan functions into two independent checks. Check on hpux.
3423 * config.h.in: Regenerate.
3424 * configure: Regenerate.
3425 * include/c_global/cmath (isinf(double), isnan(double)): Use
3426 _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3429 2016-01-27 Jakub Jelinek <jakub@redhat.com>
3431 * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3433 2016-01-27 Jonathan Wakely <jwakely@redhat.com>
3436 * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3437 -ffp-contract=off, and -ffloat-store to disable excess precision.
3438 * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3441 2016-01-26 Jonathan Wakely <jwakely@redhat.com>
3444 * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3445 random_access_iterator_tag>): Check is_move_assignable when moving.
3446 (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3448 * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3449 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3450 * testsuite/25_algorithms/move/69478.cc: New.
3451 * testsuite/25_algorithms/move_backward/69478.cc: new.
3453 2016-01-26 Andris Pavenis <andris.pavenis@iki.fi>
3455 * include/c_compatibility/stdlib.h: Include wide character related
3456 definitions only when they are available in cstdlib.
3458 2016-01-25 Jonathan Wakely <jwakely@redhat.com>
3461 * include/Makefile.am: Add new header.
3462 * include/Makefile.in: Regenerate.
3463 * include/bits/random.h (uniform_int_distribution): Move to
3464 bits/uniform_int_dist.h.
3465 * include/bits/random.tcc (uniform_int_distribution::operator(),
3466 uniform_int_distribution::__generate_impl): Likewise.
3467 * include/bits/uniform_int_dist.h: New header.
3468 * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3469 <bits/uniform_int_dist.h> instead of <random>.
3470 * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3471 move_iterators/1.cc: Include correct header for uninitialized_copy.
3472 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3473 move_iterators/1.cc: Likewise.
3474 * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3476 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3478 2016-01-23 John David Anglin <danglin@gcc.gnu.org>
3481 * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3483 2016-01-22 Edward Smith-Rowland <3dw4rd@verizon.net>
3485 TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3486 * include/c_compatibility/math.h: Import the TR29124 functions
3487 into the global namespace.
3488 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3489 xfail and make compile-only.
3490 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3491 * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3492 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3493 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3494 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3495 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3496 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3497 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3498 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3499 * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3500 * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3501 * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3502 * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3503 * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3504 * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3505 * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3506 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3507 * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3508 * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3509 * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3511 2016-01-22 Jonathan Wakely <jwakely@redhat.com>
3514 * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3515 define result_type for types which can be safely used with valarrays.
3516 * testsuite/26_numerics/valarray/69116.cc: New.
3519 * config/os/gnu-linux/os_defines.h: Define
3520 _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3521 * include/c_global/cmath (isinf, isnan): Check it.
3522 * doc/xml/manual/internals.xml: Document it.
3523 * doc/html/*: Regenerate.
3525 2016-01-21 Jonathan Wakely <jwakely@redhat.com>
3528 * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3529 * include/ext/type_traits.h: Likewise.
3530 * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3531 for presence of C headers.
3532 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3533 dg-error line number.
3534 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3535 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3536 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3538 2016-01-20 Torvald Riegel <triegel@redhat.com>
3541 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3543 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
3546 * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3547 copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3548 lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3549 nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3550 tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3551 Add using declarations.
3552 * testsuite/26_numerics/headers/cmath/60401.cc: New.
3555 * include/c_global/ccomplex: Ensure C++ language linkage.
3556 * include/c_global/cmath: Likewise.
3557 * include/c_global/cstdlib: Likewise.
3558 * include/c_global/ctgmath: Likewise.
3559 * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3561 2016-01-19 Jonathan Wakely <jwakely@redhat.com>
3565 * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3566 --enable-cheaders=c_global configs.
3567 * include/Makefile.in: Regenerate.
3568 * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3569 test and allow inclusion from C files.
3570 * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3571 (at_quick_exit, quick_exit): Add using directives.
3572 * include/c_global/cmath: Use #include_next for math.h.
3573 * include/c_global/cstdlib: Use #include_next for stdlib.h.
3574 * testsuite/26_numerics/headers/cmath/14608.cc: New.
3575 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3576 Remove xfail for most targets.
3577 * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3579 2016-01-18 Torvald Riegel <triegel@redhat.com>
3581 * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3582 (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3583 and move after its definition.
3584 * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3585 * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3586 __GXX_WEAK__, and only provide transactional clones if
3587 _GLIBCXX_USE_WEAK_REF is true. Don't provide stubs of libitm
3590 2016-01-18 Jonathan Wakely <jwakely@redhat.com>
3593 * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3596 * include/std/functional (_Function_base::_M_not_empty_function):
3597 Change overloads for pointers to take arguments by value.
3598 * testsuite/20_util/function/cons/57465.cc: Add tests for
3599 pointer-to-member cases.
3602 * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3603 Use macros for exception handling and fix unused parameter warning.
3605 2016-01-17 John David Anglin <danglin@gcc.gnu.org>
3608 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3610 2016-01-17 Torvald Riegel <triegel@redhat.com>
3612 * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3614 2016-01-16 H.J. Lu <hongjiu.lu@intel.com>
3616 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3619 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3622 * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3623 static assertion that type is constructible from the arguments.
3624 * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3625 * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3626 * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3629 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3630 and isnan on AIX. Quote variables.
3631 * configure: Regenerate.
3633 2016-01-15 Torvald Riegel <triegel@redhat.com>
3635 * include/bits/basic_string.h (basic_string): Declare friends.
3636 * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3637 _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3638 * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3639 length_error, out_of_range, runtime_error, range_error,
3640 underflow_error, overflow_error): Declare members as transaction-safe.
3641 (logic_error, runtime_error): Declare friend functions.
3642 * libsupc++/exception (exception, bad_exception): Declare members as
3644 * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3645 transaction-safe members of exceptions and helper functions.
3646 * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3647 * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3648 (CXXABI_1.3.10): New.
3649 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3650 (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3651 * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3652 * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3653 * include/Makefile.in: Regenerate.
3654 * config.h.in: Regenerate.
3655 * configure: Regenerate.
3656 * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3658 2016-01-15 Steve Ellcey <sellcey@imgtec.com>
3660 * include/ext/random.tcc: Use __builtin_isfinite instead of
3663 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
3665 * include/bits/std_mutex.h: Fix Doxygen @file name.
3667 2016-01-14 Edward Smith-Rowland <3dw4rd@verizon.net>
3668 Jonathan Wakely <jwakely@redhat.com>
3669 Florian Goth <CaptainSifff@gmx.de>
3671 Implement TR29124 C++ special Math Functions.
3672 * include/Makefile.am: Add new headers.
3673 * include/Makefile.in: Regenerate.
3674 * include/bits/specfun.h: New.
3675 * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3676 * include/tr1/bessel_function.tcc: Ditto.
3677 * include/tr1/beta_function.tcc: Ditto.
3678 * include/tr1/cmath: Ditto.
3679 * include/tr1/ell_integral.tcc: Ditto.
3680 * include/tr1/exp_integral.tcc: Ditto.
3681 * include/tr1/gamma.tcc: Ditto.
3682 * include/tr1/hypergeometric.tcc: Ditto.
3683 * include/tr1/legendre_function.tcc: Ditto.
3684 * include/tr1/modified_bessel_func.tcc: Ditto.
3685 * include/tr1/poly_hermite.tcc: Ditto.
3686 * include/tr1/poly_laguerre.tcc: Ditto.
3687 * include/tr1/riemann_zeta.tcc: Ditto.
3688 * include/tr1/special_function_util.h: Ditto.
3689 * testsuite/ext/special_functions/conf_hyperg: New.
3690 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3691 * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3692 * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3693 * testsuite/ext/special_functions/hyperg: New.
3694 * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3695 * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3696 * testsuite/ext/special_functions/hyperg/compile.cc: New.
3697 * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3698 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3699 * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3700 * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3701 * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3702 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3703 * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3704 * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3705 * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3706 * testsuite/special_functions/03_beta/check_nan.cc: New.
3707 * testsuite/special_functions/03_beta/check_value.cc: New.
3708 * testsuite/special_functions/03_beta/compile.cc: New.
3709 * testsuite/special_functions/03_beta/compile_2.cc: New.
3710 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3711 * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3712 * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3713 * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3714 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3715 * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3716 * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3717 * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3718 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3719 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3720 * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3721 * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3722 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3723 * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3724 * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3725 * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3726 * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3727 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3728 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3729 * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3730 * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3731 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3732 * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3733 * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3734 * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3735 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3736 * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3737 * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3738 * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3739 * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3740 * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3741 * testsuite/special_functions/11_ellint_1/compile.cc: New.
3742 * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3743 * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3744 * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3745 * testsuite/special_functions/12_ellint_2/compile.cc: New.
3746 * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3747 * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3748 * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3749 * testsuite/special_functions/13_ellint_3/compile.cc: New.
3750 * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3751 * testsuite/special_functions/14_expint/check_nan.cc: New.
3752 * testsuite/special_functions/14_expint/check_value.cc: New.
3753 * testsuite/special_functions/14_expint/compile.cc: New.
3754 * testsuite/special_functions/14_expint/compile_2.cc: New.
3755 * testsuite/special_functions/15_hermite/check_nan.cc: New.
3756 * testsuite/special_functions/15_hermite/check_value.cc: New.
3757 * testsuite/special_functions/15_hermite/compile.cc: New.
3758 * testsuite/special_functions/15_hermite/compile_2.cc: New.
3759 * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3760 * testsuite/special_functions/16_laguerre/check_value.cc: New.
3761 * testsuite/special_functions/16_laguerre/compile.cc: New.
3762 * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3763 * testsuite/special_functions/17_legendre/check_nan.cc: New.
3764 * testsuite/special_functions/17_legendre/check_value.cc: New.
3765 * testsuite/special_functions/17_legendre/compile.cc: New.
3766 * testsuite/special_functions/17_legendre/compile_2.cc: New.
3767 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3768 * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3769 * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3770 * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3771 * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3772 * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3773 * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3774 * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3775 * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3776 * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3777 * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3778 * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3779 * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3780 * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3781 * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3782 * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3783 * testsuite/util/specfun_testcase.h: New.
3784 * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3785 * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3786 * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3787 * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3788 * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3789 * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3790 * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3792 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
3795 * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3796 and isnan functions.
3797 * config.h.in: Regenerate.
3798 * configure: Regenerate.
3799 * include/c_global/cmath (isinf(double), isnan(double))
3800 [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3801 * testsuite/26_numerics/headers/cmath/48891.cc: New.
3803 2016-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3806 * configure.host (abi_baseline_pair): Use separate baseline for
3807 Solaris 11+ and Solaris 10 with gld.
3808 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3809 * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3810 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3812 2016-01-12 Daniel Kruegler <daniel.kruegler@gmail.com>
3815 * include/std/type_traits: Following N4511, reimplement __is_swappable
3816 and __is_nothrow_swappable. Move __is_swappable to namespace std,
3817 adjust callers. Use __is_nothrow_swappable in swap.
3818 * include/bits/move.h: Use __is_nothrow_swappable in swap.
3819 * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3820 __is_swappable related tests.
3821 * testsuite/20_util/is_swappable/value.cc: New.
3822 * testsuite/20_util/is_swappable/requirements/
3823 explicit_instantiation.cc: New.
3824 * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3825 * testsuite/25_algorithms/swap/68877.cc: New.
3827 2016-01-12 Jonathan Wakely <jwakely@redhat.com>
3829 * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3833 * include/std/functional (function::_Invoke): Remove, use result_of.
3834 (function::_Callable): Replace alias template with class template
3835 and use partial specialization instead of _NotSelf alias template.
3836 (function(_Functor)): Add "not self" constraint so that _Callable is
3837 not used while type is incomplete.
3838 * testsuite/20_util/function/69222.cc: New.
3840 2016-01-11 Jonathan Wakely <jwakely@redhat.com>
3843 * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3844 Define partial specialization.
3845 * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3846 destroy members to std::allocator explicit specialization.
3848 2016-01-08 Jonathan Wakely <jwakely@redhat.com>
3850 * testsuite/26_numerics/headers/cmath/
3851 c99_classification_macros_c++.cc: Rename to ...
3852 * testsuite/26_numerics/headers/cmath/
3853 c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3854 * testsuite/26_numerics/headers/cmath/
3855 c99_classification_macros_c++0x.cc: Rename to ...
3856 * testsuite/26_numerics/headers/cmath/
3857 c99_classification_macros_c++11.cc: Here.
3860 * include/bits/uses_allocator.h: Add missing include.
3862 2016-01-07 Jonathan Wakely <jwakely@redhat.com>
3867 * include/bits/stl_iterator.h (back_insert_iterator,
3868 front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3869 * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3870 * include/std/future (__future::base::_State_baseV2::__setter):
3872 * include/std/scoped_allocator (__outermost): Likewise.
3873 * testsuite/20_util/scoped_allocator/69114.cc: New.
3874 * testsuite/20_util/uses_allocator/69114.cc: New.
3875 * testsuite/30_threads/promise/69106.cc: New.
3877 2016-01-06 Jonathan Wakely <jwakely@redhat.com>
3880 * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3881 Remove _GLIBCXX_NOEXCEPT.
3882 testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3884 * include/Makefile.am: Adjust.
3885 * include/Makefile.in: Regenerate.
3886 * include/bits/mutex.h: Rename to bits/std_mutex.h.
3887 * include/std/condition_variable: Adjust include.
3888 * include/std/mutex: Likewise.
3890 2016-01-04 Jakub Jelinek <jakub@redhat.com>
3892 Update copyright years.
3894 Copyright (C) 2016 Free Software Foundation, Inc.
3896 Copying and distribution of this file, with or without modification,
3897 are permitted in any medium without royalty provided the copyright
3898 notice and this notice are preserved.