Implement P0018R3, C++17 lambda capture of *this by value as [=,*this]
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob69ec081cd0c4f2f99128e7cabf985bb440278fcd
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>
14         PR libstdc++/77727
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)):
33         Likewise.
34         * include/bits/stl_multiset.h (multiset::extract(const_iterator)):
35         Likewise.
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>
44         PR libstdc++/77717
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>
50         PR c/7652
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
56         functional.
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.
92         Adjust whitespaces.
94 2016-09-23  Jonathan Wakely  <jwakely@redhat.com>
96         PR libstdc++/56166
97         PR libstdc++/77582
98         * include/bits/basic_string.h (basic_string::clear()): Drop reference
99         and use empty rep.
100         * include/ext/rc_string_base.h (__rc_string_base::_M_clear()):
101         Likewise.
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
138         friend.
139         (map::node_type, map::insert_return_type, map::extract, map::merge)
140         (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
141         Define new members.
142         (_Rb_tree_merge_helper): Specialize for map.
143         * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
144         as friend.
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
150         as friend.
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
155         friend.
156         (set::node_type, set::insert_return_type, set::extract, set::merge)
157         (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
158         Define.
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):
194         Likewise.
195         * include/debug/unordered_set( unordered_set, unordered_multiset):
196         Likewise.
197         * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
198         helper function.
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:
213         New.
214         * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
215         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
216         New.
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
221         dg-error lineno.
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
234         reference type.
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
245         on references.
246         * testsuite/20_util/variant/compile.cc: Add test.
248 2016-09-22  Tim Shen  <timshen@google.com>
250         PR libstdc++/77641
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>
257         PR libstdc++/77288
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>
299         PR libstdc++/77537
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.
305         (_PCCP): New.
306         (pair(const _T1&, const _T2&)): Adjust.
307         (_PCCFP): New.
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>
322         PR libstdc++/77619
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.
341         (destroy): Likewise.
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>
354         PR libstdc++/77645
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.
370         PR libstdc++/77645
371         * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
372         argument.
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
381         from typename.
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
393         mask.
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
408         -Wno-deprecated.
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
414         -Wno-deprecated.
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:
437         Likewise.
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
448         in C++17 mode.
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/
457         1.cc: New.
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
477         in C++17 mode.
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:
493         Likewise.
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:
507         Likewise.
508         * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
509         Likewise.
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:
513         Likewise.
514         * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
515         Likewise.
516         * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
517         Likewise.
518         * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
519         Likewise.
520         * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
521         Likewise.
522         * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
523         Likewise.
524         * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
525         Likewise.
526         * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
527         Likewise.
528         * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
529         Likewise.
530         * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
531         Likewise.
532         * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
533         Likewise.
534         * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
535         Likewise.
536         * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
537         Likewise.
538         * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
539         Likewise.
540         * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
541         Likewise.
542         * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
543         Likewise.
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:
547         Likewise.
548         * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
549         Likewise.
550         * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
551         Likewise.
552         * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
553         Likewise.
554         * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
555         Likewise.
556         * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
557         Likewise.
558         * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
559         Likewise.
560         * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
561         Likewise.
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:
573         Likewise.
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:
583         Likewise.
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:
595         Likewise.
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:
606         Likewise.
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:
615         Likewise.
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:
621         Likewise.
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:
625         Likewise.
626         * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
627         Likewise.
628         * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
629         Likewise.
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:
642         Likewise.
643         * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
644         Likewise.
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:
653         Likewise.
654         * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
655         Likewise.
656         * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
657         Likewise.
658         * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
659         Likewise.
660         * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
661         Likewise.
662         * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
663         Likewise.
664         * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
665         Likewise.
666         * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
667         Likewise.
668         * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
669         Likewise.
670         * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
671         Likewise.
672         * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
673         Likewise.
674         * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
675         Likewise.
676         * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
677         Likewise.
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:
695         Likewise.
696         * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
697         Likewise.
698         * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
699         Likewise.
700         * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
701         Likewise.
702         * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
703         Likewise.
704         * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
705         Likewise.
706         * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
707         Likewise.
708         * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
709         Likewise.
710         * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
711         Likewise.
712         * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
713         Likewise.
714         * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
715         Likewise.
716         * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
717         Likewise.
718         * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
719         Likewise.
720         * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
721         Likewise.
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:
742         Likewise.
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:
746         Likewise.
747         * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
748         Likewise.
749         * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
750         Likewise.
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:
778         Likewise.
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:
790         Likewise.
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,
803         _aligned_malloc.
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
837         _Assignable.
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
842         _Assignable.
843         (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
844         (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
845         _Convertible.
846         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
847         match on any line.
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
855         comparison object.
856         * testsuite/23_containers/set/move_comparison.cc: New test.
858         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
859         New test.
861 2016-08-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
863         PR libstdc++/77395
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:
870         Likewise.
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>
885         PR libstdc++/77356
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>
896         PR libstdc++/51960
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
926         default argument.
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.
943         PR libstdc++/77334
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.
954         PR libstdc++/71771
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
960         -std=gnu++98.
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
965         difference operator.
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):
975         Likewise.
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>
1002         PR libstdc++/68297
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
1019         friend declaration.
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.
1033         PR libstdc++/77322
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:
1060         Likewise.
1061         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
1062         * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
1063         Likewise.
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
1087         semantics.
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
1103         C++17 mode.
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
1108         and variant.
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
1127         constraints.
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>
1138         Implement <variant>
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
1161         versioning.
1163         * doc/xml/manual/build_hacking.xml: Improve markup.
1164         * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1165         to "Testing".
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
1206         test for C++17.
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
1210         C++17.
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.
1226         PR libstdc++/77264
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)):
1238         Use _If_sv.
1239         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1240         SFINAE constraints.
1241         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1242         Likewise.
1243         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1244         Likewise.
1245         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1246         Likewise.
1247         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1248         Likewise.
1249         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1250         Likewise.
1251         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1252         Likewise.
1253         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1254         Likewise.
1255         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1256         Likewise.
1257         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1258         Likewise.
1259         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1260         Likewise.
1262 2016-08-16  Jonathan Wakely  <jwakely@redhat.com>
1264         PR libstdc++/72847
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&&...)):
1280         Likewise.
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
1286         emplace.
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>
1311         PR libstdc++/72840
1312         * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1313         syntax.
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>
1323         Implement LWG 2758.
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)):
1331         Likewise.
1332         (compare(size_type, size_type,__sv_type, size_type, size_type)):
1333         Likewise.
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.
1343         PR libstdc++/72820
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
1357         new header.
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
1362         lineno.
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
1375         dg-error lineno.
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
1405         test.
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:
1413         New test.
1414         * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1415         New test.
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:
1425         New test.
1427         * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1428         (__invfwd): Adjust.
1429         (__invoke_impl): Remove unused template parameters.
1430         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1431         parameter.
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
1440         for the macro.
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
1453         argument.
1454         * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1455         specialization.
1456         (owner_less<void>): Define specialization.
1457         * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1458         Update value.
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
1476         true.
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
1501         line number.
1502         * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1503         Likewise.
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:
1515         Likewise.
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
1520         tests.
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:
1525         Likewise.
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:
1532         Likewise.
1533         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1534         Likewise.
1535         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1536         Likewise.
1537         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1538         Likewise.
1539         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1540         Likewise.
1541         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1542         Likewise.
1544         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1545         comments.
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:
1550         Likewise.
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
1561         test.
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:
1566         Likewise.
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:
1572         Likewise.
1573         * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1574         Likewise.
1575         * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1576         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1577         Likewise.
1578         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1579         Likewise.
1580         * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1581         Likewise.
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:
1590         Likewise.
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:
1595         Likewise.
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:
1600         Likewise.
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:
1605         Likewise.
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:
1611         Likewise.
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:
1616         Likewise.
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:
1653         Likewise.
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:
1662         Likewise.
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
1672         of [[gnu::unused]].
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
1696         test if -flto used.
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:
1714         Likewise.
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
1728         later.
1729         * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1730         Likewise.
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:
1741         Likewise.
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:
1752         Likewise.
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
1766         compile-only test.
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.
1784         PR libstdc++/72745
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:
1794         Likewise.
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:
1804         Likewise.
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):
1815         Likewise.
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:
1824         Likewise.
1825         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1826         * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1827         New.
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:
1840         Likewise.
1841         * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1842         Likewise.
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:
1883         Likewise.
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
1901         symbols.
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:
1909         Likewise.
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:
1923         Likewise.
1924         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1925         Likewise.
1926         * testsuite/23_containers/list/requirements/dr438/
1927         constructor_1_neg.cc: Likewise.
1928         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1929         Likewise.
1930         * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1931         Likewise.
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:
1937         Likewise.
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:
1945         Likewise.
1946         * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1947         * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1948         Likewise.
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
1955         dg-do directive.
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.
1966         (__sv_type): New.
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)):
1979         Likewise.
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)):
1990         Likewise.
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:
1996         Likewise.
1997         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1998         Likewise.
1999         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2000         Likewise.
2001         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2002         Likewise.
2003         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2004         Likewise.
2005         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2006         Likewise.
2007         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2008         Likewise.
2009         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2010         Likewise.
2011         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2012         Likewise.
2013         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2014         Likewise.
2015         * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2016         Likewise.
2017         * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2018         Likewise.
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:
2029         Likewise.
2030         * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2031         Likewise.
2032         * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2033         Likewise.
2034         * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2035         Likewise.
2036         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2037         Likewise.
2038         * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2039         Likewise.
2040         * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2041         Likewise.
2042         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2043         Likewise.
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:
2049         Likewise.
2050         * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2051         Likewise.
2052         * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2053         Likewise.
2054         * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2055         Likewise.
2056         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2057         Likewise.
2058         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2059         Likewise.
2060         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2061         Likewise.
2062         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2063         Likewise.
2064         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2065         Likewise.
2066         * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2067         Likewise.
2068         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2069         Likewise.
2070         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2071         Likewise.
2072         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2073         Likewise.
2074         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2075         Likewise.
2076         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2077         Likewise.
2078         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2079         Likewise.
2080         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2081         Likewise.
2082         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2083         Likewise.
2084         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2085         Likewise.
2086         * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2087         Likewise.
2088         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2089         Likewise.
2090         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2091         Likewise.
2092         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2093         Likewise.
2094         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2095         Likewise.
2096         * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2097         Likewise.
2098         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2099         Likewise.
2100         * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2101         Likewise.
2102         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2103         Likewise.
2104         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2105         Likewise.
2106         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2107         Likewise.
2108         * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2109         Likewise.
2110         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2111         Likewise.
2112         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2113         Likewise.
2114         * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2115         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2116         Likewise.
2117         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2118         Likewise.
2119         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2120         Likewise.
2121         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2122         Likewise.
2123         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2124         Likewise.
2125         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2126         Likewise.
2127         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2128         Likewise.
2129         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2130         Likewise.
2131         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2132         Likewise.
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>
2154         PR libstdc++/71964
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:
2179         Likewise.
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:
2194         Likewise.
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
2205         lines.
2206         * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2207         the new types.
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
2233         comment.
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
2238         and adjust comment.
2240         PR c++/58796
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/
2253         1.cc: New test.
2254         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2255         pod.cc: New test.
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
2269         Parallel Mode.
2271         * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2272         for std::search.
2274         PR libstdc++/70716
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):
2286         Likewise.
2287         * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2288         Likewise.
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
2295         initialize _M_ptr.
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&&...)):
2303         Likewise.
2304         (~any()): Adjust.
2305         (operator=(const any&)): Likewise.
2306         (operator=(any&&)): Likewise.
2307         (operator=(_ValueType&&)): Constrain.
2308         (emplace(_Args&&...)): New.
2309         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2310         (clear()): Remove.
2311         (reset()): New.
2312         (swap(any&)): Adjust.
2313         (empty()): Remove.
2314         (has_value()): New.
2315         (type()): 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.
2323         (has_value()): New.
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>
2392         PR libstdc++/71856
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
2413         static.
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):
2463         New function.
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&)):
2467         Likewise.
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)):
2473         Likewise.
2474         (replace(size_type, size_type, const basic_string&, size_type,
2475         size_type)): Likewise.
2476         (replace(__const_iterator, __const_iterator, const basic_string&)):
2477         Likewise.
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
2485         _S_assign.
2486         (find(const _CharT*, size_type, size_type)): Use data instead of
2487         _M_data().
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:
2502         Likewise.
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>
2587         Implement std::any.
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
2609         in pre-C++17 modes.
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):
2617         New.
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>
2629         Implement LWG 2509,
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:
2641         New test.
2642         * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2643         test.
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
2665         using allocator.
2666         * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2668 2016-07-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
2670         PR libstdc++/71313
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:
2674         Adjust.
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>
2692         PR libstdc++/71640
2693         * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2694         friend declaration.
2696 2016-06-23  François Dumont  <fdumont@gcc.gnu.org>
2698         * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2699         zero-size array.
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>
2713         PR libstdc++/71181
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
2723         being now useless.
2724         * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2725         * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2726         (test02): New.
2727         * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2728         * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2729         Fix indentation.
2731 2016-06-17  Jonathan Wakely  <jwakely@redhat.com>
2733         PR libstdc++/71545
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:
2783         Likewise.
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:
2792         New.
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:
2798         New.
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:
2812         Likewise.
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
2847         test.
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):
2858         Likewise.
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)):
2864         Likewise.
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
2876         type declaration.
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>
2888         PR libstdc++/71320
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
2892         test.
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>
2916         PR libstdc++/66338
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.
2949         (__clp2): 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
2953         or not.
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:
2957         Likewise.
2958         * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2959         Likewise.
2960         * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2961         Likewise.
2962         * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2963         Likewise.
2964         * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2965         New.
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
2978         operator ->.
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>
2989         PR libstdc++/71073
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>
3003         PR libstdc++/71081
3004         * testsuite/experimental/memory_resource/1.cc: Require atomics.
3006 2016-05-11  Jonathan Wakely  <jwakely@redhat.com>
3008         PR libstdc++/71049
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.
3020         PR libstdc++/71038
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.
3027         PR libstdc++/71036
3028         * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
3029         * testsuite/experimental/filesystem/operations/create_directory.cc:
3030         New test.
3032         PR libstdc++/71037
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
3039         using declaration.
3041         PR libstdc++/71005
3042         * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
3043         New type.
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>
3053         PR libstdc++/71004
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
3062         from any type.
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>
3069         PR libstdc++/71004
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>
3086         PR libstdc++/70940
3087         * include/experimental/memory_resource
3088         (__resource_adaptor_imp::do_allocate): Do not default-construct
3089         rebound allocator.
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
3097         move to ...
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.
3105         * src/*: Likewise.
3106         * testsuite/tr1/*: Likewise.
3107         * testsuite/util/*: Likewise.
3109 2016-04-28  Jonathan Wakely  <jwakely@redhat.com>
3111         PR libstdc++/70766
3112         * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3113         __addressof.
3114         * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3115         Likewise.
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>
3129         PR libstdc++/70767
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>
3136         PR libstdc++/70762
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>
3142         PR libstdc++/70745
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>
3149         PR libstdc++/69703
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>
3155         PR libstdc++/69703
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.
3163         PR libstdc++/70609
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
3167         is empty.
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>
3184         PR libstdc++/41759
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
3190         patterns.
3192         * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3194         * config/cpu/sh/atomicity.h: Fix typo in comment.
3196         PR libstdc++/70294
3197         * include/std/thread (operator<, operator==): Move definitions to
3198         namespace-scope.
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
3205         to dg-options.
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
3211         semi-colon.
3212         * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3213         dg-options.
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
3223         __int128 types.
3225         * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3226         internal header.
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
3233         unused parameter.
3234         * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3236         * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3237         warnings.
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>
3249         PR c++/69517
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
3260         _M_emplace_hint.
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>
3299         PR libstdc++/70554
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.
3306         PR libstdc++/70503
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>
3313         PR libstdc++/70437
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>
3322         PR libstdc++/69945
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>
3340         PR libstdc++/69939
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.
3348         PR libstdc++/69893
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]:
3356         Likewise.
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>
3363         PR libstdc++/69881
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>
3369         PR libstdc++/69794
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.
3381         PR libstdc++/48891
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>
3394         PR libstdc++/69626
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>
3409         PR libstdc++/69581
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>
3415         PR libstdc++/69506
3416         * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3418 2016-01-28  John David Anglin  <danglin@gcc.gnu.org>
3420         PR libstdc++/69450
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,
3427         respectively.
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>
3435         PR libstdc++/69295
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
3439         -ffp-contract=off.
3441 2016-01-26  Jonathan Wakely  <jwakely@redhat.com>
3443         PR libstdc++/69478
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>):
3447         Likewise.
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>
3460         PR libstdc++/69464
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
3475         header for vector.
3476         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3478 2016-01-23  John David Anglin  <danglin@gcc.gnu.org>
3480         PR libstdc++/69446
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>
3513         PR libstdc++/69116
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.
3518         PR libstdc++/69413
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>
3527         PR libstdc++/69406
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>
3540         PR libstdc++/69310
3541         * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3543 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
3545         PR libstdc++/60401
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.
3554         PR libstdc++/69386
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>
3563         PR libstdc++/14608
3564         PR libstdc++/60401
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
3588         functions.
3590 2016-01-18  Jonathan Wakely  <jwakely@redhat.com>
3592         PR libstdc++/60637
3593         * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3595         PR libstdc++/69243
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.
3601         PR libstdc++/69340
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>
3607         PR libstdc++/68734
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
3617         __int128 symbols.
3619 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
3621         PR libstdc++/69293
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.
3628         PR libstdc++/69294
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
3643         transaction-safe.
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
3661         std::isfinite.
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>
3794         PR libstdc++/48891
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>
3805         PR libstdc++/66006
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>
3814         PR libstdc++/68877
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.
3831         PR libstdc++/69005
3832         PR libstdc++/69222
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>
3842         PR libstdc++/60976
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.
3859         PR libstdc++/69190
3860         * include/bits/uses_allocator.h: Add missing include.
3862 2016-01-07  Jonathan Wakely  <jwakely@redhat.com>
3864         PR libstdc++/69105
3865         PR libstdc++/69106
3866         PR libstdc++/69114
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):
3871         Likewise.
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>
3879         PR libstdc++/69092
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.