* sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob69338c13aceeb31fbe52e98ac5ca1898011a5722
1 2016-09-22  Jason Merrill  <jason@redhat.com>
3         * configure.ac: Define HAVE_MEMALIGN for newlib.
5 2015-09-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
7         * config/cpu/m68k/atomicity.h: Adjust comment.
8         * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
9         explicit atomicity_dir setup via configure.host.
10         * configure.host (rtems-*): Set atomicity_dir.
11         * configure: Regenerate.
13 2016-09-22  Jonathan Wakely  <jwakely@redhat.com>
15         Implement C++17 node extraction and insertion (P0083R5)
16         * doc/xml/manual/status_cxx2017.xml: Document status.
17         * doc/html/*: Regenerate.
18         * include/Makefile.am: Add bits/node_handle.h and reorder.
19         * include/Makefile.in: Regenerate.
20         * include/bits/hashtable.h (_Hashtable::node_type)
21         (_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
22         (_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
23         (_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
24         (_Hash_merge_helper): Define primary template.
25         * include/bits/node_handle.h: New header.
26         * include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
27         friend.
28         (map::node_type, map::insert_return_type, map::extract, map::merge)
29         (map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
30         Define new members.
31         (_Rb_tree_merge_helper): Specialize for map.
32         * include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
33         as friend.
34         (multimap::node_type, multimap::extract, multimap::merge)
35         (multimap::insert(node_type&&))
36         (multimap::insert(const_iterator, node_type&&)): Define.
37         (_Rb_tree_merge_helper): Specialize for multimap.
38         * include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
39         as friend.
40         (multiset::node_type, multiset::extract, multiset::merge)
41         (multiset::insert(node_type&&))
42         (multiset::insert(const_iterator, node_type&&)): Define.
43         * include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
44         friend.
45         (set::node_type, set::insert_return_type, set::extract, set::merge)
46         (set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
47         Define.
48         (_Rb_tree_merge_helper): Specialize for set.
49         * include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
50         (_Rb_tree::node_type, _Rb_tree::insert_return_type)
51         (_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
52         (_Rb_tree::_M_reinsert_node_hint_unique)
53         (_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
54         (_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
55         (_Rb_tree_merge_helper): Specialize for multiset.
56         * include/bits/unordered_map.h (unordered_map): Declare
57         unordered_map<> and unordered_multimap<> as friends.
58         (unordered_map::node_type, unordered_map::insert_return_type)
59         (unordered_map::extract, unordered_map::merge)
60         (unordered_map::insert(node_type&&))
61         (unordered_map::insert(const_iterator, node_type&&))
62         (unordered_multimap): Declare _Hash_merge_helper as friend.
63         (unordered_multimap::node_type, unordered_multimap::extract)
64         (unordered_multimap::merge, unordered_multimap::insert(node_type&&))
65         (unordered_multimap::insert(const_iterator, node_type&&)): Define.
66         (_Hash_merge_helper): Specialize for unordered maps and multimaps.
67         * include/bits/unordered_set.h (unordered_set, unordered_multiset):
68         Declare _Hash_merge_helper as friend.
69         (unordered_set::node_type, unordered_set::insert_return_type)
70         (unordered_set::extract, unordered_set::merge)
71         (unordered_set::insert(node_type&&))
72         (unordered_set::insert(const_iterator, node_type&&)): Define.
73         (unordered_multiset::node_type, unordered_multiset::extract)
74         (unordered_multiset::merge, unordered_multiset::insert(node_type&&))
75         (unordered_multiset::insert(const_iterator, node_type&&)): Define.
76         (_Hash_merge_helper): Specialize for unordered sets and multisets.
77         * include/debug/map.h (map): Add using declarations or forwarding
78         functions for new members.
79         * include/debug/map.h (multimap): Likewise.
80         * include/debug/map.h (multiset): Likewise.
81         * include/debug/map.h (set): Likewise.
82         * include/debug/unordered_map (unordered_map, unordered_multimap):
83         Likewise.
84         * include/debug/unordered_set( unordered_set, unordered_multiset):
85         Likewise.
86         * python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
87         helper function.
88         (get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
89         (StdNodeHandlePrinter): Define printer for node handles.
90         (build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
91         * testsuite/23_containers/map/modifiers/extract.cc: New.
92         * testsuite/23_containers/map/modifiers/merge.cc: New.
93         * testsuite/23_containers/multimap/modifiers/extract.cc: New.
94         * testsuite/23_containers/multimap/modifiers/merge.cc: New.
95         * testsuite/23_containers/multiset/modifiers/extract.cc: New.
96         * testsuite/23_containers/multiset/modifiers/merge.cc: New.
97         * testsuite/23_containers/set/modifiers/extract.cc: New.
98         * testsuite/23_containers/set/modifiers/merge.cc: New.
99         * testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
100         * testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
101         * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
102         New.
103         * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
104         * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
105         New.
106         * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
107         * testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
108         * testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
109         * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
110         dg-error lineno.
111         * testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
113 2016-09-22  Ville Voutilainen  <ville.voutilainen@gmail.com>
115         Fix tests on old arm platforms for optional.
116         * testsuite/20_util/optional/77288.cc: Don't use exception_ptr.
118 2016-09-22  Jonathan Wakely  <jwakely@redhat.com>
120         * python/libstdcxx/v6/printers.py (StdVariantPrinter): Adjust for
121         recent change to _Variant_storage.
122         * testsuite/libstdc++-prettyprinters/cxx17.cc: Test variant with
123         reference type.
125         * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify
126         std::forward and ::new. Cast pointer to void*.
127         * include/std/variant (_Variant_storage, _Union, _Variant_base)
128         (__access, __visit_invoke, variant, visit): Qualify std::forward.
129         * testsuite/20_util/variant/compile.cc: Test for ADL problems.
131 2016-09-22  Tim Shen  <timshen@google.com>
133         * include/std/variant (variant::operator=): Fix assignment
134         on references.
135         * testsuite/20_util/variant/compile.cc: Add test.
137 2016-09-22  Tim Shen  <timshen@google.com>
139         PR libstdc++/77641
140         * include/std/variant (_Variant_storage::_Variant_storage):
141         Change _Variant_storage's union to be default constructible.
142         * testsuite/20_util/variant/compile.cc: New test.
144 2016-09-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
146         PR libstdc++/77288
147         * include/std/optional (__is_optional_impl, __is_optional): Remove.
148         (__converts_from_optional, __assigns_from_optional): New.
149         (optional(_Up&&)): Use is_same instead of __is_optional.
150         (optional(const optional<_Up>&)): Constrain with
151         __converts_from_optional.
152         (optional(optional<_Up>&&)): Likewise.
153         (operator=(_Up&&)): Use is_same instead of __is_optional, check
154         is_same and is_scalar.
155         (operator=(const optional<_Up>&)): Constrain with
156         __converts_from_optional and __assigns_from_optional.
157         (operator=(optional<_Up>&&)): Likewise.
158         * testsuite/20_util/optional/77288.cc: New.
159         * testsuite/20_util/optional/cons/value.cc: Adjust.
161 2016-09-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
163         Implement LWG 2729 for tuple.
164         * include/std/tuple (_Tuple_impl(_Tuple_impl&&)):
165         Suppress conditionally.
166         (_Tuple_impl(_Tuple_impl<_Idx, _UHead, _UTails...>&&)): Likewise.
167         (__is_tuple_impl_trait_impl, __is_tuple_impl_trait): New.
168         (_Tuple_impl(const _Head&)): Constrain.
169         (_Tuple_impl(_UHead&&)): Likewise.
170         (_Tuple_impl(_Tuple_impl&&)): Suppress conditionally.
171         (_Tuple_impl(const _Tuple_impl<_Idx, _UHead>&)): Constrain.
172         (_Tuple_impl(_Tuple_impl<_Idx, _UHead>&&)): Likewise.
173         (operator=(const tuple&)): Enable conditionally.
174         (operator=(tuple&&)): Suppress conditionally.
175         (operator=(const tuple<_UElements...>&)): Constrain.
176         (operator=(tuple<_UElements...>&&)): Likewise.
177         (operator=(const tuple&)): Enable conditionally (2-param tuple).
178         (operator=(tuple&&)): Suppress conditionally (2-param tuple).
179         (operator=(const tuple<_U1, _U2>&)): Constrain.
180         (operator=(tuple<_U1, _U2>&&)): Likewise.
181         (operator=(const pair<_U1, _U2>&)): Likewise.
182         (operator=(pair<_U1, _U2>&&)): Likewise.
183         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
184         * testsuite/20_util/tuple/tuple_traits.cc: New.
186 2016-09-21  Ville Voutilainen  <ville.voutilainen@gmail.com>
188         PR libstdc++/77537
189         Implement LWG 2729 for pair.
190         * include/bits/stl_pair.h (_PCC): New.
191         (_ConstructiblePair, _ImplicitlyConvertiblePair):
192         Turn into static member functions of _PCC.
193         (_MoveConstructiblePair, _ImplicitlyMoveConvertiblePair): Likewise.
194         (_PCCP): New.
195         (pair(const _T1&, const _T2&)): Adjust.
196         (_PCCFP): New.
197         (pair(const pair<_U1, _U2>&)): Adjust.
198         (pair(_U1&&, const _T2&)): Likewise.
199         (pair(const _T1&, _U2&&)): Likewise.
200         (pair(_U1&&, _U2&&)): Likewise.
201         (pair(pair<_U1, _U2>&&)): Likewise.
202         (operator=(const pair&)): Make conditionally deleted.
203         (operator=(pair&&)): Make conditionally suppressed.
204         (operator=(const pair<_U1, _U2>&)): Constrain.
205         (operator=(pair<_U1, _U2>&&): Likewise.
206         * include/std/type_traits (__nonesuch): New.
207         * testsuite/20_util/pair/traits.cc: New.
209 2016-09-20  Ville Voutilainen  <ville.voutilainen@gmail.com>
211         PR libstdc++/77619
212         * include/bits/stl_construct.h: (_Construct_novalue): New.
213         (_Destroy_n_aux, _Destroy_n): New.
214         * include/bits/stl_uninitialized.h: (type_traits):
215         New include in C++11 mode.
216         (__uninitialized_default_novalue_1): New.
217         (__uninitialized_default_novalue_n_1): Likewise.
218         (__uninitialized_default_novalue): Likewise.
219         (__uninitialized_default_novalue_n): Likewise.
220         (__uninitialized_copy_n_pair): Likewise.
221         (uninitialized_default_construct):
222         Use __uninitialized_default_novalue.
223         (uninitialized_default_construct_n):
224         Use __uninitialized_default_novalue_n.
225         (uninitialized_value_construct): Use __uninitialized_default.
226         (uninitialized_value_construct_n): Use __uninitialized_default_n.
227         (uninitialized_move): Use uninitialized_copy.
228         (uninitialized_move_n): Use __uninitialized_copy_n_pair.
229         (destroy_at): Use _Destroy.
230         (destroy): Likewise.
231         (destroy_n): Likewise.
232         * testsuite/20_util/specialized_algorithms/
233         memory_management_tools/1.cc: Add tests for exceptions,
234         add tests for trivial cases for construct and move.
236 2016-09-20  Jonathan Wakely  <jwakely@redhat.com>
238         * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
239         (DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
241 2016-09-19  Jonathan Wakely  <jwakely@redhat.com>
243         PR libstdc++/77645
244         * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
245         (DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
246         division to int to work with Python 3.
248         * testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
250         * python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
251         display_hint to be set by subclasses.
252         (StdVariantPrinter): Use array for display_hint. Adjust output to be
253         more similar to std::any and std::optional output.
254         (register_type_printers): Add type printers for basic_string_view
255         typedefs and experimental::any. Adjust type printers for
256         fundamentals_v1 templates to match fundamentals_v2 and later.
257         * testsuite/libstdc++-prettyprinters/cxx17.cc: New.
259         PR libstdc++/77645
260         * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
261         argument.
262         (ListWorkerBase.get_value_from_node): Define new method.
263         (ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
265 2016-09-17  Jonathan Wakely  <jwakely@redhat.com>
267         * python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
268         (StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
269         Register for C++17 components in namespace std. Strip inline namespace
270         from typename.
272 2016-09-16  Jonathan Wakely  <jwakely@redhat.com>
274         * doc/xml/manual/profile_mode.xml: Fix typo.
275         * doc/html/manual/profile_mode_devel.html: Regenerate.
277 2016-09-16  Jonathan Wakely  <jwakely@redhat.com>
278             Marc Glisse  <marc.glisse@inria.fr>
280         * libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
281         (operator new(size_t, align_val_t)): Replace modulus operator with
282         mask.
284 2016-09-16  Jonathan Wakely  <jwakely@redhat.com>
286         * libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
287         Increase alignment if less than sizeof(void*).
288         [_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
289         Increase size if not a multiple of alignment.
291 2016-09-15  Jonathan Wakely  <jwakely@redhat.com>
293         * doc/xml/manual/debug_mode.xml: Minor editorial fixes.
294         * doc/html/*: Regenerate.
296         * testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
297         -Wno-deprecated.
298         * testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
300 2016-09-14  Marek Polacek  <polacek@redhat.com>
302         * testsuite/23_containers/vector/debug/insert6_neg.cc: Use
303         -Wno-deprecated.
305 2016-09-14  Christophe Lyon  <christophe.lyon@linaro.org>
307         * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
308         Move dg-do directive before dg-skip.
309         * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
310         Move dg-do directive before dg-require.
311         * testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
312         * testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
313         * testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
314         * testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
315         * testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
316         * testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
317         * testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
318         * testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
319         * testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
320         * testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
321         * testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
322         * testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
323         * testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
324         * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
325         * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
326         Likewise.
327         * testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
328         * testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
329         * testsuite/27_io/objects/char/12048-5.cc: Likewise.
330         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
331         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
333 2016-09-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
335         Implement P0040R3, Extending memory management tools.
336         * include/bits/stl_uninitialized.h (utility): New include
337         in C++17 mode.
338         (uninitialized_default_construct): New.
339         (uninitialized_default_construct_n): Likewise.
340         (uninitialized_value_construct): Likewise.
341         (uninitialized_value_construct_n): Likewise.
342         (uninitialized_move): Likewise.
343         (uninitialized_move_n): Likewise.
344         (destroy_at, destroy, destroy_n): Likewise.
345         * testsuite/20_util/specialized_algorithms/memory_management_tools/
346         1.cc: New.
348 2016-09-12  Jason Merrill  <jason@redhat.com>
350         * config/abi/pre/gnu.ver: Use [jmy] for size_t.
352 2016-09-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
354         Implement P0253R1, Fixing a design mistake in the searchers
355         interface in Library Fundamentals.
356         * include/std/functional: (utility): New include in C++17 mode.
357         (default_searcher): Use a pair as return type, adjust the definition.
358         (boyer_moore_searcher): Likewise.
359         (boyer_moore_horspool_searcher): Likewise.
360         * testsuite/20_util/function_objects/searchers.cc: Adjust.
362 2016-09-12  Ville Voutilainen  <ville.voutilainen@gmail.com>
364         Implement C++17 string searchers.
365         * include/std/functional: (unordered_map, vector): New includes
366         in C++17 mode.
367         (array, bits/stl_algo.h): Likewise.
368         (default_searcher, __boyer_moore_map_base): New.
369         (__boyer_moore_array_base, __is_std_equal_to): Likewise.
370         (__boyer_moore_base_t, boyer_moore_searcher): Likewise.
371         (boyer_moore_horspool_searcher, make_default_searcher): Likewise.
372         (make_boyer_moore_searcher): Likewise.
373         (make_boyer_moore_horspool_searcher): Likewise.
374         * testsuite/20_util/function_objects/searchers.cc: New.
376 2016-09-12  Matthew Wahab  <matthew.wahab@arm.com>
378         * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
379         Move dg-do directive before dg-require.
380         * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
381         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
382         Likewise.
383         * testsuite/22_locale/codecvt/utf8.cc: Likewise.
384         * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
385         * testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
386         * testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
387         * testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
388         * testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
389         * testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
390         * testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
391         * testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
392         * testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
393         * testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
394         * testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
395         * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
396         Likewise.
397         * testsuite/23_containers/deque/debug/self_move_assign_neg.cc:
398         Likewise.
399         * testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
400         * testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
401         * testsuite/23_containers/forward_list/debug/construct1_neg.cc:
402         Likewise.
403         * testsuite/23_containers/forward_list/debug/construct2_neg.cc:
404         Likewise.
405         * testsuite/23_containers/forward_list/debug/construct3_neg.cc:
406         Likewise.
407         * testsuite/23_containers/forward_list/debug/erase_after1_neg.cc:
408         Likewise.
409         * testsuite/23_containers/forward_list/debug/erase_after2_neg.cc:
410         Likewise.
411         * testsuite/23_containers/forward_list/debug/erase_after3_neg.cc:
412         Likewise.
413         * testsuite/23_containers/forward_list/debug/erase_after4_neg.cc:
414         Likewise.
415         * testsuite/23_containers/forward_list/debug/erase_after5_neg.cc:
416         Likewise.
417         * testsuite/23_containers/forward_list/debug/erase_after6_neg.cc:
418         Likewise.
419         * testsuite/23_containers/forward_list/debug/erase_after7_neg.cc:
420         Likewise.
421         * testsuite/23_containers/forward_list/debug/erase_after8_neg.cc:
422         Likewise.
423         * testsuite/23_containers/forward_list/debug/erase_after9_neg.cc:
424         Likewise.
425         * testsuite/23_containers/forward_list/debug/insert_after1_neg.cc:
426         Likewise.
427         * testsuite/23_containers/forward_list/debug/insert_after2_neg.cc:
428         Likewise.
429         * testsuite/23_containers/forward_list/debug/insert_after3_neg.cc:
430         Likewise.
431         * testsuite/23_containers/forward_list/debug/insert_after4_neg.cc:
432         Likewise.
433         * testsuite/23_containers/forward_list/debug/
434         iterator_self_move_assign_neg.cc: Likewise.
435         * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
436         Likewise.
437         * testsuite/23_containers/forward_list/debug/splice_after1_neg.cc:
438         Likewise.
439         * testsuite/23_containers/forward_list/debug/splice_after2_neg.cc:
440         Likewise.
441         * testsuite/23_containers/forward_list/debug/splice_after3_neg.cc:
442         Likewise.
443         * testsuite/23_containers/forward_list/debug/splice_after4_neg.cc:
444         Likewise.
445         * testsuite/23_containers/forward_list/debug/splice_after5_neg.cc:
446         Likewise.
447         * testsuite/23_containers/forward_list/debug/splice_after6_neg.cc:
448         Likewise.
449         * testsuite/23_containers/forward_list/debug/splice_after7_neg.cc:
450         Likewise.
451         * testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
452         * testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
453         * testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
454         * testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
455         * testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
456         * testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
457         * testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
458         * testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
459         * testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
460         * testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
461         * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
462         Likewise.
463         * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
464         * testsuite/23_containers/map/debug/60499.cc: Likewise.
465         * testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
466         * testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
467         * testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
468         * testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
469         * testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
470         * testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
471         * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
472         Likewise.
473         * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
474         * testsuite/23_containers/multimap/debug/60499.cc: Likewise.
475         * testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
476         * testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
477         * testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
478         * testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
479         * testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
480         * testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
481         * testsuite/23_containers/multimap/debug/
482         iterator_self_move_assign_neg.cc: Likewise.
483         * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc:
484         Likewise.
485         * testsuite/23_containers/multiset/debug/60499.cc: Likewise.
486         * testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
487         * testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
488         * testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
489         * testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
490         * testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
491         * testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
492         * testsuite/23_containers/multiset/debug/
493         iterator_self_move_assign_neg.cc: Likewise.
494         * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc:
495         Likewise.
496         * testsuite/23_containers/set/debug/60499.cc: Likewise.
497         * testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
498         * testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
499         * testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
500         * testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
501         * testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
502         * testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
503         * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
504         Likewise.
505         * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
506         * testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
507         * testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
508         * testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
509         * testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc:
510         Likewise.
511         * testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
512         * testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
513         * testsuite/23_containers/unordered_map/debug/construct1_neg.cc:
514         Likewise.
515         * testsuite/23_containers/unordered_map/debug/construct2_neg.cc:
516         Likewise.
517         * testsuite/23_containers/unordered_map/debug/construct3_neg.cc:
518         Likewise.
519         * testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
520         * testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
521         * testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
522         * testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
523         * testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
524         * testsuite/23_containers/unordered_map/debug/
525         invalid_local_iterator_compare_neg.cc: Likewise.
526         * testsuite/23_containers/unordered_map/debug/
527         invalid_local_iterator_range_neg.cc: Likewise.
528         * testsuite/23_containers/unordered_map/debug/
529         iterator_self_move_assign_neg.cc: Likewise.
530         * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
531         Likewise.
532         * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
533         Likewise.
534         * testsuite/23_containers/unordered_map/debug/
535         use_erased_local_iterator_neg.cc: Likewise.
536         * testsuite/23_containers/unordered_map/debug/
537         use_invalid_iterator_neg.cc: Likewise.
538         * testsuite/23_containers/unordered_map/debug/
539         use_invalid_local_iterator_neg.cc: Likewise.
540         * testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
541         * testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc:
542         Likewise.
543         * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc:
544         Likewise.
545         * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
546         Likewise.
547         * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc:
548         Likewise.
549         * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc:
550         Likewise.
551         * testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
552         Likewise.
553         * testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
554         Likewise.
555         * testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
556         Likewise.
557         * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc:
558         Likewise.
559         * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc:
560         Likewise.
561         * testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc:
562         Likewise.
563         * testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc:
564         Likewise.
565         * testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc:
566         Likewise.
567         * testsuite/23_containers/unordered_multimap/debug/
568         invalid_local_iterator_compare_neg.cc: Likewise.
569         * testsuite/23_containers/unordered_multimap/debug/
570         invalid_local_iterator_range_neg.cc: Likewise.
571         * testsuite/23_containers/unordered_multimap/debug/
572         iterator_self_move_assign_neg.cc: Likewise.
573         * testsuite/23_containers/unordered_multimap/debug/
574         max_load_factor_neg.cc: Likewise.
575         * testsuite/23_containers/unordered_multimap/debug/
576         self_move_assign_neg.cc: Likewise.
577         * testsuite/23_containers/unordered_multimap/debug/
578         use_erased_local_iterator_neg.cc: Likewise.
579         * testsuite/23_containers/unordered_multimap/debug/
580         use_invalid_iterator_neg.cc: Likewise.
581         * testsuite/23_containers/unordered_multimap/debug/
582         use_invalid_local_iterator_neg.cc: Likewise.
583         * testsuite/23_containers/unordered_multiset/debug/60499.cc:
584         Likewise.
585         * testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
586         Likewise.
587         * testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
588         Likewise.
589         * testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
590         Likewise.
591         * testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
592         Likewise.
593         * testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
594         Likewise.
595         * testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
596         Likewise.
597         * testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
598         Likewise.
599         * testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
600         Likewise.
601         * testsuite/23_containers/unordered_multiset/debug/end1_neg.cc:
602         Likewise.
603         * testsuite/23_containers/unordered_multiset/debug/end2_neg.cc:
604         Likewise.
605         * testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc:
606         Likewise.
607         * testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc:
608         Likewise.
609         * testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc:
610         Likewise.
611         * testsuite/23_containers/unordered_multiset/debug/
612         invalid_local_iterator_compare_neg.cc: Likewise.
613         * testsuite/23_containers/unordered_multiset/debug/
614         invalid_local_iterator_range_neg.cc: Likewise.
615         * testsuite/23_containers/unordered_multiset/debug/
616         iterator_self_move_assign_neg.cc: Likewise.
617         * testsuite/23_containers/unordered_multiset/debug/
618         max_load_factor_neg.cc: Likewise.
619         * testsuite/23_containers/unordered_multiset/debug/
620         self_move_assign_neg.cc: Likewise.
621         * testsuite/23_containers/unordered_multiset/debug/
622         use_erased_local_iterator_neg.cc: Likewise.
623         * testsuite/23_containers/unordered_multiset/debug/
624         use_invalid_iterator_neg.cc: Likewise.
625         * testsuite/23_containers/unordered_multiset/debug/
626         use_invalid_local_iterator_neg.cc: Likewise.
627         *  testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
628         * testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
629         * testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
630         * testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc:
631         Likewise.
632         * testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
633         * testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
634         * testsuite/23_containers/unordered_set/debug/construct1_neg.cc:
635         Likewise.
636         * testsuite/23_containers/unordered_set/debug/construct2_neg.cc:
637         Likewise.
638         * testsuite/23_containers/unordered_set/debug/construct3_neg.cc:
639         Likewise.
640         * testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
641         * testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
642         * testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
643         * testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
644         * testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
645         * testsuite/23_containers/unordered_set/debug/
646         invalid_local_iterator_compare_neg.cc: Likewise.
647         * testsuite/23_containers/unordered_set/debug/
648         invalid_local_iterator_range_neg.cc: Likewise.
649         * testsuite/23_containers/unordered_set/debug/
650         iterator_self_move_assign_neg.cc: Likewise.
651         * testsuite/23_containers/unordered_set/debug/
652         max_load_factor_neg.cc: Likewise.
653         * testsuite/23_containers/unordered_set/debug/
654         self_move_assign_neg.cc: Likewise.
655         * testsuite/23_containers/unordered_set/debug/
656         use_erased_local_iterator_neg.cc: Likewise.
657         * testsuite/23_containers/unordered_set/debug/
658         use_invalid_iterator_neg.cc: Likewise.
659         * testsuite/23_containers/unordered_set/debug/
660         use_invalid_local_iterator_neg.cc: Likewise.
661         * testsuite/23_containers/vector/debug/52433.cc: Likewise.
662         * testsuite/23_containers/vector/debug/60499.cc: Likewise.
663         * testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
664         * testsuite/23_containers/vector/debug/
665         iterator_self_move_assign_neg.cc: Likewise.
666         * testsuite/23_containers/vector/debug/self_move_assign_neg.cc:
667         Likewise.
668         * testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
669         * testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
670         * testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
671         * testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
672         * testsuite/29_atomics/atomic/60658.cc: Likewise.
673         * testsuite/29_atomics/atomic/60695.cc: Likewise.
674         * testsuite/29_atomics/atomic/62259.cc: Likewise.
675         * testsuite/29_atomics/atomic/64658.cc: Likewise.
676         * testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
677         * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
678         * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
679         Likewise.
681 2016-09-11  Jonathan Wakely  <jwakely@redhat.com>
683         * libsupc++/new_opant.cc: Include exception_defines.h.
684         * libsupc++/new_opvant.cc: Likewise.
686 2016-09-09  Jason Merrill  <jason@redhat.com>
688         Implement P0035R4, C++17 new of over-aligned types.
689         * libsupc++/new: Declare aligned new/delete operators.
690         * config/abi/pre/gnu.ver: Export them.
691         * configure.ac: Check for aligned_alloc, posix_memalign, memalign,
692         _aligned_malloc.
693         * libsupc++/new_opa.cc: New.
694         * libsupc++/new_opant.cc: New.
695         * libsupc++/new_opva.cc: New.
696         * libsupc++/new_opva.cc: New.
697         * libsupc++/del_opa.cc: New.
698         * libsupc++/del_opant.cc: New.
699         * libsupc++/del_opsa.cc: New.
700         * libsupc++/del_opva.cc: New.
701         * libsupc++/del_opvant.cc: New.
702         * libsupc++/del_opvsa.cc: New.
703         * libsupc++/Makefile.am: Build them.
705 2016-09-05  Tim Shen  <timshen@google.com>
707         * include/std/variant: include bits/move.h for std::addressof.
709 2016-09-05  Mikhail Strelnikov  <mikhail.strelnikov@gmail.com>
711         * include/std/variant (_Variant_storage::_M_storage()): Use
712         std::addressof instead of operator& to take address.
714 2016-09-02  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
716         * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of
717         setrlimit on both native and cross targets.
718         * configure: Regenerate.
720 2016-08-31  Jonathan Wakely  <jwakely@redhat.com>
722         * include/bits/shared_ptr.h (_Assignable): New alias template.
723         (shared_ptr::operator=(const shared_ptr<_Tp1>&))
724         (shared_ptr::operator=(shared_ptr<_Tp1>&&))
725         (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
726         _Assignable.
727         * include/bits/shared_ptr_base.h (_Assignable): New alias template.
728         (__shared_ptr::operator=(const __shared_ptr<_Tp1>&))
729         (__shared_ptr::operator=(__shared_ptr<_Tp1>&&))
730         (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with
731         _Assignable.
732         (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter))
733         (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with
734         _Convertible.
735         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to
736         match on any line.
737         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
738         * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test.
739         * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update
740         expected errors. Remove unnecessary code.
741         * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test.
743         * include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
744         comparison object.
745         * testsuite/23_containers/set/move_comparison.cc: New test.
747         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
748         New test.
750 2016-08-30  Ville Voutilainen  <ville.voutilainen@gmail.com>
752         PR libstdc++/77395
753         * include/std/type_traits (is_constructible): Forward-declare...
754         (__is_base_to_derived_ref): ...and use here.
755         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
756         * testsuite/20_util/is_constructible/77395.cc: New.
757         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
758         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
759         Likewise.
760         * testsuite/20_util/tuple/77395.cc: New.
762 2016-08-30  Uros Bizjak  <ubizjak@gmail.com>
764         * testsuite/22_locale/time_get/get/char/2.cc: Move dg-do run
765         directive above dg-require-namedlocale directive.
766         * testsuite/22_locale/time_get/get/wchar_t/2.cc: Ditto.
767         * testsuite/27_io/manipulators/extended/get_time/char/2.cc: Ditto.
768         * testsuite/27_io/manipulators/extended/get_time/wchar_t/2.cc: Ditto.
769         * testsuite/27_io/manipulators/extended/put_time/char/2.cc: Ditto.
770         * testsuite/27_io/manipulators/extended/put_time/wchar_t/2.cc: Ditto.
772 2016-08-27  Tim Shen  <timshen@google.com>
774         PR libstdc++/77356
775         * include/bits/regex_compiler.tcc(_M_insert_bracket_matcher,
776         _M_expression_term): Modify to support dash literal.
777         * include/bits/regex_scanner.h: Add dash as a token type to make
778         a different from the mandated dash literal by escaping.
779         * include/bits/regex_scanner.tcc(_M_scan_in_bracket): Emit dash
780         token in bracket expression parsing.
781         * testsuite/28_regex/regression.cc: Add new testcases.
783 2016-08-26  Jonathan Wakely  <jwakely@redhat.com>
785         PR libstdc++/51960
786         * doc/xml/manual/intro.xml: Document DR 2127 change.
787         * doc/html/*: Regenerate.
788         * include/bits/stl_raw_storage_iter.h (operator=(_Tp&&)): Add.
789         (operator++(), operator++(int)): Use injected class name.
790         * testsuite/20_util/raw_storage_iterator/dr2127.cc: New test.
792         * testsuite/*: Use { target c++11 } or { target c++14 } instead of
793         using -std in dg-options.
795 2016-08-26  Jonathan Wakely  <jwakely@redhat.com>
796             Pedro Alves  <palves@redhat.com>
798         * testsuite/lib/gdb-test.exp (gdb-dg-runtest): Define wrapper to save
799         and restore dg-interpreter-batch-mode.
800         * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Use
801         gdb-dg-runtest instead of dg-runtest.
802         * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
804 2016-08-26  Jonathan Wakely  <jwakely@redhat.com>
806         * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more
807         precise patterns for basic_string constructors.
808         (GLIBCXX_3.4.23): Export new constructors.
809         * doc/xml/manual/intro.xml: Document LWG 2583 status.
810         * doc/html/*: Regenerate.
811         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
812         (basic_string(const basic_string&, size_type, const Alloc&)): Add
813         new constructor for LWG 2583.
814         (basic_string(const basic_string&, size_type, size_type)): Remove
815         default argument.
816         [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
817         * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it.
818         * testsuite/21_strings/basic_string/cons/char/8.cc: New test.
819         * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test.
821 2016-08-24  Aditya Kumar  <hiraditya@msn.com>
823         * include/bits/algorithmfwd.h: Remove trailing whitespace.
824         * include/bits/shared_ptr_base.h: Likewise.
826 2016-08-23  Jonathan Wakely  <jwakely@redhat.com>
828         * include/debug/array (array): Add _GLIBCXX17_CONSTEXPR.
829         * include/profile/array (array): Likewise.
830         (array::swap): Fix exception specification for zero-sized arrays.
832         PR libstdc++/77334
833         * include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
834         (_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
835         * testsuite/23_containers/map/77334.cc: New test.
837         * doc/xml/manual/using.xml: Remove reference to -pthreads option.
838         * doc/html/*: Regenerate.
840         * testsuite/experimental/feat-cxx14.cc: Only preprocess, not compile.
841         * testsuite/experimental/feat-lib-fund.cc: Likewise.
843         PR libstdc++/71771
844         * include/bits/stl_iterator.h
845         (operator-(reverse_iterator<Iter>, reverse_iterator<Iter>): Only
846         define for C++98 mode.
847         (operator-(move_iterator<Iter>, move_iterator<Iter>): Don't define.
848         * testsuite/24_iterators/headers/iterator/synopsis.cc: Use
849         -std=gnu++98.
850         * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: New test.
851         * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: New test.
852         * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: New test.
853         * testsuite/24_iterators/move_iterator/greedy_ops.cc: Don't test
854         difference operator.
855         * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Only test
856         difference operator for C++98.
857         * testsuite/24_iterators/reverse_iterator/71771.cc: New test.
859         * include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
860         * include/bits/range_access.h (begin, end, rbegin, rend, crbegin)
861         (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
862         * include/bits/stl_iterator.h (reverse_iterator, move_iterator)
863         (__make_reverse_iterator, make_reverse_iterator, make_move_iterator):
864         Likewise.
865         * include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add
866         _GLIBCXX14_CONSTEXPR.
867         (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
868         * include/std/array (array::begin, array::end, array::rbegin)
869         (array::rend, array::cbegin, array:cend, array::crbegin)
870         (array::crend, array::operator[], array::at, array::front)
871         (array::back, array::data): Likewise.
872         * testsuite/24_iterators/headers/iterator/range_access.cc: Replace
873         with separate tests for C++11, C++14, and C++17.
874         * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
875         * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
876         * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.
878 2016-08-22  Tim Shen  <timshen@google.com>
880         Split _M_dfs() into smaller functions.
881         * regex_executor.h(_M_handle_repeat, _M_handle_subexpr_begin)
882         (_M_handle_subexpr_end, _M_handle_line_begin_assertion)
883         (_M_handle_line_end_assertion, _M_handle_word_boundary)
884         (_M_handle_subexpr_lookahead, _M_handle_match)
885         (_M_handle_backref, _M_handle_accept, _M_handle_alternative):
886         Add separate function declarations.
887         * regex_executor.tcc: Split _M_dfs() into multiple handler functions.
889 2016-08-22  Gleb Natapov  <gleb@scylladb.com>
891         PR libstdc++/68297
892         * config/abi/pre/gnu-versioned-namespace.ver: Export
893         __cxa_init_primary_exception and std::exception_ptr(void*).
894         * config/abi/pre/gnu.ver (CXXABI_1.3.11) : Add new symbol version and
895         export __cxa_init_primary_exception and std::exception_ptr(void*).
896         * include/Makefile.am: Add new headers.
897         * include/Makefile.in: Regenerate.
898         * libsupc++/Makefile.am: Add new headers.
899         * libsupc++/Makefile.in: Regenerate.
900         * libsupc++/cxxabi.h (__cxa_allocate_exception): Move to ...
901         * libsupc++/cxxabi_init_exception.h: New header.
902         (__cxa_init_primary_exception): Declare.
903         * libsupc++/eh_throw.cc (__cxa_init_primary_exception): Define.
904         (__cxa_throw): Use __cxa_init_primary_exception.
905         * libsupc++/exception (std::exception): Move to ...
906         * libsupc++/exception.h: New header.
907         * libsupc++/exception_ptr.h (__exception_ptr::exception_ptr): Add
908         friend declaration.
909         (__exception_ptr::__dest_thunk): New function template.
910         (std::make_exception_ptr) [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]:
911         Use __cxa_allocate_exception and __cxa_init_primary_exception to
912         create exception_ptr.
913         * libsupc++/typeinfo: Include bits/exception.h instead of exception.
914         * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.11 version.
916 2016-08-22  Jonathan Wakely  <jwakely@redhat.com>
918         * doc/xml/api.xml: Replace hardcoded links for specific versions with
919         link to docs for all releases.
920         * doc/html/*: Regenerate.
922         PR libstdc++/77322
923         * doc/xml/manual/intro.xml: Document DR 2062 change.
924         * include/std/functional (function::swap): Add noexcept.
925         (swap(function<Res(Args...)&, function<Res(Args...)&)): Likewise.
926         * testsuite/20_util/function/77322.cc: New test.
928 2016-08-19  Jonathan Wakely  <jwakely@redhat.com>
930         * testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
931         *-*-solaris* instead of -pthreads.
932         * testsuite/21_strings/basic_string/pthread4.cc : Likewise.
933         * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
934         * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
935         * testsuite/23_containers/list/pthread1.cc: Likewise.
936         * testsuite/23_containers/list/pthread5.cc: Likewise.
937         * testsuite/23_containers/map/pthread6.cc: Likewise.
938         * testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
939         * testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
940         * testsuite/30_threads/shared_mutex/*: Likewise.
941         * testsuite/ext/rope/pthread7-rope.cc: Likewise.
942         * testsuite/tr1/2_general_utilities/shared_ptr/thread/
943         default_weaktoshared.cc: Likewise.
944         * testsuite/tr1/2_general_utilities/shared_ptr/thread/
945         mutex_weaktoshared.cc: Likewise.
946         * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
947         dg-require-effective-target instead of using -std option.
948         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
949         Likewise.
950         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
951         * testsuite/23_containers/vector/debug/multithreaded_swap.cc:
952         Likewise.
953         * testsuite/30_threads/async/*: Likewise.
954         * testsuite/30_threads/call_once/*: Likewise.
955         * testsuite/30_threads/condition_variable/*: Likewise.
956         * testsuite/30_threads/condition_variable_any/*: Likewise.
957         * testsuite/30_threads/future/*: Likewise.
958         * testsuite/30_threads/lock/*: Likewise.
959         * testsuite/30_threads/mutex/*: Likewise.
960         * testsuite/30_threads/packaged_task/*: Likewise.
961         * testsuite/30_threads/promise/*: Likewise.
962         * testsuite/30_threads/recursive_mutex/*: Likewise.
963         * testsuite/30_threads/recursive_timed_mutex/*: Likewise.
964         * testsuite/30_threads/shared_future/*: Likewise.
965         * testsuite/30_threads/shared_lock/*: Likewise.
966         * testsuite/30_threads/shared_timed_mutex/*: Likewise.
967         * testsuite/30_threads/this_thread/*: Likewise.
968         * testsuite/30_threads/thread/*: Likewise.
969         * testsuite/30_threads/timed_mutex/*: Likewise.
970         * testsuite/30_threads/try_lock/*: Likewise.
971         * testsuite/30_threads/unique_lock/*: Likewise.
973         * doc/xml/manual/status_cxx2017.xml: Update status of not_fn.
974         * doc/html/*: Regenerate.
975         * include/experimental/functional (_Not_fn, not_fn): Match C++17
976         semantics.
977         * include/std/functional (_Not_fn, not_fn): Define for C++17.
978         * testsuite/20_util/not_fn/1.cc: New.
979         * testsuite/experimental/functional/not_fn.cc: Test abstract class.
980         Remove test for volatile-qualified wrapper.
982         * include/std/atomic (atomic::is_always_lock_free): Define.
983         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
984         * testsuite/29_atomics/atomic/is_always_lock_free.cc: New.
985         * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: New.
986         * doc/xml/manual/status_cxx2017.xml: Update status.
987         * doc/html/*: Regenerate.
989         * include/experimental/tuple (apply): Qualify call to __apply_impl.
990         * include/std/tuple (apply): Likewise.
991         * testsuite/experimental/system_error/value.cc: Fix ambiguities in
992         C++17 mode.
993         * testsuite/experimental/tuple/tuple_size.cc: Likewise.
994         * testsuite/experimental/type_traits/value.cc: Likewise.
996         * doc/xml/manual/status_cxx2017.xml: Update status of make_from_tuple
997         and variant.
998         * doc/html/*: Regenerate.
1000 2016-08-18  Ville Voutilainen  <ville.voutilainen@gmail.com>
1002         Implement the latest proposed resolution of LWG 2756.
1003         * include/std/optional (Optional_base(const _Tp&))
1004         (Optional_base(_Tp&&), using _Base::_Base): Remove.
1005         (optional(nullopt_t)): New.
1006         (optional(_Up&&)): Invoke base directly with in_place
1007         rather than creating a temporary, add default template
1008         argument, change constraints.
1009         (optional(const optional<_Up>&)): Invoke base directly
1010         with in_place, remove unnecessary constraints.
1011         (optional(optional<_Up>&& __t)): Likewise.
1012         (optional(in_place_t, _Args&&...)): New.
1013         (optional(in_place_t, initializer_list<_Up>, _Args&&...)): Likewise.
1014         (operator=(_Up&&)): Add default template argument, change constraints.
1015         (operator=(const optional<_Up>&)): Put is_same first in the
1016         constraints.
1017         (operator=(optional<_Up>&&)): Likewise.
1018         * testsuite/20_util/optional/assignment/5.cc: Add a test to
1019         verify assignment from something that can't be perfect-forwarded.
1020         * testsuite/20_util/optional/cons/value.cc: Add tests to verify
1021         that a nested optional is disengaged when constructed
1022         from a disengaged element type, and to verify that assignments
1023         from an engaged element type engage the optional.
1025 2016-08-18  Tim Shen  <timshen@google.com>
1027         Implement <variant>
1029         * include/Makefile.am: Add new file std/variant.
1030         * include/Makefile.in: Generated from Makefile.am.
1031         * include/bits/enable_special_members.h: Add a tag type to allow
1032         the construction in non-default constructor.
1033         * include/bits/uses_allocator.h: Add convenience traits to
1034         detect constructibility.
1035         * include/std/variant: Implement <variant>.
1036         * testsuite/20_util/variant/compile.cc: Compile-time tests.
1037         * testsuite/20_util/variant/run.cc: Runtime tests.
1039 2016-08-18  Jonathan Wakely  <jwakely@redhat.com>
1041         * doc/xml/manual/test.xml (test.run.permutations): Expand section.
1042         (test.new_tests): Rewrite section.
1043         (tests.dg.directives): New section.
1044         * doc/html/*: Regenerate.
1046         * doc/xml/manual/test.xml: Improve documentation of test targets.
1047         Document new-abi-baseline, check-debug, and check-parallel targets.
1049         * doc/xml/manual/build_hacking.xml: New section on shared library
1050         versioning.
1052         * doc/xml/manual/build_hacking.xml: Improve markup.
1053         * doc/xml/manual/test.xml: Likewise. Change section title from "Test"
1054         to "Testing".
1055         * doc/xml/faq.xml: Change link text to "Testing".
1057         * testsuite/tr1/3_function_objects/function/10.cc: Remove unintended
1058         dg-options directive.
1060 2016-08-17  Jonathan Wakely  <jwakely@redhat.com>
1062         * testsuite/20_util/reference_wrapper/invoke-2.cc: Fix invalid dg-do
1063         directive and use effective target instead of dg-options.
1065         * testsuite/20_util/hash/chi2_q_bit_flip_set.cc: Use effective target
1066         instead of -std in dg-options.
1067         * testsuite/20_util/hash/chi2_q_bit_string_set.cc: Likewise.
1068         * testsuite/20_util/hash/chi2_q_numeric_pattern_set.cc: Likewise.
1069         * testsuite/20_util/hash/chi2_q_uniform_random.cc: Likewise.
1070         * testsuite/20_util/hash/quality.cc: Likewise.
1071         * testsuite/25_algorithms/heap/moveable.cc: Likewise.
1072         * testsuite/25_algorithms/heap/moveable2.cc: Likewise.
1073         * testsuite/25_algorithms/nth_element/random_test.cc: Likewise.
1074         * testsuite/25_algorithms/partial_sort/random_test.cc: Likewise.
1075         * testsuite/25_algorithms/partial_sort_copy/random_test.cc: Likewise.
1076         * testsuite/25_algorithms/sort/random_test.cc: Likewise.
1078         * testsuite/20_util/tuple/67844.cc: Require c++11 effective target.
1079         * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Likewise.
1080         * testsuite/27_io/rvalue_streams.cc: Likewise.
1082         * testsuite/26_numerics/complex/literals/types.cc: Add comment.
1084         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1085         Remove duplicate dg-options directive.
1087         * testsuite/ext/profile/all.cc: Use effective target instead of
1088         -std=gnu++11. Use dg-additional-options instead of repeating options.
1090         * testsuite/20_util/bind/ref_neg.cc: Use effective target instead of
1091         -std=gnu++11. Add -fno-show-columns to dg-options. Use dg-prune-output
1092         instead of dg-excess-errors.
1094         * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Disable
1095         test for C++17.
1096         * testsuite/experimental/chrono/value.cc: Avoid ambiguities in C++17.
1097         * testsuite/experimental/ratio/value.cc: Likewise.
1098         * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Disable test for
1099         C++17.
1100         * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise.
1101         * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise.
1102         * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise.
1103         * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise.
1104         * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise.
1105         * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
1106         * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise.
1107         * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise.
1108         * testsuite/tr1/5_numerical_facilities/special_functions/
1109         10_cyl_bessel_k/airy.cc: Adjust namespace of __detail::__airy for
1110         C++17 compatibility.
1112         * testsuite/24_iterators/headers/iterator/range_access.cc: Adjust
1113         expected signatures for C++14 compatibility.
1115         PR libstdc++/77264
1116         * include/bits/basic_string.h (operator=(__sv_type)
1117         (append(__sv_type), assign(__sv_type), insert(size_type, __sv_type))
1118         (replace(size_type, size_type, __sv_type))
1119         (replace(const_iterator, const_iterator, __sv_type))
1120         (find(__sv_type, size_type), rfind(__sv_type, size_type))
1121         (compare(size_type, size_type, __sv_type)): Reformat.
1122         (_If_sv): Define helper for SFINAE constaints.
1123         (append(const _Tp&, size_type, size_type))
1124         (assign(const _Tp&, size_type, size_type))
1125         (insert(size_type, const _Tp&, size_type, size_type))
1126         (replace(size_type, size_type, const _Tp&, size_type, size_type)):
1127         Use _If_sv.
1128         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Test
1129         SFINAE constraints.
1130         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1131         Likewise.
1132         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1133         Likewise.
1134         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1135         Likewise.
1136         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1137         Likewise.
1138         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1139         Likewise.
1140         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1141         Likewise.
1142         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1143         Likewise.
1144         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1145         Likewise.
1146         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1147         Likewise.
1148         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1149         Likewise.
1151 2016-08-16  Jonathan Wakely  <jwakely@redhat.com>
1153         PR libstdc++/72847
1154         * include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
1155         pointers to start and end of storage.
1156         * testsuite/23_containers/vector/bool/72847.cc: New test.
1157         * include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
1158         _M_finish after deallocating.
1159         (vector<bool>::_M_fill_insert): Likewise.
1160         (vector<bool>::_M_insert_range): Likewise.
1161         (vector<bool>::_M_insert_aux): Likewise.
1163 2016-08-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
1165         Implement LWG 2744 and LWG 2754.
1166         * include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
1167         (any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
1168         (any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
1169         Likewise.
1170         (emplace(_Args&&...)): Likewise.
1171         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
1172         * include/std/utility: (__is_in_place_type_impl): New.
1173         (__is_in_place_type): Likewise.
1174         * testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
1175         emplace.
1176         * testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
1177         in_place constructor.
1178         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
1179         * testsuite/20_util/any/requirements.cc: Add a test for
1180         in_place-constructing a non-default-constructible type.
1182 2016-08-15  Ville Voutilainen  <ville.voutilainen@gmail.com>
1184         Add a feature macro for C++17 make_from_tuple.
1185         * include/std/tuple (__cpp_lib_make_from_tuple): New.
1186         (__make_from_tuple_impl(_Tuple&&, index_sequence<_Idx...>)):
1187         Qualify the call to get<>().
1188         * testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
1190 2016-08-15  Uros Bizjak  <ubizjak@gmail.com>
1192         * src/filesystem/ops.cc: Always include ostream and
1193         ext/stdio_filebuf.h.
1194         (do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
1195         [_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
1196         sendfile fails with ENOSYS or EINVAL.
1198 2016-08-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1200         PR libstdc++/72840
1201         * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
1202         syntax.
1204 2016-08-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
1206         Implement C++17 make_from_tuple.
1207         * include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
1208         * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
1210 2016-08-11  Ville Voutilainen  <ville.voutilainen@gmail.com>
1212         Implement LWG 2758.
1213         * include/bits/basic_string.h
1214         (append(__sv_type, size_type, size_type)): Turn into a template,
1215         change parameter type, constrain, add a conversion to __sv_type
1216         from the dependent parameter type.
1217         (assign(__sv_type, size_type, size_type)): Likewise.
1218         (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1219         (replace(size_type, size_type, __sv_type, size_type, size_type)):
1220         Likewise.
1221         (compare(size_type, size_type,__sv_type, size_type, size_type)):
1222         Likewise.
1223         * testsuite/21_strings/basic_string/lwg2758.cc: New.
1225 2016-08-06  Jonathan Wakely  <jwakely@redhat.com>
1227         * doc/xml/manual/status_cxx2017.xml: Update status table.
1228         * doc/html/manual/status.html: Regenerate.
1230         * testsuite/lib/libstdc++.exp: Fix typo in comment.
1232         PR libstdc++/72820
1233         * include/std/functional (_Function_base::_Base_manager::_M_clone):
1234         Qualify new operator.
1235         * testsuite/20_util/function/cons/72820.cc: New test.
1237         * doc/xml/manual/status_cxx2017.xml: Add missing LFTSv2 features.
1238         * doc/html/manual/status.html: Regenerate.
1239         * include/Makefile.am: Add new header.
1240         * include/Makefile.in: Regenerate.
1241         * include/bits/invoke.h: New header.
1242         (__invoke): Make constexpr. Add && to types in exception specification.
1243         * include/experimental/tuple (apply, __apply_impl): Fix non-reserved
1244         names. Include <bits/invoke.h> and use std::__invoke.
1245         * include/std/functional (__invfwd, __invoke_impl, __invoke): Move to
1246         new header.
1247         (invoke): Add && to types in exception specification.
1248         * include/std/tuple (apply, __apply_impl): Define for C++17.
1249         * testsuite/20_util/tuple/apply/1.cc: New test.
1250         * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error
1251         lineno.
1253 2016-08-05  Jonathan Wakely  <jwakely@redhat.com>
1255         * doc/xml/manual/status_cxx2017.xml: Correct shared_from_this status.
1256         * doc/html/manual/status.html: Regenerate.
1258         * include/std/chrono (floor, ceil, round, abs): New for C++17.
1259         * testsuite/20_util/duration_cast/rounding.cc: New test.
1260         * testsuite/20_util/time_point_cast/rounding.cc: New test.
1261         * doc/xml/manual/status_cxx2017.xml: Update status table.
1262         * doc/html/manual/status.html: Regenerate.
1263         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
1264         dg-error lineno.
1265         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1266         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1267         * testsuite/20_util/duration/literals/range.cc: Likewise.
1269         * include/std/functional (__callable_functor): Remove.
1270         (_Function_handler::_M_invoke): Use __invoke instead of
1271         __callable_functor or mem_fn.
1272         (function::_Callable): Use lvalue in result_of expression.
1273         (function): Remove TODO comments about allocators.
1274         * testsuite/20_util/function/cons/refqual.cc: New test.
1276 2016-08-04  Jonathan Wakely  <jwakely@redhat.com>
1278         * doc/xml/manual/status_cxx2017.xml: Update status table.
1279         * include/std/functional (__inv_unwrap): Move to <type_traits>.
1280         (__invoke_impl): Remove exception specifications.
1281         (__invoke, invoke): Add exception specifications using
1282         __is_nothrow_callable.
1283         * include/std/type_traits (__inv_unwrap): Move from <functional>.
1284         (__is_callable_impl, __call_is_nt, __call_is_nothrow): New helpers.
1285         (__is_callable, __is_nothrow_callable): New traits.
1286         (is_callable, is_callable_v): New C++17 traits.
1287         (is_nothrow_callable, is_nothrow_callable_v): Likewise.
1288         * testsuite/20_util/is_callable/requirements/
1289         explicit_instantiation.cc: New test.
1290         * testsuite/20_util/is_callable/requirements/
1291         explicit_instantiation_ext.cc: New test.
1292         * testsuite/20_util/is_callable/requirements/typedefs.cc: New test.
1293         * testsuite/20_util/is_callable/requirements/typedefs_ext.cc: New
1294         test.
1295         * testsuite/20_util/is_callable/value.cc: New test.
1296         * testsuite/20_util/is_callable/value_ext.cc: New test.
1297         * testsuite/20_util/is_nothrow_callable/requirements/
1298         explicit_instantiation.cc: New test.
1299         * testsuite/20_util/is_nothrow_callable/requirements/
1300         explicit_instantiation_ext.cc: New test.
1301         * testsuite/20_util/is_nothrow_callable/requirements/typedefs.cc:
1302         New test.
1303         * testsuite/20_util/is_nothrow_callable/requirements/typedefs_ext.cc:
1304         New test.
1305         * testsuite/20_util/is_nothrow_callable/value.cc: New test.
1306         * testsuite/20_util/is_nothrow_callable/value_ext.cc: New test.
1308         * doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
1309         * doc/html/manual/status.html: Regenerate.
1311         * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
1312         effective target not dg-options. Move check for feature-test macro to:
1313         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
1314         New test.
1316         * include/std/functional (_Unwrap): Rename to __inv_unwrap.
1317         (__invfwd): Adjust.
1318         (__invoke_impl): Remove unused template parameters.
1319         * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
1320         parameter.
1321         * testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
1322         and test __invoke extension for C++11.
1324 2016-08-03  Jonathan Wakely  <jwakely@redhat.com>
1326         * include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
1327         Define feature-test macro.
1328         * testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
1329         for the macro.
1331         * include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
1332         * include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
1333         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
1334         * testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
1335         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
1337         * include/std/utility (as_const): Define.
1338         * testsuite/20_util/as_const/1.cc: New test.
1339         * testsuite/20_util/as_const/rvalue_neg.cc: New test.
1341         * include/bits/shared_ptr.h (owner_less): Add default template
1342         argument.
1343         * include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
1344         specialization.
1345         (owner_less<void>): Define specialization.
1346         * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1347         Update value.
1348         * testsuite/20_util/owner_less/void.cc: New test.
1349         * testsuite/experimental/feat-cxx14.cc: Update macro value tested.
1351         * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1352         Define feature-test macro.
1353         * include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
1354         * include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
1355         * include/std/type_traits (__cpp_lib_logical_traits): Fix value.
1356         (__cpp_lib_type_trait_variable_templates): Define.
1358         * include/bits/stl_function.h: Remove commented-out macro.
1359         * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1360         Define feature-test macro.
1361         * testsuite/experimental/feat-cxx14.cc: Add tests for more macros.
1363         * include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
1364         C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
1365         true.
1366         * include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
1367         do #error for C++17.
1368         * include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
1369         of __STDCPP_WANT_MATH_SPEC_FUNCS__.
1370         * include/tr1/bessel_function.tcc: Likewise.
1371         * include/tr1/beta_function.tcc: Likewise.
1372         * include/tr1/cmath: Likewise.
1373         * include/tr1/ell_integral.tcc: Likewise.
1374         * include/tr1/exp_integral.tcc: Likewise.
1375         * include/tr1/gamma.tcc: Likewise.
1376         * include/tr1/hypergeometric.tcc: Likewise.
1377         * include/tr1/legendre_function.tcc: Likewise.
1378         * include/tr1/modified_bessel_func.tcc: Likewise.
1379         * include/tr1/poly_hermite.tcc: Likewise.
1380         * include/tr1/poly_laguerre.tcc: Likewise.
1381         * include/tr1/riemann_zeta.tcc: Likewise.
1382         * include/tr1/special_function_util.h: Likewise.
1383         * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.
1385         * include/std/type_traits (has_trivial_default_constructor): Remove.
1386         (has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
1387         * testsuite/20_util/has_trivial_copy_assign/requirements/
1388         explicit_instantiation.cc: Remove test.
1389         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
1390         line number.
1391         * testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
1392         Likewise.
1393         * testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
1394         * testsuite/20_util/has_trivial_copy_constructor/requirements/
1395         explicit_instantiation.cc: Likewise.
1396         * testsuite/20_util/has_trivial_copy_constructor/requirements/
1397         typedefs.cc: Likewise.
1398         * testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
1399         * testsuite/20_util/has_trivial_default_constructor/requirements/
1400         explicit_instantiation.cc: Likewise.
1401         * testsuite/20_util/has_trivial_default_constructor/requirements/
1402         typedefs.cc: Likewise.
1403         * testsuite/20_util/has_trivial_default_constructor/value.cc:
1404         Likewise.
1405         * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1406         Check has_trivial_default_constructor, has_trivial_copy_constructor,
1407         and has_trivial_copy_assign are not defined.
1408         * testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
1409         tests.
1410         * testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
1411         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
1412         dg-error line number.
1413         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1414         Likewise.
1416 2016-08-02  Jonathan Wakely  <jwakely@redhat.com>
1418         * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
1419         Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
1420         * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
1421         Likewise.
1422         * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
1423         Likewise.
1424         * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
1425         Likewise.
1426         * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
1427         Likewise.
1428         * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
1429         Likewise.
1430         * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
1431         Likewise.
1433         * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
1434         comments.
1436         * testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
1437         dg-error to relevant line.
1438         * testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
1439         Likewise.
1440         * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.
1442         * scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.
1444         * testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
1445         options are present that aren't valid for C.
1446         * testsuite/abi/header_cxxabi.c: Likewise.
1448         * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
1449         check_value.cc: Do not add special functions to namespace std in TR1
1450         test.
1452         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
1453         run for C++11 and later.
1454         * testsuite/ext/special_functions/conf_hyperg/check_value.cc:
1455         Likewise.
1456         * testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
1457         * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
1458         * testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
1459         * testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
1460         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
1461         Likewise.
1462         * testsuite/special_functions/01_assoc_laguerre/check_value.cc:
1463         Likewise.
1464         * testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
1465         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
1466         Likewise.
1467         * testsuite/special_functions/02_assoc_legendre/check_nan.cc:
1468         Likewise.
1469         * testsuite/special_functions/02_assoc_legendre/check_value.cc:
1470         Likewise.
1471         * testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
1472         * testsuite/special_functions/02_assoc_legendre/compile_2.cc:
1473         * testsuite/special_functions/03_beta/check_nan.cc: Likewise.
1474         * testsuite/special_functions/03_beta/check_value.cc: Likewise.
1475         * testsuite/special_functions/03_beta/compile.cc: Likewise.
1476         * testsuite/special_functions/03_beta/compile_2.cc: Likewise.
1477         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
1478         * testsuite/special_functions/04_comp_ellint_1/check_value.cc:
1479         Likewise.
1480         * testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
1481         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
1482         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
1483         * testsuite/special_functions/05_comp_ellint_2/check_value.cc:
1484         Likewise.
1485         * testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
1486         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
1487         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
1488         * testsuite/special_functions/06_comp_ellint_3/check_value.cc:
1489         Likewise.
1490         * testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
1491         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
1492         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
1493         * testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
1494         Likewise.
1495         * testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
1496         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
1497         * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
1498         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
1499         * testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
1500         Likewise.
1501         * testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
1502         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
1503         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
1504         * testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
1505         Likewise.
1506         * testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
1507         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
1508         * testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
1509         * testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
1510         * testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
1511         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
1512         * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
1513         * testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
1514         * testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
1515         * testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
1516         * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
1517         * testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
1518         * testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
1519         * testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
1520         * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
1521         * testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
1522         * testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
1523         * testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
1524         * testsuite/special_functions/14_expint/check_nan.cc: Likewise.
1525         * testsuite/special_functions/14_expint/check_value.cc: Likewise.
1526         * testsuite/special_functions/14_expint/compile.cc: Likewise.
1527         * testsuite/special_functions/14_expint/compile_2.cc: Likewise.
1528         * testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
1529         * testsuite/special_functions/15_hermite/check_value.cc: Likewise.
1530         * testsuite/special_functions/15_hermite/compile.cc: Likewise.
1531         * testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
1532         * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
1533         * testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
1534         * testsuite/special_functions/16_laguerre/compile.cc: Likewise.
1535         * testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
1536         * testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
1537         * testsuite/special_functions/17_legendre/check_value.cc: Likewise.
1538         * testsuite/special_functions/17_legendre/compile.cc: Likewise.
1539         * testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
1540         * testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
1541         * testsuite/special_functions/18_riemann_zeta/check_value.cc:
1542         Likewise.
1543         * testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
1544         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
1545         * testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
1546         * testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
1547         * testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
1548         * testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
1549         * testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
1550         * testsuite/special_functions/20_sph_legendre/check_value.cc:
1551         Likewise.
1552         * testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
1553         * testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
1554         * testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
1555         * testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
1556         * testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
1557         * testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.
1559         * testsuite/tr1/5_numerical_facilities/special_functions/
1560         08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
1561         of [[gnu::unused]].
1562         * testsuite/tr1/5_numerical_facilities/special_functions/
1563         09_cyl_bessel_j/check_value.cc: Likewise.
1564         * testsuite/tr1/5_numerical_facilities/special_functions/
1565         10_cyl_bessel_k/check_value.cc: Likewise.
1566         * testsuite/tr1/5_numerical_facilities/special_functions/
1567         11_cyl_neumann/check_value.cc: Likewise.
1568         * testsuite/tr1/5_numerical_facilities/special_functions/
1569         21_sph_bessel/check_value.cc: Likewise.
1570         * testsuite/tr1/5_numerical_facilities/special_functions/
1571         23_sph_neumann/check_value.cc: Likewise.
1573 2016-08-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1575         * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
1576         * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
1577         * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
1578         * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
1579         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
1580         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.
1582 2016-08-02  Jonathan Wakely  <jwakely@redhat.com>
1584         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
1585         test if -flto used.
1587         * testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
1588         additional flags for compiling libtestc++.a objects.
1590 2016-08-01  Jonathan Wakely  <jwakely@redhat.com>
1592         * include/bits/basic_string.h (data() const): Update comment.
1593         (data()): Add non-const overload for C++17.
1594         * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
1595         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
1597         * include/bits/basic_string.tcc: Disable explicit instantiation
1598         declarations for C++17.
1600         * testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
1601         ignored "xfail" from { dg-do compile { xfail selector } } directive.
1602         * testsuite/23_containers/unordered_multimap/requirements/53339.cc:
1603         Likewise.
1604         * testsuite/26_numerics/headers/cmath/
1605         c99_classification_macros_c++11.cc: Likewise.
1606         * testsuite/26_numerics/headers/cmath/
1607         c99_classification_macros_c++98.cc: Likewise.
1608         * testsuite/26_numerics/headers/cmath/
1609         c99_classification_macros_c.cc: Likewise.
1611         * testsuite/backward/hash_set/check_construct_destroy.cc: Account
1612         for different construct/destroy counts in C++98 mode.
1614         * testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.
1616         * testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
1617         later.
1618         * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
1619         Likewise.
1621         * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
1622         C++98-compatible initialization for array.
1624         * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
1625         unused header and variable from compile-only test.
1626         * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
1627         * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
1628         * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
1629         * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
1630         Likewise.
1632         * testsuite/experimental/string_view/operations/rfind/char/2.cc:
1633         Remove duplicate dg-options directive.
1635         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
1636         808590.cc: Use -std=gnu++98 instead of -std=gnu++03.
1638         * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
1639         linker options from compile-only tests.
1640         * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1641         Likewise.
1643         * testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
1644         supported for C++11 and later.
1645         * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
1646         * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
1648 2016-08-01  Uros Bizjak  <ubizjak@gmail.com>
1650         * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.
1652 2016-07-31  Jonathan Wakely  <jwakely@redhat.com>
1654         * testsuite/20_util/conditional/requirements/typedefs.cc: Change to
1655         compile-only test.
1657         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1658         Ensure test is compiled with optimization.
1660         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1661         Adjust dg-prune-output pattern for error in C++98 mode.
1663         * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
1664         run for C++11 or later.
1666         * testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
1667         test to not rely on GNU extension (escaped normal characters in POSIX
1668         BRE). Enable tests for other strings which are now supported.
1670         * testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
1671         c++11 instead of setting -std=gnu++14.
1673         PR libstdc++/72745
1674         * include/std/array (get): Use positive message for static assertions.
1675         * include/std/functional (_Safe_tuple_element_t): Fix indentation.
1676         * include/std/tuple (tuple_element<I, tuple<>>): Add partial
1677         specialization for invalid indices, with static assertion.
1678         * testsuite/20_util/tuple/element_access/get_neg.cc: New test.
1680         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
1681         dg-error to relevant line.
1682         * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
1683         Likewise.
1684         * testsuite/23_containers/forward_list/requirements/dr438/
1685         assign_neg.cc: Likewise.
1686         * testsuite/23_containers/forward_list/requirements/dr438/
1687         constructor_1_neg.cc: Likewise.
1688         * testsuite/23_containers/forward_list/requirements/dr438/
1689         constructor_2_neg.cc: Likewise.
1690         * testsuite/23_containers/forward_list/requirements/dr438/
1691         insert_neg.cc: Likewise.
1692         * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1693         Likewise.
1694         * testsuite/26_numerics/random/linear_congruential_engine/
1695         requirements/non_uint_neg.cc: Likewise.
1696         * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
1697         Likewise. Also test for std::atomic_address.
1699 2016-07-31  Ville Voutilainen  <ville.voutilainen@gmail.com>
1701         Add missing variable traits, fix testsuite failures.
1702         * include/bits/uses_allocator.h (uses_allocator_v): New.
1703         * include/std/functional (is_bind_expression_v, is_placeholder_v):
1704         Likewise.
1705         * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
1706         * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
1707         * testsuite/20_util/duration/literals/range.cc: Likewise.
1708         * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
1709         * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
1710         * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
1711         * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
1712         * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
1713         Likewise.
1714         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
1715         * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
1716         New.
1718 2016-07-31  Jonathan Wakely  <jwakely@redhat.com>
1720         * testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
1721         not test 128-bit types.
1722         * testsuite/20_util/is_floating_point/value.cc: Likewise.
1723         * testsuite/20_util/is_integral/value.cc: Likewise.
1724         * testsuite/20_util/is_signed/value.cc: Likewise.
1725         * testsuite/20_util/is_unsigned/value.cc: Likewise.
1726         * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
1727         * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
1728         * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
1729         Likewise.
1730         * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
1731         Likewise.
1733         * testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.
1735 2016-07-29  Ville Voutilainen  <ville.voutilainen@gmail.com>
1737         Implement C++17 variable templates for type traits.
1738         * include/std/chrono (treat_as_floating_point_v): New.
1739         * include/std/ratio (ratio_equal_v, ratio_not_equal_v)
1740         (ratio_less_v, ratio_less_equal_v, ratio_greater_v)
1741         (ratio_greater_equal_v): Likewise.
1742         * include/std/system_error (is_error_code_enum_v)
1743         (is_error_condition_enum_v): Likewise.
1744         * include/std/tuple (tuple_size_v): Likewise.
1745         * type_traits (conjunction_v, disjunction_v, negation_v)
1746         (is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
1747         (is_array_v, is_pointer_v, is_lvalue_reference_v)
1748         (is_rvalue_reference_v, is_member_object_pointer_v)
1749         (is_member_function_pointer_v, is_enum_v, is_union_v)
1750         (is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
1751         (is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
1752         (is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
1753         (is_trivially_copyable_v, is_standard_layout_v)
1754         (is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
1755         (is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
1756         (is_constructible_v, is_default_constructible_v)
1757         (is_copy_constructible_v, is_move_constructible_v)
1758         (is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
1759         (is_destructible_v, is_trivially_constructible_v)
1760         (is_trivially_default_constructible_v)
1761         (is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
1762         (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1763         (is_trivially_move_assignable_v, is_trivially_destructible_v)
1764         (is_nothrow_constructible_v, is_nothrow_default_constructible_v)
1765         (is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
1766         (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1767         (is_nothrow_move_assignable_v, is_nothrow_destructible_v)
1768         (has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
1769         (is_same_v, is_base_of_v, is_convertible_v): Likewise.
1770         * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
1771         * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
1772         Likewise.
1773         * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
1774         * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
1775         * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
1777 2016-07-29  Andreas Schwab  <schwab@linux-m68k.org>
1779         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1780         * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
1781         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
1783 2016-07-29  Jonathan Wakely  <jwakely@redhat.com>
1785         * doc/xml/manual/abi.xml: Document 6.0.22 library version.
1786         * doc/html/manual/abi.html: Regenerate.
1788         * acinclude.m4 (libtool_VERSION): Bump to 6:23:0.
1789         * config/abi/pre/gnu.ver: Add 3.4.23 version for new basic_string
1790         symbols.
1791         * configure: Regenerate.
1792         * testsuite/util/testsuite_abi.cc: Add new symbol version.
1794         * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
1795         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
1796         * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
1797         * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
1798         Likewise.
1799         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
1800         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
1801         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
1803 2016-07-28  Jonathan Wakely  <jwakely@redhat.com>
1805         * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
1806         Adjust dg-prune-output pattern for error in C++98 mode.
1807         * testsuite/23_containers/deque/requirements/dr438/
1808         constructor_1_neg.cc: Likewise.
1809         * testsuite/23_containers/deque/requirements/dr438/
1810         constructor_2_neg.cc: Likewise.
1811         * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
1812         Likewise.
1813         * testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
1814         Likewise.
1815         * testsuite/23_containers/list/requirements/dr438/
1816         constructor_1_neg.cc: Likewise.
1817         * testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
1818         Likewise.
1819         * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
1820         Likewise.
1821         * testsuite/23_containers/vector/requirements/dr438/
1822         constructor_1_neg.cc: Likewise.
1823         * testsuite/23_containers/vector/requirements/dr438/
1824         constructor_2_neg.cc: Likewise.
1825         * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
1826         Likewise.
1828         * testsuite/23_containers/vector/check_construct_destroy.cc: Account
1829         for different construct/destroy counts in C++98 mode.
1831         * testsuite/17_intro/headers/c++2011/stdc++.cc: Change target-specific
1832         dg-options to dg-additional-options so that default options are used.
1833         * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
1834         Likewise.
1835         * testsuite/17_intro/headers/c++2014/stdc++.cc: Likewise.
1836         * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
1837         Likewise.
1838         * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
1839         Use dg-additional-options instead of repeating the common options.
1841         * testsuite/22_locale/conversions/string/1.cc: Remove unintended
1842         dg-do compile directive.
1843         * testsuite/26_numerics/headers/cmath/fabs_inline.cc: Fix syntax of
1844         dg-do directive.
1845         * testsuite/26_numerics/valarray/const_bracket.cc: Likewise.
1847 2016-07-28  Ville Voutilainen  <ville.voutilainen@gmail.com>
1849         Implement std::string_view and P0254r2,
1850         Integrating std::string_view and std::string.
1851         * include/Makefile.am: Add string_view and string_view.tcc
1852         to the exported headers.
1853         * include/Makefile.in: Likewise.
1854         * include/bits/basic_string.h: Include <string_view> in C++17 mode.
1855         (__sv_type): New.
1856         (basic_string(__sv_type, const _Alloc&)): Likewise.
1857         (operator=(__sv_type)): Likewise.
1858         (operator __sv_type()): Likewise.
1859         (operator+=(__sv_type)): Likewise.
1860         (append(__sv_type __sv)): Likewise.
1861         (append(__sv_type, size_type, size_type)): Likewise.
1862         (assign(__sv_type)): Likewise.
1863         (assign(__sv_type, size_type, size_type)): Likewise.
1864         (insert(size_type, __sv_type)): Likewise.
1865         (insert(size_type, __sv_type, size_type, size_type)): Likewise.
1866         (replace(size_type, size_type, __sv_type)): Likewise.
1867         (replace(size_type, size_type, __sv_type, size_type, size_type)):
1868         Likewise.
1869         (replace(const_iterator, const_iterator, __sv_type)): Likewise.
1870         (find(__sv_type, size_type)): Likewise.
1871         (rfind(__sv_type, size_type)): Likewise.
1872         (find_first_of(__sv_type, size_type)): Likewise.
1873         (find_last_of(__sv_type, size_type)): Likewise.
1874         (find_first_not_of(__sv_type, size_type)): Likewise.
1875         (find_last_not_of(__sv_type, size_type)): Likewise.
1876         (compare(__sv_type)): Likewise.
1877         (compare(size_type, size_type, __sv_type)): Likewise.
1878         (compare(size_type, size_type, __sv_type, size_type, size_type)):
1879         Likewise.
1880         * include/bits/string_view.tcc: New.
1881         * include/std/string_view: Likewise.
1882         * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
1883         * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
1884         * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
1885         Likewise.
1886         * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
1887         Likewise.
1888         * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
1889         Likewise.
1890         * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
1891         Likewise.
1892         * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
1893         Likewise.
1894         * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
1895         Likewise.
1896         * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
1897         Likewise.
1898         * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
1899         Likewise.
1900         * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
1901         Likewise.
1902         * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
1903         Likewise.
1904         * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1905         Likewise.
1906         * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1907         Likewise.
1908         * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise.
1909         * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise.
1910         * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise.
1911         * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise.
1912         * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise.
1913         * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise.
1914         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise.
1915         * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise.
1916         * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise.
1917         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1918         Likewise.
1919         * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1920         Likewise.
1921         * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1922         Likewise.
1923         * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1924         Likewise.
1925         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1926         Likewise.
1927         * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1928         Likewise.
1929         * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1930         Likewise.
1931         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1932         Likewise.
1933         * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1934         * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise.
1935         * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise.
1936         * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise.
1937         * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1938         Likewise.
1939         * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1940         Likewise.
1941         * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1942         Likewise.
1943         * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1944         Likewise.
1945         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1946         Likewise.
1947         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1948         Likewise.
1949         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1950         Likewise.
1951         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1952         Likewise.
1953         * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1954         Likewise.
1955         * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1956         Likewise.
1957         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1958         Likewise.
1959         * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1960         Likewise.
1961         * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1962         Likewise.
1963         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1964         Likewise.
1965         * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1966         Likewise.
1967         * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1968         Likewise.
1969         * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1970         Likewise.
1971         * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1972         Likewise.
1973         * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1974         Likewise.
1975         * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1976         Likewise.
1977         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1978         Likewise.
1979         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1980         Likewise.
1981         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1982         Likewise.
1983         * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1984         Likewise.
1985         * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1986         Likewise.
1987         * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1988         Likewise.
1989         * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1990         Likewise.
1991         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1992         Likewise.
1993         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1994         Likewise.
1995         * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1996         Likewise.
1997         * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1998         Likewise.
1999         * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2000         Likewise.
2001         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2002         Likewise.
2003         * testsuite/21_strings/basic_string_view/operators/char/2.cc: Likewise.
2004         * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2005         Likewise.
2006         * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2007         Likewise.
2008         * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2009         Likewise.
2010         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2011         Likewise.
2012         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2013         Likewise.
2014         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2015         Likewise.
2016         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2017         Likewise.
2018         * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2019         Likewise.
2020         * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2021         Likewise.
2022         * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2023         * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2025 2016-07-27  Jonathan Wakely  <jwakely@redhat.com>
2027         * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
2029 2016-07-25  Georeth Chow  <georeth2010@gmail.com>
2031         * include/ext/ropeimpl.h (rope<>::_S_dump(_RopeRep*, int)): Qualify
2032         _S_concat enumerator.
2033         * testsuite/ext/rope/6.cc: New test.
2035 2016-07-25  Jonathan Wakely  <jwakely@redhat.com>
2037         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
2038         std::mt19937, std::thread and std::atomic to simplify test.
2039         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
2041 2016-07-22  Jonathan Wakely  <jwakely@redhat.com>
2043         PR libstdc++/71964
2044         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2045         (basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
2046         * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
2047         * testsuite/21_strings/basic_string/allocator/71964.cc: New test.
2048         * testsuite/23_containers/set/allocator/71964.cc: New test.
2050         * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
2051         delete[] instead of delete.
2053 2016-07-21  Jonathan Wakely  <jwakely@redhat.com>
2055         * include/experimental/propagate_const (propagate_const::__t): Rename
2056         to _M_t and remove comment. Qualify std::move and std::forward.
2057         * testsuite/experimental/propagate_const/cons/default.cc: Fix test.
2059         * testsuite/23_containers/vector/zero_sized_allocations.cc:
2060         Define sized deallocation function.
2061         * testsuite/util/testsuite_new_operators.h:
2062         (operator delete(void*, const std::nothrow_t&)): Define nothrow
2063         deallocation function.
2065         * testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
2066         reads past the end of strings.
2067         * testsuite/21_strings/basic_string/operations/compare/char/1.cc:
2068         Likewise.
2069         * testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
2070         invalid array accesses.
2071         * testsuite/experimental/string_view/operations/compare/char/1.cc:
2072         Fix read past the end of string.
2073         * testsuite/util/testsuite_character.cc: Fix out-of-bounds write.
2075         * testsuite/24_iterators/container_access.cc: Fix missing returns.
2076         * testsuite/24_iterators/range_access_cpp14.cc: Likewise.
2078         * testsuite/18_support/new_delete_placement.cc: Don't allocate (and
2079         leak) memory for arguments to placement delete.
2080         * testsuite/20_util/addressof/1.cc: Don't leak memory.
2081         * testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
2082         * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
2083         Likewise.
2085 2016-07-20  Jonathan Wakely  <jwakely@redhat.com>
2087         * doc/xml/manual/intro.xml: Document DR 2684 status.
2088         * doc/html/*: Regenerate.
2090         * include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
2091         (atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
2092         (atomic_uint64_t): Define (LWG 2441).
2093         * testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
2094         lines.
2095         * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
2096         the new types.
2097         * doc/xml/manual/intro.xml: Document DR 2441 status.
2099         * include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
2100         to use perfect forwarding (LWG 2328).
2101         * testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
2102         * doc/xml/manual/intro.xml: Document DR 2328 status.
2104         * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
2105         static objects for catching nullptr as pointer to member types.
2107 2016-07-18  Ville Voutilainen  <ville.voutilainen@gmail.com>
2109         Clean up optional's comments.
2110         * include/std/optional: Remove incorrect section headers
2111         from comments when redundant, replace bare section
2112         headers with more descriptive comments.
2114 2016-07-15  Jonathan Wakely  <jwakely@redhat.com>
2116         * include/bits/algorithmfwd.h: Change C++0x to C++11 in comments.
2117         * include/bits/move.h: Likewise.
2118         * include/bits/postypes.h: Likewise.
2119         * include/debug/bitset: Likewise.
2120         * include/ext/pb_ds/detail/type_utils.hpp: Likewise.
2121         * include/ext/string_conversions.h: Change C++0x to __cxx11 in
2122         comment.
2123         * testsuite/27_io/fpos/14320-1.cc: Change C++0x to C++11 in comment.
2124         * testsuite/util/thread/all.h: Likewise.
2126         * include/bits/stl_algo.h (for_each): Remove redundant _GLIBCXX_MOVE
2127         and adjust comment.
2129         PR c++/58796
2130         * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make
2131         nullptr match handlers of pointer type.
2133 2016-07-15  Edward Smith-Rowland  <3dw4rd@verizon.net>
2135         Implement C++17 P0025 clamp.
2136         * include/bits/algorithmfwd.h: Declare clamp overloads.
2137         * include/bits/stl_algo.h: Implement clamp.  Feature __cpp_lib_clamp.
2138         * testsuite/25_algorithms/clamp/1.cc: New test.
2139         * testsuite/25_algorithms/clamp/2.cc: New test.
2140         * testsuite/25_algorithms/clamp/constexpr.cc: New test.
2141         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2142         1.cc: New test.
2143         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/
2144         pod.cc: New test.
2146 2016-07-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
2148         Fix the constraints for any's assignment operator template to properly
2149         reject assignment from a non-copyable lvalue.
2150         * include/std/any (operator=(_ValueType&&)): Constrain the decayed
2151         type for is_copy_constructible,
2152         * testsuite/20_util/any/requirements.cc: Add a test for
2153         non-copyable lvalues.
2155 2016-07-14  Jonathan Wakely  <jwakely@redhat.com>
2157         * include/experimental/functional: Include <parallel/algorithm> in
2158         Parallel Mode.
2160         * testsuite/experimental/functional/searchers.cc: Include <algorithm>
2161         for std::search.
2163         PR libstdc++/70716
2164         * include/bits/forward_list.h (forward_list): Update doxygen comments
2165         to reflect allocator propagation semantics. Remove ambiguous
2166         statements about data being lost.
2167         * include/bits/stl_deque.h (deque): Likewise.
2168         * include/bits/stl_list.h (list): Likewise.
2169         * include/bits/stl_map.h (map): Likewise.
2170         * include/bits/stl_multimap.h (multimap): Likewise.
2171         * include/bits/stl_multiset.h (multiset): Likewise.
2172         * include/bits/stl_set.h (set): Likewise.
2173         * include/bits/stl_vector.h (vector): Likewise.
2174         * include/bits/unordered_map.h (unordered_map, unordered_multimap):
2175         Likewise.
2176         * include/bits/unordered_set.h (unordered_set, unordered_multiset):
2177         Likewise.
2179 2016-07-14  Ville Voutilainen  <ville.voutilainen@gmail.com>
2181         Implement P0032R3, Homogeneous interface for variant, any and optional,
2182         for the parts concerning any and optional.
2183         * include/std/any (_Storage()): Make constexpr and have it
2184         initialize _M_ptr.
2185         (any()): Make constexpr.
2186         (any(const any&)): Adjust.
2187         (any(any&&)): Likewise.
2188         (__any_constructible_t): New.
2189         (any(_ValueType&&)): Constrain.
2190         (any(in_place_type_t<_Tp>, _Args&&...)): New.
2191         (any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
2192         Likewise.
2193         (~any()): Adjust.
2194         (operator=(const any&)): Likewise.
2195         (operator=(any&&)): Likewise.
2196         (operator=(_ValueType&&)): Constrain.
2197         (emplace(_Args&&...)): New.
2198         (emplace(initializer_list<_Up>, _Args&&...)): Likewise.
2199         (clear()): Remove.
2200         (reset()): New.
2201         (swap(any&)): Adjust.
2202         (empty()): Remove.
2203         (has_value()): New.
2204         (type()): Adjust.
2205         (_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
2206         (_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
2207         (make_any(_Args&&...)): Likewise.
2208         (make_any(initializer_list<_Up>, _Args&&...)): Likewise.
2209         * include/std/optional (in_place_t, in_place): Remove.
2210         (bad_optional_access): Add a comment referring to LEWG 72.
2211         (emplace(_Args&&...)): Constrain.
2212         (has_value()): New.
2213         (reset()): Likewise.
2214         (make_optional(_Args&&...)): Likewise.
2215         (make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
2216         * include/std/utility (in_place_tag): New.
2217         (__in_place, __in_place_type, __in_place_index): Likewise.
2218         (in_place_t, in_place_type_t, in_place_index_t): Likewise.
2219         (in_place(__in_place*)): Likewise.
2220         (in_place(__in_place_type<_Tp>*)): Likewise.
2221         (in_place(__in_place_index<_Idx>*)): Likewise.
2222         * testsuite/20_util/any/assign/1.cc: Adjust.
2223         * testsuite/20_util/any/assign/emplace.cc: New.
2224         * testsuite/20_util/any/assign/self.cc: Adjust.
2225         * testsuite/20_util/any/cons/1.cc: Likewise.
2226         * testsuite/20_util/any/cons/in_place.cc: New.
2227         * testsuite/20_util/any/make_any.cc: Likewise.
2228         * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
2229         * testsuite/20_util/any/misc/swap.cc: Likewise.
2230         * testsuite/20_util/any/modifiers/1.cc: Likewise.
2231         * testsuite/20_util/any/requirements.cc: New.
2232         * testsuite/20_util/in_place/requirements.cc: Likewise.
2233         * testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
2234         * testsuite/20_util/optional/in_place.cc: Likewise.
2235         * testsuite/20_util/optional/make_optional.cc: Add tests for
2236         the new overloads of make_optional.
2238 2016-07-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2240         Implement P0307R2, Making Optional Greater Equal Again.
2241         * include/experimental/optional (_Has_addressof): Fix the comment.
2242         * include/std/optional (_Has_addressof): Likewise.
2243         (operator=(_Up&&)): Constrain.
2244         (operator=(const optional<_Up>&)): Likewise.
2245         (operator=(optional<_Up>&&)): Likewise.
2246         (__optional_relop_t): New.
2247         (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2248         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2249         Constrain and make transparent.
2250         (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2251         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2252         Constrain and make transparent.
2253         (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2254         (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2255         (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2256         (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2257         (operator!=(const optional<_Tp>&, _Tp const&)):
2258         Constrain and make transparent.
2259         (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2260         (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2261         (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2262         (operator>(const optional<_Tp>&, const _Tp&)):
2263         Constrain and make transparent.
2264         (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2265         (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2266         (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2267         (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2268         (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2269         * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2270         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2271         * testsuite/20_util/optional/relops/1.cc: Likewise.
2272         * testsuite/20_util/optional/relops/2.cc: Likewise.
2273         * testsuite/20_util/optional/relops/3.cc: Likewise.
2274         * testsuite/20_util/optional/relops/4.cc: Likewise.
2275         * testsuite/20_util/optional/requirements.cc: Add tests to verify
2276         that optional's relops are transparent and don't synthesize
2277         operators. Also test that assignment sfinaes.
2279 2016-07-13  Jonathan Wakely  <jwakely@redhat.com>
2281         PR libstdc++/71856
2282         * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
2283         * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
2284         Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
2285         on _GLIBCXX_ASSERTIONS.
2286         * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
2287         Include <unistd.h> for sleep.
2288         * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
2289         * include/parallel/merge.h: Likewise.
2290         * include/parallel/multiway_merge.h: Likewise.
2291         * include/parallel/partition.h: Likewise.
2292         * include/parallel/queue.h: Likewise.
2293         * include/parallel/sort.h: Likewise.
2294         * testsuite/25_algorithms/headers/algorithm/
2295         parallel_algorithm_assert.cc: New.
2297         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
2298         (replace(__const_iterator, __const_iterator, initializer_list<C>)):
2299         Forward to different overload.
2301         * include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
2302         static.
2304 2016-07-13  Jonathan Wakely  <jwakely@redhat.com>
2306         Revert "Add non-const overload of std::string::data()".
2308 2016-07-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
2310         Implement P0307R2, Making Optional Greater Equal Again.
2311         * include/experimental/optional (_Has_addressof): Fix the comment.
2312         * include/std/optional (_Has_addressof): Likewise.
2313         (operator=(_Up&&)): Constrain.
2314         (operator=(const optional<_Up>&)): Likewise.
2315         (operator=(optional<_Up>&&)): Likewise.
2316         (__optional_relop_t): New.
2317         (operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2318         (operator!=(const optional<_Tp>&, const optional<_Tp>&)):
2319         Constrain and make transparent.
2320         (operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
2321         (operator>(const optional<_Tp>&, const optional<_Tp>&)):
2322         Constrain and make transparent.
2323         (operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2324         (operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
2325         (operator==(const optional<_Tp>&, const _Tp&): Constrain.
2326         (operator==(const _Tp&, const optional<_Tp>&)): Likewise.
2327         (operator!=(const optional<_Tp>&, _Tp const&)):
2328         Constrain and make transparent.
2329         (operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
2330         (operator<(const optional<_Tp>&, const _Tp&)): Constrain.
2331         (operator<(const _Tp&, const optional<_Tp>&)): Likewise.
2332         (operator>(const optional<_Tp>&, const _Tp&)):
2333         Constrain and make transparent.
2334         (operator>(const _Tp&, const optional<_Tp>&)): Likewise.
2335         (operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
2336         (operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
2337         (operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
2338         (operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
2339         * testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
2340         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2341         * testsuite/20_util/optional/relops/1.cc: Likewise.
2342         * testsuite/20_util/optional/relops/2.cc: Likewise.
2343         * testsuite/20_util/optional/relops/3.cc: Likewise.
2344         * testsuite/20_util/optional/relops/4.cc: Likewise.
2345         * testsuite/20_util/optional/requirements.cc: Add tests to verify
2346         that optional's relops are transparent and don't synthesize
2347         operators. Also test that assignment sfinaes.
2349 2016-07-13  Jonathan Wakely  <jwakely@redhat.com>
2351         * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
2352         New function.
2353         (_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
2354         instead of _M_data().
2355         (basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
2356         Likewise.
2357         (append(const basic_string&)): Likewise.
2358         (append(const basic_string&, size_type, size_type)): Likewise.
2359         (assign(const basic_string&, size_type, size_type)): Likewise.
2360         (insert(size_type, const basic_string&)): Likewise.
2361         (insert(size_type, const basic_string&, size_type, size_type)):
2362         Likewise.
2363         (replace(size_type, size_type, const basic_string&, size_type,
2364         size_type)): Likewise.
2365         (replace(__const_iterator, __const_iterator, const basic_string&)):
2366         Likewise.
2367         (c_str(), data()): Use c_str() instead of _M_data().
2368         (data()): Add non-const overload as per LWG 2391 and P0272R1.
2369         (compare(const basic_string&)): Use data() instead of _M_data().
2370         [!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
2371         * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
2372         Pass raw pointers to _S_copy.
2373         (_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
2374         _S_assign.
2375         (find(const _CharT*, size_type, size_type)): Use data instead of
2376         _M_data().
2377         * testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
2378         * testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
2379         * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.
2381 2016-07-12  Jonathan Wakely  <jwakely@redhat.com>
2383         * libsupc++/new: Remove nothrow sized deletes (LWG 2458).
2384         * doc/xml/manual/intro.xml: Document DR 2458 status.
2385         * doc/html*: Regenerate.
2387         * testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
2388         * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
2389         Only include <array>.
2390         * testsuite/23_containers/array/tuple_interface/tuple_size.cc:
2391         Likewise.
2392         * doc/xml/manual/intro.xml: Document LWG 2212 support.
2393         * doc/html*: Regenerate.
2395         * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2396         Add testcase from LWG 2164.
2398 2016-07-11  François Dumont  <fdumont@gcc.gnu.org>
2400         * include/bits/stl_vector.h (push_back(const value_type&)): Forward
2401         to _M_realloc_insert.
2402         (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2403         (_M_realloc_insert): Declare new function.
2404         (_M_emplace_back_aux): Remove definition.
2405         * include/bits/vector.tcc (emplace_back(_Args...)):
2406         Use _M_realloc_insert.
2407         (insert(const_iterator, const value_type&)): Likewise.
2408         (_M_insert_rval, _M_emplace_aux): Likewise.
2409         (_M_emplace_back_aux): Remove declaration.
2410         (_M_realloc_insert): Define.
2411         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2412         Adjust expected results for emplacing an lvalue with reallocation.
2414 2016-07-10  Ville Voutilainen  <ville.voutilainen@gmail.com>
2416         Implement std::optional.
2417         * include/Makefile.am: Add optional to exported headers.
2418         * include/Makefile.in: Likewise.
2419         * include/std/optional: New.
2420         * testsuite/20_util/optional/typedefs.cc: Likewise.
2421         * testsuite/20_util/optional/relops/2.cc: Likewise.
2422         * testsuite/20_util/optional/relops/3.cc: Likewise.
2423         * testsuite/20_util/optional/relops/4.cc: Likewise.
2424         * testsuite/20_util/optional/relops/5.cc: Likewise.
2425         * testsuite/20_util/optional/relops/1.cc: Likewise.
2426         * testsuite/20_util/optional/relops/6.cc: Likewise.
2427         * testsuite/20_util/optional/nullopt.cc: Likewise.
2428         * testsuite/20_util/optional/in_place.cc: Likewise.
2429         * testsuite/20_util/optional/make_optional.cc: Likewise.
2430         * testsuite/20_util/optional/assignment/2.cc: Likewise.
2431         * testsuite/20_util/optional/assignment/3.cc: Likewise.
2432         * testsuite/20_util/optional/assignment/4.cc: Likewise.
2433         * testsuite/20_util/optional/assignment/5.cc: Likewise.
2434         * testsuite/20_util/optional/assignment/1.cc: Likewise.
2435         * testsuite/20_util/optional/assignment/6.cc: Likewise.
2436         * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2437         * testsuite/20_util/optional/cons/default.cc: Likewise.
2438         * testsuite/20_util/optional/cons/move.cc: Likewise.
2439         * testsuite/20_util/optional/cons/value.cc: Likewise.
2440         * testsuite/20_util/optional/cons/copy.cc: Likewise.
2441         * testsuite/20_util/optional/requirements.cc: Likewise.
2442         * testsuite/20_util/optional/observers/2.cc: Likewise.
2443         * testsuite/20_util/optional/observers/3.cc: Likewise.
2444         * testsuite/20_util/optional/observers/4.cc: Likewise.
2445         * testsuite/20_util/optional/observers/5.cc: Likewise.
2446         * testsuite/20_util/optional/observers/1.cc: Likewise.
2447         * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2448         * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2449         * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2450         * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2451         * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2452         * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2453         * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2454         * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2455         * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
2456         * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise.
2457         * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2458         * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2459         * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2460         * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2461         * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2462         * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2463         * testsuite/20_util/optional/swap/1.cc: Likewise.
2465 2016-07-08  Jonathan Wakely  <jwakely@redhat.com>
2467         * testsuite/23_containers/vector/modifiers/insert/aliasing.cc: New.
2469 2016-07-07  Jonathan Wakely  <jwakely@redhat.com>
2471         * doc/xml/manual/status_cxx2014.xml: Update LFTS status table.
2472         * doc/html/*: Regenerate.
2474 2016-07-07  Ville Voutilainen  <ville.voutilainen@gmail.com>
2476         Implement std::any.
2477         * include/Makefile.am: Add any and c++17_warning.h to exported headers.
2478         * include/Makefile.in: Likewise.
2479         * include/std/any: New.
2480         * testsuite/20_util/any/assign/1.cc: Likewise.
2481         * testsuite/20_util/any/assign/2.cc: Likewise.
2482         * testsuite/20_util/any/assign/self.cc: Likewise.
2483         * testsuite/20_util/any/cons/1.cc: Likewise.
2484         * testsuite/20_util/any/cons/2.cc: Likewise.
2485         * testsuite/20_util/any/cons/aligned.cc: Likewise.
2486         * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2487         * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2488         * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2489         * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2490         * testsuite/20_util/any/misc/swap.cc: Likewise.
2491         * testsuite/20_util/any/modifiers/1.cc: Likewise.
2492         * testsuite/20_util/any/observers/type.cc: Likewise.
2493         * testsuite/20_util/any/typedefs.cc: Likewise.
2495 2016-07-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
2497         Add a new header for diagnosing the use of C++17 facilities
2498         in pre-C++17 modes.
2499         * include/bits/c++17_warning.h: New.
2501 2016-07-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
2503         Implement LWG 2451, optional<T> should 'forward' T's
2504         implicit conversions.
2505         * include/experimental/optional (__is_optional_impl, __is_optional):
2506         New.
2507         (optional()): Make constexpr and default.
2508         (optional(_Up&&), optional(const optional<_Up>&),
2509         optional(optional<_Up>&& __t): New.
2510         (operator=(_Up&&)): Constrain.
2511         (operator=(const optional<_Up>&), operator=(optional<_Up>&&)): New.
2512         * testsuite/experimental/optional/cons/value.cc:
2513         Add tests for the functionality added by LWG 2451.
2514         * testsuite/experimental/optional/cons/value_neg.cc: New.
2516 2016-07-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
2518         Implement LWG 2509,
2519         any_cast doesn't work with rvalue reference targets and cannot
2520         move with a value target.
2521         * include/experimental/any (any(_ValueType&&)): Constrain and
2522         add an overload that doesn't forward.
2523         (any_cast(any&&)): Constrain and add an overload that moves.
2524         * testsuite/experimental/any/misc/any_cast.cc: Add tests for
2525         the functionality added by LWG 2509.
2527 2016-07-04  François Dumont  <fdumont@gcc.gnu.org>
2529         * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc:
2530         New test.
2531         * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New
2532         test.
2534 2016-07-04  Jonathan Wakely  <jwakely@redhat.com>
2536         * include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)):
2537         Define inline. Forward to _M_emplace_aux.
2538         (insert(const_iterator, value_type&&)): Forward to _M_insert_rval.
2539         (_M_insert_rval, _M_emplace_aux): Declare new functions.
2540         (_Temporary_value): New RAII type using allocator to construct/destroy.
2541         (_S_insert_aux_assign): Remove.
2542         (_M_insert_aux): Make non-variadic.
2543         * include/bits/vector.tcc (insert(const_iterator, const value_type&)):
2544         Use _Temporary_value.
2545         (emplace(const_iterator, _Args&&...)): Remove definition.
2546         (_M_insert_rval, _M_emplace_aux): Define.
2547         (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign.
2548         (_M_fill_insert): Use _Temporary_value.
2549         * testsuite/23_containers/vector/allocator/construction.cc: New test.
2550         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
2551         Adjust expected results for emplacing an lvalue with reallocation.
2552         * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust
2553         expected results to account for construction/destruction of temporary
2554         using allocator.
2555         * testsuite/backward/hash_set/check_construct_destroy.cc: Likewise.
2557 2016-07-04  Ville Voutilainen  <ville.voutilainen@gmail.com>
2559         PR libstdc++/71313
2560         * src/filesystem/ops.cc (remove_all(const path&, error_code&)):
2561         Call remove_all for children of a directory.
2562         * testsuite/experimental/filesystem/operations/create_directories.cc:
2563         Adjust.
2565 2016-07-02  François Dumont  <fdumont@gcc.gnu.org>
2567         * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: Adjust
2568         dg-error line numbers.
2569         * testsuite/23_containers/array/tuple_interface/
2570         tuple_element_debug_neg.cc: Likewise.
2571         * testsuite/25_algorithms/lexicographical_compare/debug/
2572         irreflexive_neg.cc: Remove.
2574 2016-06-30  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2576         * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather
2577         than specific target.
2579 2016-06-27  François Dumont  <fdumont@gcc.gnu.org>
2581         PR libstdc++/71640
2582         * include/bits/hashtable.h: Remove _Unique_keya parameter in _Insert
2583         friend declaration.
2585 2016-06-23  François Dumont  <fdumont@gcc.gnu.org>
2587         * include/debug/array (array<>::swap): Fix noexcept qualificaton for
2588         zero-size array.
2590 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2592         * configure.host: Remove mep-* support.
2594 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2596         * configure: Regenerate.
2597         * configure.host: Remove support for knetbsd.
2598         * crossconfig.m4: Likewise.
2600 2016-06-20  François Dumont  <fdumont@gcc.gnu.org>
2602         PR libstdc++/71181
2603         * include/tr1/hashtable_policy.h
2604         (_Prime_rehash_policy::_M_next_bkt): Make past-the-end iterator
2605         dereferenceable to avoid check on lower_bound result.
2606         (_Prime_rehash_policy::_M_bkt_for_elements): Call latter.
2607         (_Prime_rehash_policy::_M_need_rehash): Likewise.
2608         * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
2609         Always return a value greater than input value. Set _M_next_resize to
2610         max value when reaching highest prime number.
2611         * src/shared/hashtable-aux.cc (__prime_list): Add comment about sentinel
2612         being now useless.
2613         * testsuite/23_containers/unordered_set/hash_policy/71181.cc: New.
2614         * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc
2615         (test02): New.
2616         * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: New.
2617         * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2618         Fix indentation.
2620 2016-06-17  Jonathan Wakely  <jwakely@redhat.com>
2622         PR libstdc++/71545
2623         * include/bits/stl_algobase.h (lower_bound, lexicographical_compare):
2624         Remove irreflexive checks.
2625         * include/bits/stl_algo.h (lower_bound, upper_bound, equal_range,
2626         binary_search): Likewise.
2627         * testsuite/25_algorithms/equal_range/partitioned.cc: New test.
2628         * testsuite/25_algorithms/lexicographical_compare/71545.cc: New test.
2629         * testsuite/25_algorithms/lower_bound/partitioned.cc: New test.
2630         * testsuite/25_algorithms/upper_bound/partitioned.cc: New test.
2631         * testsuite/util/testsuite_iterators.h (__gnu_test::test_container):
2632         Add constructor from array.
2634 2016-06-16  François Dumont  <fdumont@gcc.gnu.org>
2636         * include/debug/debug.h
2637         (__glibcxx_requires_non_empty_range, __glibcxx_requires_nonempty)
2638         (__glibcxx_requires_subscript): Move...
2639         * include/debug/assertions.h: ...here and add __builtin_expect.
2640         (_GLIBCXX_DEBUG_ONLY): Remove ; value.
2641         * include/bits/stl_deque.h
2642         (std::deque<>::operator[]): Add __glibcxx_requires_subscript check.
2643         (std::deque<>::front()): Add __glibcxx_requires_nonempty check.
2644         (std::deque<>::back()): Likewise.
2645         (std::deque<>::pop_front()): Likewise.
2646         (std::deque<>::pop_back()): Likewise.
2647         (std::deque<>::swap(deque&)): Add allocator check.
2648         * include/bits/stl_vector.h
2649         (std::vector<>::operator[]): Add __glibcxx_requires_subscript check.
2650         (std::vector<>::front()): Add __glibcxx_requires_nonempty check.
2651         (std::vector<>::back()): Likewise.
2652         (std::vector<>::pop_back()): Likewise.
2653         (std::vector<>::swap(vector&)): Add allocator check.
2655 2016-06-16  Daniel Kruegler  <daniel.kruegler@gmail.com>
2657         Provide swappable traits (p0185r1)
2658         * include/std/type_traits (is_swappable, is_nothrow_swappable,
2659         is_swappable_with, is_nothrow_swappable_with, is_swappable_v,
2660         is_nothrow_swappable_v, is_swappable_with_v,
2661         is_nothrow_swappable_with_v): New.
2662         * include/bits/stl_pair.h: Use it as per p0185r1.
2663         * include/bits/stl_queue.h: Likewise.
2664         * include/bits/stl_stack.h: Likewise.
2665         * include/bits/unique_ptr.h: Likewise.
2666         * include/std/tuple: Likewise.
2667         * include/std/array: Likewise. Fix zero-size member swap.
2668         * include/bits/hashtable.h: Use __and_.
2669         * testsuite/20_util/is_nothrow_swappable/requirements/
2670         explicit_instantiation.cc: Change test options to std=gnu++17.
2671         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2672         Likewise.
2673         * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2674         * testsuite/20_util/is_swappable/requirements/
2675         explicit_instantiation.cc: Likewise.
2676         * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise.
2677         * testsuite/20_util/is_swappable/value.cc: Likewise.
2678         * testsuite/20_util/is_nothrow_swappable/requirements/
2679         explicit_instantiation_ext.cc: New.
2680         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs_ext.cc:
2681         New.
2682         * testsuite/20_util/is_nothrow_swappable/value.h: New.
2683         * testsuite/20_util/is_nothrow_swappable/value_ext.cc: New.
2684         * testsuite/20_util/is_nothrow_swappable_with/requirements/
2685         explicit_instantiation.cc: New.
2686         * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2687         New.
2688         * testsuite/20_util/is_nothrow_swappable_with/value.cc: New.
2689         * testsuite/20_util/is_swappable/requirements/
2690         explicit_instantiation_ext.cc: New.
2691         * testsuite/20_util/is_swappable/requirements/typedefs_ext.cc: New.
2692         * testsuite/20_util/is_swappable/value.h: New.
2693         * testsuite/20_util/is_swappable/value_ext.cc: New.
2694         * testsuite/20_util/is_swappable_with/requirements/
2695         explicit_instantiation.cc: New.
2696         * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: New.
2697         * testsuite/20_util/is_swappable_with/value.cc: New.
2698         * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
2699         dg-error line numbers.
2700         * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
2701         Likewise.
2703 2016-06-16  Jonathan Wakely  <jwakely@redhat.com>
2705         * include/std/array: Remove trailing whitespace.
2706         * include/std/atomic: Likewise.
2707         * include/std/bitset: Likewise.
2708         * include/std/chrono: Likewise.
2709         * include/std/complex: Likewise.
2710         * include/std/condition_variable: Likewise.
2711         * include/std/fstream: Likewise.
2712         * include/std/functional: Likewise.
2713         * include/std/future: Likewise.
2714         * include/std/iomanip: Likewise.
2715         * include/std/iosfwd: Likewise.
2716         * include/std/istream: Likewise.
2717         * include/std/limits: Likewise.
2718         * include/std/ratio: Likewise.
2719         * include/std/scoped_allocator: Likewise.
2720         * include/std/sstream: Likewise.
2721         * include/std/stdexcept: Likewise.
2722         * include/std/string: Likewise.
2723         * include/std/system_error: Likewise.
2724         * include/std/thread: Likewise.
2725         * include/std/tuple: Likewise.
2726         * include/std/type_traits: Likewise.
2727         * include/std/utility: Likewise.
2728         * include/std/valarray: Likewise.
2729         * include/std/vector: Likewise.
2731         * include/bits/stl_vector.h (vector::_S_insert_aux_assign): Define
2732         new overloaded functions.
2733         * include/bits/vector.tcc (vector::_M_insert_aux): Use new functions
2734         to avoid creating a redundant temporary.
2735         * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: New
2736         test.
2738 2016-06-15  François Dumont  <fdumont@gcc.gnu.org>
2740         * include/bits/stl_deque.h
2741         (std::deque<>::operator=): Call _M_assign_aux.
2742         (std::deque<>::assign(initializer_list<>)): Likewise.
2743         (std::deque<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2744         (std::deque<>::insert(const_iterator, initializer_list<>)):
2745         Call _M_range_insert_aux.
2746         (std::deque<>::_M_assign_aux<It>(It, It, std::forward_iterator_tag):
2747         Likewise.
2748         (std::deque<>::_M_fill_assign): Call _M_fill_insert.
2749         (std::deque<>::_M_move_assign2): Call _M_assign_aux.
2750         * include/bits/deque.tcc
2751         (std::deque<>::operator=): Call _M_range_insert_aux.
2752         (std::deque<>::_M_assign_aux<It>(It, It, std::input_iterator_tag)):
2753         Likewise.
2754         * include/bits/stl_vector.h
2755         (std::vector<>::operator=): Call _M_assign_aux.
2756         (std::vector<>::assign(initializer_list<>)): Likewise.
2757         (std::vector<>::resize(size_t, const value_type&)): Call _M_fill_insert.
2758         (std::vector<>::insert(const_iterator, initializer_list<>)):
2759         Call _M_range_insert.
2760         * include/bits/vector.tcc (std::vector<>::_M_assign_aux): Likewise.
2762 2016-06-07  François Dumont  <fdumont@gcc.gnu.org>
2764         * include/std/tuple (_Head_base<>): Default specialization condition at
2765         type declaration.
2767 2016-06-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
2769         Support allocators in tuples of zero size.
2770         * include/std/tuple (tuple<>::tuple(),
2771         tuple<>::tuple(allocator_arg_t, const _Alloc&),
2772         tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
2773         * testsuite/20_util/tuple/cons/allocators.cc: Adjust.
2775 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
2777         PR libstdc++/71320
2778         * src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
2779         Add or remove permissions according to perms argument.
2780         * testsuite/experimental/filesystem/operations/permissions.cc: New
2781         test.
2783 2016-06-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
2785         Protect allocator-overloads of tuple-from-tuple constructors
2786         from cases that would create dangling references.
2787         * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2788         const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
2789         tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
2790         * testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.
2792 2016-05-29  Gerald Pfeifer  <gerald@pfeifer.com>
2794         * doc/xml/manual/backwards_compatibility.xml: Adjust
2795         lists.debian.org link to https.
2796         * doc/html/manual/backwards.html: Regenerate.
2798 2016-05-27  Jonathan Wakely  <jwakely@redhat.com>
2800         * doc/xml/manual/abi.xml: Adjust URL to use https.
2801         * doc/html/manual/*: Regenerate.
2803 2016-05-27  Ville Voutilainen  <ville.voutilainen@gmail.com>
2805         PR libstdc++/66338
2806         * include/std/tuple (_TMC): Add a check for _NotSameTuple.
2807         * include/std/tuple (tuple(_UElements&&...)): Remove the separate
2808         check for _NotSameTuple.
2809         * include/std/tuple (_TMCT): New.
2810         * include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
2811         * include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
2812         * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2813               const tuple<_UElements...>&)): Likewise.
2814         * include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
2815               tuple<_UElements...>&&)): Likewise.
2816         * testsuite/20_util/tuple/cons/66338.cc: New.
2818 2016-05-25  Jonathan Wakely  <jwakely@redhat.com>
2820         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Fix test for sendfile.
2821         * configure: Regenerate.
2822         * config.h.in: Regenerate.
2824         * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
2825         * include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
2826         Remove const qualification on function. Replace
2827         _GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
2828         (_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
2829         (_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
2831 2016-05-24  François Dumont  <fdumont@gcc.gnu.org>
2833         * include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2834         * include/bits/hashtable_policy.h
2835         (_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
2836         having load factor management.
2837         (_Mask_range_hashing): New.
2838         (__clp2): New.
2839         (_Power2_rehash_policy): New.
2840         (_Inserts<>): Remove last template parameter, _Unique_keys, so that
2841         partial specializations only depend on whether iterators are constant
2842         or not.
2843         * testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
2844         test new hash policy.
2845         * testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
2846         Likewise.
2847         * testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
2848         Likewise.
2849         * testsuite/23_containers/unordered_set/insert/hash_policy.cc:
2850         Likewise.
2851         * testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
2852         Likewise.
2853         * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
2854         New.
2855         * testsuite/performance/23_containers/insert/54075.cc: Add benchmark
2856         using the new hash policy.
2857         * testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
2859 2016-05-24  Jonathan Wakely  <jwakely@redhat.com>
2861         * include/bits/stl_queue.h (priority_queue::value_compare): Define.
2863 2016-05-23  François Dumont  <fdumont@gcc.gnu.org>
2865         * include/debug/safe_iterator.h
2866         (_Safe_iterator<>::operator->()): Implement using underlying iterator
2867         operator ->.
2868         * include/debug/safe_local_iterator.h
2869         (_Safe_local_iterator<>::operator->()): Likewise.
2871 2016-05-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2873         * testsuite/experimental/memory_resource/1.cc: Add required argument
2874         to dg-require-atomic-builtins.
2876 2016-05-13  Jonathan Wakely  <jwakely@redhat.com>
2878         PR libstdc++/71073
2879         * include/debug/bitset: Add #pragma GCC system_header.
2880         * include/debug/deque: Likewise.
2881         * include/debug/list: Likewise.
2882         * include/debug/map: Likewise.
2883         * include/debug/set: Likewise.
2884         * include/debug/string: Likewise.
2885         * include/debug/unordered_map: Likewise.
2886         * include/debug/unordered_set: Likewise.
2887         * include/debug/vector: Likewise.
2888         * include/debug/functions.h: Adjust whitespace.
2890 2016-05-12  Jonathan Wakely  <jwakely@redhat.com>
2892         PR libstdc++/71081
2893         * testsuite/experimental/memory_resource/1.cc: Require atomics.
2895 2016-05-11  Jonathan Wakely  <jwakely@redhat.com>
2897         PR libstdc++/71049
2898         * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_DUAL_ABI]: Don't define
2899         exception constructors with __sso_string parameters.
2901 2016-05-10  Jonathan Wakely  <jwakely@redhat.com>
2903         * include/experimental/bits/fs_dir.h (begin, end): Add noexcept.
2904         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2905         Test begin and end functions.
2906         * testsuite/experimental/filesystem/iterators/
2907         recursive_directory_iterator.cc: Likewise.
2909         PR libstdc++/71038
2910         * src/filesystem/ops.cc (do_copy_file): Fix backwards conditions.
2911         * testsuite/experimental/filesystem/operations/copy_file.cc: New test.
2913         * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2914         Overload operator* to move from rvalues.
2916         PR libstdc++/71036
2917         * src/filesystem/ops.cc (create_dir): Handle EEXIST from mkdir.
2918         * testsuite/experimental/filesystem/operations/create_directory.cc:
2919         New test.
2921         PR libstdc++/71037
2922         * src/filesystem/ops.cc (canonical(const path&, const path&)): Add
2923         base path to exception.
2924         * testsuite/experimental/filesystem/operations/canonical.cc: Test
2925         paths contained in exception.
2927         * testsuite/experimental/type_erased_allocator/2.cc: Remove unused
2928         using declaration.
2930         PR libstdc++/71005
2931         * include/experimental/bits/fs_dir.h (__directory_iterator_proxy):
2932         New type.
2933         (directory_iterator::operator++(int)): Return proxy.
2934         (recursive_directory_iterator::operator++(int)): Likewise.
2935         * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
2936         Test post-increment.
2937         * testsuite/experimental/filesystem/iterators/
2938         recursive_directory_iterator.cc: Likewise.
2940 2016-05-09  Jonathan Wakely  <jwakely@redhat.com>
2942         PR libstdc++/71004
2943         * testsuite/experimental/filesystem/iterators/
2944         recursive_directory_iterator.cc: Fix test02 to not call member
2945         functions on invalid iterator, and use VERIFY not assert.
2947 2016-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
2949         Avoid endless run-time recursion for copying single-element
2950         tuples where the element type is by-value constructible
2951         from any type.
2952         * include/std/tuple (_NotSameTuple): New.
2953         * include/std/tuple (tuple(_UElements&&...): Use it.
2954         * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: New.
2956 2016-05-09  Jonathan Wakely  <jwakely@redhat.com>
2958         PR libstdc++/71004
2959         * include/experimental/bits/fs_dir.h (recursive_directory_iterator):
2960         Initialize scalar member variables in default constructor.
2961         * testsuite/experimental/filesystem/iterators/
2962         recursive_directory_iterator.cc: Test default construction.
2964 2016-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2966         * testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.
2968 2016-05-05  Jonathan Wakely  <jwakely@redhat.com>
2970         * testsuite/experimental/filesystem/path/native/string.cc: Add
2971         dg-require-filesystem-ts directive.
2973 2016-05-04  Jonathan Wakely  <jwakely@redhat.com>
2975         PR libstdc++/70940
2976         * include/experimental/memory_resource
2977         (__resource_adaptor_imp::do_allocate): Do not default-construct
2978         rebound allocator.
2979         (__resource_adaptor_imp::do_deallocate): Likewise. Use
2980         allocator_traits to get pointer type.
2981         (__null_memory_resource::do_allocate): Remove unused parameters.
2982         (__null_memory_resource::do_deallocate): Likewise.
2983         (__null_memory_resource::do_is_equal): Likewise. Add return statement.
2984         * testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
2985         * testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
2986         move to ...
2987         * testsuite/experimental/memory_resource/1.cc: Here.
2988         * testsuite/experimental/memory_resource/null_memory_resource.cc: New.
2989         * testsuite/experimental/memory_resource/resource_adaptor.cc: New.
2991 2016-04-29  Chris Gregory  <czipperz@gmail.com>
2993         * config/*: Remove trailing whitespace.
2994         * src/*: Likewise.
2995         * testsuite/tr1/*: Likewise.
2996         * testsuite/util/*: Likewise.
2998 2016-04-28  Jonathan Wakely  <jwakely@redhat.com>
3000         PR libstdc++/70766
3001         * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
3002         __addressof.
3003         * include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
3004         Likewise.
3005         * include/std/atomic (atomic<_Tp>): Likewise.
3006         * include/std/shared_mutex (shared_lock): Likewise.
3007         * testsuite/24_iterators/istream_iterator/70766.cc: New test.
3008         * testsuite/24_iterators/ostream_iterator/70766.cc : New test.
3009         * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
3010         * testsuite/29_atomics/atomic/70766.cc: New test.
3011         * testsuite/30_threads/shared_lock/70766.cc: New test.
3013         * include/bits/hashtable_policy.h (__detail::_Insert_base,
3014         __detail::_Insert): Improve comments.
3016 2016-04-27  Jonathan Wakely  <jwakely@redhat.com>
3018         PR libstdc++/70767
3019         * include/std/limits: Update comments about DRs.
3020         (numeric_limits<const _Tp>, numeric_limits<volatile _Tp>,
3021         numeric_limits<const volatile _Tp>): Define unconditionally.
3023 2016-04-24  Jonathan Wakely  <jwakely@redhat.com>
3025         PR libstdc++/70762
3026         * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): Use
3027         static counter to return a different path on every call.
3029 2016-04-22  Tim Shen  <timshen@google.com>
3031         PR libstdc++/70745
3032         * include/bits/regex_executor.tcc (_Executor<>::_M_word_boundary):
3033         Fix the match_not_bow and match_not_eow behavior.
3034         * testsuite/28_regex/regression.cc: Add testcase.
3036 2016-04-20  Jonathan Wakely  <jwakely@redhat.com>
3038         PR libstdc++/69703
3039         * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
3040         __codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.
3042 2016-04-19  Jonathan Wakely  <jwakely@redhat.com>
3044         PR libstdc++/69703
3045         * src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in):
3046         Override endianness bit in mode.
3047         * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: New test.
3048         * testsuite/22_locale/codecvt/codecvt_utf8_utf16/66855.cc: Test
3049         that little_endian mode is ignored.
3050         * testsuite/experimental/filesystem/path/native/string.cc: New test.
3052         PR libstdc++/70609
3053         * src/filesystem/ops.cc (close_fd): New function.
3054         (do_copy_file): Set permissions before copying file contents. Check
3055         result of closing file descriptors. Don't copy streambuf when file
3056         is empty.
3057         (copy(const path&, const path&, copy_options, error_code&)): Use
3058         lstat for source file when copy_symlinks is set.
3059         * testsuite/experimental/filesystem/operations/copy.cc: Test copy().
3061         * include/experimental/bits/fs_fwd.h (operator&, operator|, operator^,
3062         operator~ operator&=, operator|=, operator^=): Add noexcept to
3063         overloaded operators for copy_options, perms and directory_options.
3064         * src/filesystem/ops.cc (make_file_type, make_file_status,
3065         is_not_found_errno, file_time): Add noexcept.
3067 2016-04-19  Edward Smith-Rowland  <3dw4rd@verizon.net>
3069         * include/bits/c++14_warning.h: Do not refer C++14 as experimental.
3071 2016-04-18  Jonathan Wakely  <jwakely@redhat.com>
3073         PR libstdc++/41759
3074         * include/bits/random.h: Reword static assertion messages to state
3075         positive conditions.
3076         * include/bits/random.tcc: Likewise.
3077         * include/bits/uniform_int_dist.h: Likewise.
3078         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3079         patterns.
3081         * include/std/function (_Bind, _Bind_result): Remove unused typedefs.
3083         * config/cpu/sh/atomicity.h: Fix typo in comment.
3085         PR libstdc++/70294
3086         * include/std/thread (operator<, operator==): Move definitions to
3087         namespace-scope.
3088         * testsuite/30_threads/thread/id/70294.cc: New test.
3090         * testsuite/18_support/bad_exception/23591_thread-1.c: Add
3091         -Wno-pedantic to dg-options.
3092         * testsuite/20_util/align/2.cc: Use type as operand of alignof.
3093         * testsuite/20_util/is_floating_point/value.cc: Add -Wno-pedantic
3094         to dg-options.
3095         * testsuite/20_util/specialized_algorithms/uninitialized_fill/32158.cc:
3096         Remove extra semi-colon.
3097         * testsuite/23_containers/array/tuple_interface/tuple_element.cc:
3098         Always supply second argument to static_assert.
3099         * testsuite/25_algorithms/lower_bound/no_operator_ne.cc: Remove extra
3100         semi-colon.
3101         * testsuite/26_numerics/complex/c99.cc: Add -Wno-pedantic to
3102         dg-options.
3103         * testsuite/26_numerics/complex/literals/values.cc: Likewise.
3104         * testsuite/29_atomics/atomic/60695.cc: Likewise.
3105         * testsuite/29_atomics/atomic/62259.cc: use __alignof__ instead of
3106         alignof when operand is an object not a type.
3107         * testsuite/decimal/ctor.cc: Add -Wno-pedantic to dg-options.
3108         * testsuite/decimal/make-decimal.cc: Likewise.
3109         * testsuite/experimental/type_traits/value.cc: Always supply second
3110         argument to static_assert.
3111         * testsuite/util/testsuite_common_types.h: Use __extension__ for
3112         __int128 types.
3114         * testsuite/experimental/type_erased_allocator/1.cc: Don't include
3115         internal header.
3116         * testsuite/experimental/type_erased_allocator/1_neg.cc: Likewise.
3117         * testsuite/experimental/type_erased_allocator/2.cc: Likewise.
3118         * testsuite/experimental/type_erased_allocator/uses_allocator.cc:
3119         Likewise. Add licence and change to compile-only test.
3121         * include/bits/locale_facets.h (ctype::do_narrow): Add attribute to
3122         unused parameter.
3123         * include/bits/regex_automaton.h (_NFA::_M_insert_alt): Likewise.
3125         * include/ext/string_conversions.h (__stoa): Avoid -Wsign-compare
3126         warnings.
3128 2016-04-17  Edward Smith-Rowland  <3dw4rd@verizon.net>
3130         * include/bits/specfun.h: Trivial comment misspelling.
3132 2016-04-14  Jason Merrill  <jason@redhat.com>
3134         Revert Jonathan's empty ABI change from yesterday.
3136 2016-04-13  Martin Sebor  <msebor@redhat.com>
3138         PR c++/69517
3139         * testsuite/25_algorithms/rotate/moveable2.cc: Make sure VLA
3140         upper bound is positive.
3142 2016-04-13  Jonathan Wakely  <jwakely@redhat.com>
3144         * include/bits/c++config (_GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES,
3145         _GLIBCXX_END_NAMESPACE_EMPTY_TYPES, _GLIBCXX_ABI_TAG_EMPTY): Define.
3146         * include/bits/hashtable.h (_Hashtable::_M_emplace): Change signatures
3147         of functions taking empty structs by value. Add a template parameter
3148         to overloads without hints. Rename overloads with hints to
3149         _M_emplace_hint.
3150         (_Hashtable::_M_erase(true_type, const_iterator),
3151         _Hashtable::_M_erase(false_type, const_iterator)): Change signatures
3152         by reordering parameters.
3153         * include/bits/hashtable_policy.h (_Insert::insert): Adjust to call
3154         _M_emplace_hint instead of _M_emplace.
3155         * include/bits/shared_ptr.h (shared_ptr(_Tp1*, _Deleter, _Alloc),
3156         shared_ptr(nullptr_t, _Deleter, _Alloc)): Use _GLIBCXX_ABI_TAG_EMPTY.
3157         * include/bits/shared_ptr_base.h (_Sp_counted_deleter, __shared_count,
3158         __shared_ptr): Likewise.
3159         * include/bits/stl_algo.h (replace_if): Likewise.
3160         * include/bits/stl_pair.h (piecewise_construct_t,
3161         piecewise_construct): Use _GLIBCXX_BEGIN_NAMESPACE_EMPTY_TYPES.
3162         * include/bits/uses_allocator.h (allocator_arg_t, allocator_arg,
3163         __uses_alloc0): Likewise.
3164         * include/ext/pb_ds/assoc_container.hpp (basic_hash_table): Likewise.
3165         * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error.
3166         * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
3167         * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
3168         * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3169         * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
3170         * testsuite/ext/profile/mutex_extensions_neg.cc: Likewise.
3172 2016-04-12  Edward Smith-Rowland  <3dw4rd@verizon.net>
3174         Document C++17/TR29124 C++ Special Math Functions.
3175         * include/bits/specfun.h: Add Doxygen markup.
3177 2016-04-07  Jonathan Wakely  <jwakely@redhat.com>
3179         * testsuite/30_threads/thread/70503.cc: Adjust from xfail to pass.
3181 2016-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3183         * src/Makefile.am (libstdc++-symbols.ver): Remove useless /dev/null.
3184         * src/Makefile.in: Regenerate.
3186 2016-04-05  Jonathan Wakely  <jwakely@redhat.com>
3188         PR libstdc++/70554
3189         * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Don't test
3190         __atomic_fetch_add for bool.
3191         * configure: Regenerate.
3193         * testsuite/30_threads/thread/70503.cc: Require -static to work.
3195         PR libstdc++/70503
3196         * src/c++11/thread.cc (execute_native_thread_routine,
3197         execute_native_thread_routine_compat): Give internal linkage.
3198         * testsuite/30_threads/thread/70503.cc: New test.
3200 2016-04-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
3202         PR libstdc++/70437
3203         * include/bits/stl_pair.h (_ConstructiblePair,
3204         _ImplicitlyConvertiblePair, _MoveConstructiblePair,
3205         _ImplicitlyMoveConvertiblePair): Add shortcut conditions
3206         for same-type cases.
3207         * testsuite/20_util/pair/70437.cc: New.
3209 2016-03-24  Jonathan Wakely  <jwakely@redhat.com>
3211         PR libstdc++/69945
3212         * config/abi/pre/gnu.ver: Add new symbol.
3213         * libsupc++/eh_alloc.cc (__gnu_cxx::__freeres): Define.
3214         * testsuite/18_support/free_eh_pool.cc: New test.
3216 2016-03-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3218         * include/Makefile.am (install-freestanding-headers): Add
3219         concept_check.h and move.h to the installed headers.
3220         * include/Makefile.in: Regenerated.
3221         * include/bits/concept_check.h: Ignore _GLIBCXX_CONCEPT_CHECKS for
3222         freestanding implementations.
3223         * doc/xml/manual/using.xml (_GLIBCXX_CONCEPT_CHECKS): Mention
3224         that this macro has no effect for freestanding implementations.
3225         * doc/html/manual/using_macros.html: Likewise.
3227 2016-02-24  Jonathan Wakely  <jwakely@redhat.com>
3229         PR libstdc++/69939
3230         * include/experimental/tuple (__apply_impl): Qualify get and forward.
3232 2016-02-23  Jonathan Wakely  <jwakely@redhat.com>
3234         * doc/xml/manual/using.xml: Document __STDCPP_WANT_MATH_SPEC_FUNCS__.
3235         * doc/html/*: Regenerate.
3237         PR libstdc++/69893
3238         * include/tr1/cmath (acosh, asinh, atanh, cbrt, copysign, erf, erfc,
3239         exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, llrint,
3240         llround, log1p, log2, logb, lrint, lround, nan, nearbyint, nextafter,
3241         nexttoward, remainder, remquo, rint, round, scalbln, scalbn, tgamma,
3242         trunc) [__cplusplus >= 201103L]: Import from namespace std.
3243         (fabs) [__cplusplus < 201103L]: Import from namespace std.
3244         * include/tr1/complex (acosh, asinh, atanh) [__cplusplus >= 201103L]:
3245         Likewise.
3246         * testsuite/tr1/headers/c++200x/complex.cc: Add std::fabs to global
3247         namespace before including TR1 headers.
3248         * testsuite/tr1/headers/c++200x/math.cc: New test.
3250 2016-02-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3252         PR libstdc++/69881
3253         * include/c_global/cstdarg: Undefine __need___va_list.
3254         * include/c_global/cstddef: Undefine all kinds of __need_*.
3256 2016-02-16  Tim Shen  <timshen@google.com>
3258         PR libstdc++/69794
3259         * include/bits/regex_scanner.h: Add different special character
3260         sets for grep and egrep regex.
3261         * include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
3262         * testsuite/28_regex/regression.cc: Add new testcase.
3264 2016-02-08  Jonathan Wakely  <jwakely@redhat.com>
3266         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Remove accidentally
3267         added 'constexpr' in previous commit.
3268         * configure: Regenerate.
3270         PR libstdc++/48891
3271         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Enable isinf and isnan
3272         checks for all targets except *-*-solaris2.* and ensure we find the
3273         libc math.h header not our own.
3274         * configure: Regenerate.
3276 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3278         * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt (FUNC):
3279         New file.  Copied over from s390-linux-gnu.
3281 2016-02-04  Jonathan Wakely  <jwakely@redhat.com>
3283         PR libstdc++/69626
3284         * acinclude.m4 (GLIBCXX_ENABLE_C99): Check C99 stdlib.h functions
3285         with -std=c++98 and define _GLIBCXX98_USE_C99_STDLIB.
3286         * config.h.in: Regenerate.
3287         * configure: Regenerate.
3288         * testsuite/21_strings/c_strings/char/69626.cc: New.
3290         * doc/html/index.html: Regenerate.
3292         * doc/xml/manual/containers.xml: Add cross-reference to Dual ABI.
3293         * doc/xml/manual/spine.xml: Update copyright years and author blurb.
3294         * doc/html/*: Regenerate.
3296 2016-02-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3298         PR libstdc++/69581
3299         * include/c_compatibility/math.h: Move header guards.
3300         * include/c_compatibility/stdlib.h: Likewise.
3302 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
3304         PR libstdc++/69506
3305         * config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3307 2016-01-28  John David Anglin  <danglin@gcc.gnu.org>
3309         PR libstdc++/69450
3310         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Split check for obsolete
3311         isinf and isnan functions into two independent checks.  Check on hpux.
3312         * config.h.in: Regenerate.
3313         * configure: Regenerate.
3314         * include/c_global/cmath (isinf(double), isnan(double)): Use
3315         _GLIBCXX_HAVE_OBSOLETE_ISINF and _GLIBCXX_HAVE_OBSOLETE_ISNAN,
3316         respectively.
3318 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
3320         * testsuite/libstdc++-prettyprinters/whatis.cc: Include <random>.
3322 2016-01-27  Jonathan Wakely  <jwakely@redhat.com>
3324         PR libstdc++/69295
3325         * testsuite/ext/special_functions/hyperg/check_value.cc: Use
3326         -ffp-contract=off, and -ffloat-store to disable excess precision.
3327         * testsuite/special_functions/02_assoc_legendre/check_value.cc: Use
3328         -ffp-contract=off.
3330 2016-01-26  Jonathan Wakely  <jwakely@redhat.com>
3332         PR libstdc++/69478
3333         * include/bits/stl_algobase.h (__copy_move<_IsMove, true,
3334         random_access_iterator_tag>): Check is_move_assignable when moving.
3335         (__copy_move_backwards<_IsMove, true, random_access_iterator_tag>):
3336         Likewise.
3337         * testsuite/25_algorithms/copy/move_iterators/69478.cc: New.
3338         * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: New.
3339         * testsuite/25_algorithms/move/69478.cc: New.
3340         * testsuite/25_algorithms/move_backward/69478.cc: new.
3342 2016-01-26  Andris Pavenis  <andris.pavenis@iki.fi>
3344         * include/c_compatibility/stdlib.h: Include wide character related
3345         definitions only when they are available in cstdlib.
3347 2016-01-25  Jonathan Wakely  <jwakely@redhat.com>
3349         PR libstdc++/69464
3350         * include/Makefile.am: Add new header.
3351         * include/Makefile.in: Regenerate.
3352         * include/bits/random.h (uniform_int_distribution): Move to
3353         bits/uniform_int_dist.h.
3354         * include/bits/random.tcc (uniform_int_distribution::operator(),
3355         uniform_int_distribution::__generate_impl): Likewise.
3356         * include/bits/uniform_int_dist.h: New header.
3357         * include/bits/stl_algo.h [__cplusplus >= 201103L]: Include
3358         <bits/uniform_int_dist.h> instead of <random>.
3359         * testsuite/20_util/specialized_algorithms/uninitialized_copy/
3360         move_iterators/1.cc: Include correct header for uninitialized_copy.
3361         * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
3362         move_iterators/1.cc: Likewise.
3363         * testsuite/25_algorithms/nth_element/58800.cc: Include correct
3364         header for vector.
3365         * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lines.
3367 2016-01-23  John David Anglin  <danglin@gcc.gnu.org>
3369         PR libstdc++/69446
3370         * config/os/hpux/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3372 2016-01-22  Edward Smith-Rowland  <3dw4rd@verizon.net>
3374         TR29124 C++ Special Math - <math.h> pulls funcs into global namespace.
3375         * include/c_compatibility/math.h: Import the TR29124 functions
3376         into the global namespace.
3377         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: Remove
3378         xfail and make compile-only.
3379         * testsuite/special_functions/02_assoc_legendre/compile_2.cc: Ditto.
3380         * testsuite/special_functions/03_beta/compile_2.cc: Ditto.
3381         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Ditto.
3382         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Ditto.
3383         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Ditto.
3384         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Ditto.
3385         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Ditto.
3386         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Ditto.
3387         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: Ditto.
3388         * testsuite/special_functions/11_ellint_1/compile_2.cc: Ditto.
3389         * testsuite/special_functions/12_ellint_2/compile_2.cc: Ditto.
3390         * testsuite/special_functions/13_ellint_3/compile_2.cc: Ditto.
3391         * testsuite/special_functions/14_expint/compile_2.cc: Ditto.
3392         * testsuite/special_functions/15_hermite/compile_2.cc: Ditto.
3393         * testsuite/special_functions/16_laguerre/compile_2.cc: Ditto.
3394         * testsuite/special_functions/17_legendre/compile_2.cc: Ditto.
3395         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: Ditto.
3396         * testsuite/special_functions/19_sph_bessel/compile_2.cc: Ditto.
3397         * testsuite/special_functions/20_sph_legendre/compile_2.cc: Ditto.
3398         * testsuite/special_functions/21_sph_neumann/compile_2.cc: Ditto.
3400 2016-01-22  Jonathan Wakely  <jwakely@redhat.com>
3402         PR libstdc++/69116
3403         * include/bits/valarray_before.h (__fun, __fun_with_valarray): Only
3404         define result_type for types which can be safely used with valarrays.
3405         * testsuite/26_numerics/valarray/69116.cc: New.
3407         PR libstdc++/69413
3408         * config/os/gnu-linux/os_defines.h: Define
3409         _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC.
3410         * include/c_global/cmath (isinf, isnan): Check it.
3411         * doc/xml/manual/internals.xml: Document it.
3412         * doc/html/*: Regenerate.
3414 2016-01-21  Jonathan Wakely  <jwakely@redhat.com>
3416         PR libstdc++/69406
3417         * include/bits/cpp_type_traits.h: Ensure C++ language linkage.
3418         * include/ext/type_traits.h: Likewise.
3419         * testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
3420         for presence of C headers.
3421         * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
3422         dg-error line number.
3423         * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
3424         * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
3425         * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.
3427 2016-01-20  Torvald Riegel  <triegel@redhat.com>
3429         PR libstdc++/69310
3430         * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
3432 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
3434         PR libstdc++/60401
3435         * include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
3436         copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
3437         lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
3438         nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
3439         tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
3440         Add using declarations.
3441         * testsuite/26_numerics/headers/cmath/60401.cc: New.
3443         PR libstdc++/69386
3444         * include/c_global/ccomplex: Ensure C++ language linkage.
3445         * include/c_global/cmath: Likewise.
3446         * include/c_global/cstdlib: Likewise.
3447         * include/c_global/ctgmath: Likewise.
3448         * testsuite/17_intro/headers/c++2011/linkage.cc: New.
3450 2016-01-19  Jonathan Wakely  <jwakely@redhat.com>
3452         PR libstdc++/14608
3453         PR libstdc++/60401
3454         * include/Makefile.am: Use c_compatibility math.h and stdlib.h for
3455         --enable-cheaders=c_global configs.
3456         * include/Makefile.in: Regenerate.
3457         * include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
3458         test and allow inclusion from C files.
3459         * include/c_compatibility/stdlib.h: Likewise. Support freestanding.
3460         (at_quick_exit, quick_exit): Add using directives.
3461         * include/c_global/cmath: Use #include_next for math.h.
3462         * include/c_global/cstdlib: Use #include_next for stdlib.h.
3463         * testsuite/26_numerics/headers/cmath/14608.cc: New.
3464         * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
3465         Remove xfail for most targets.
3466         * testsuite/26_numerics/headers/cstdlib/60401.cc: New.
3468 2016-01-18  Torvald Riegel  <triegel@redhat.com>
3470         * include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
3471         (_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use _GLIBCXX_USE_WEAK_REF
3472         and move after its definition.
3473         * config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
3474         * src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
3475         __GXX_WEAK__, and only provide transactional clones if
3476         _GLIBCXX_USE_WEAK_REF is true.  Don't provide stubs of libitm
3477         functions.
3479 2016-01-18  Jonathan Wakely  <jwakely@redhat.com>
3481         PR libstdc++/60637
3482         * testsuite/26_numerics/headers/cmath/60637.cc: Add test.
3484         PR libstdc++/69243
3485         * include/std/functional (_Function_base::_M_not_empty_function):
3486         Change overloads for pointers to take arguments by value.
3487         * testsuite/20_util/function/cons/57465.cc: Add tests for
3488         pointer-to-member cases.
3490         PR libstdc++/69340
3491         * src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
3492         Use macros for exception handling and fix unused parameter warning.
3494 2016-01-17  John David Anglin  <danglin@gcc.gnu.org>
3496         PR libstdc++/68734
3497         * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
3499 2016-01-17  Torvald Riegel  <triegel@redhat.com>
3501         * src/c++11/cow-stdexcept.cc (txnal_read_ptr): Fix static_assert.
3503 2016-01-16  H.J. Lu  <hongjiu.lu@intel.com>
3505         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Add
3506         __int128 symbols.
3508 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
3510         PR libstdc++/69293
3511         * include/bits/uses_allocator.h (__uses_alloc<true, ...>): Add
3512         static assertion that type is constructible from the arguments.
3513         * testsuite/20_util/scoped_allocator/69293_neg.cc: New.
3514         * testsuite/20_util/uses_allocator/69293_neg.cc: New.
3515         * testsuite/20_util/uses_allocator/cons_neg.cc: Adjust dg-error.
3517         PR libstdc++/69294
3518         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3519         and isnan on AIX. Quote variables.
3520         * configure: Regenerate.
3522 2016-01-15  Torvald Riegel  <triegel@redhat.com>
3524         * include/bits/basic_string.h (basic_string): Declare friends.
3525         * include/bits/c++config (_GLIBCXX_TXN_SAFE,
3526         _GLIBCXX_TXN_SAFE_DYN, _GLIBCXX_USE_ALLOCATOR_NEW): New.
3527         * include/std/stdexcept (logic_error, domain_error, invalid_argument,
3528         length_error, out_of_range, runtime_error, range_error,
3529         underflow_error, overflow_error): Declare members as transaction-safe.
3530         (logic_error, runtime_error): Declare friend functions.
3531         * libsupc++/exception (exception, bad_exception): Declare members as
3532         transaction-safe.
3533         * src/c++11/cow-stdexcept.cc: Define transactional clones for the
3534         transaction-safe members of exceptions and helper functions.
3535         * libsupc++/eh_exception.cc: Adjust and define transactional clones.
3536         * config/abi/pre/gnu.ver (GLIBCXX_3.4.22) Add transactional clones.
3537         (CXXABI_1.3.10): New.
3538         * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): New.
3539         (GLIBCXX_ENABLE_ALLOCATOR): Set ENABLE_ALLOCATOR_NEW.
3540         * configure.ac: Call GLIBCXX_CHECK_SIZE_T_MANGLING.
3541         * include/Makefile.am: Write ENABLE_ALLOCATOR_NEW to c++config.h.
3542         * include/Makefile.in: Regenerate.
3543         * config.h.in: Regenerate.
3544         * configure: Regenerate.
3545         * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.10.
3547 2016-01-15  Steve Ellcey  <sellcey@imgtec.com>
3549         * include/ext/random.tcc: Use __builtin_isfinite instead of
3550         std::isfinite.
3552 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
3554         * include/bits/std_mutex.h: Fix Doxygen @file name.
3556 2016-01-14  Edward Smith-Rowland  <3dw4rd@verizon.net>
3557             Jonathan Wakely  <jwakely@redhat.com>
3558             Florian Goth <CaptainSifff@gmx.de>
3560         Implement TR29124 C++ special Math Functions.
3561         * include/Makefile.am: Add new headers.
3562         * include/Makefile.in: Regenerate.
3563         * include/bits/specfun.h: New.
3564         * include/c_global/cmath: Adjust for both tr1 and tr29124 maths.
3565         * include/tr1/bessel_function.tcc: Ditto.
3566         * include/tr1/beta_function.tcc: Ditto.
3567         * include/tr1/cmath: Ditto.
3568         * include/tr1/ell_integral.tcc: Ditto.
3569         * include/tr1/exp_integral.tcc: Ditto.
3570         * include/tr1/gamma.tcc: Ditto.
3571         * include/tr1/hypergeometric.tcc: Ditto.
3572         * include/tr1/legendre_function.tcc: Ditto.
3573         * include/tr1/modified_bessel_func.tcc: Ditto.
3574         * include/tr1/poly_hermite.tcc: Ditto.
3575         * include/tr1/poly_laguerre.tcc: Ditto.
3576         * include/tr1/riemann_zeta.tcc: Ditto.
3577         * include/tr1/special_function_util.h: Ditto.
3578         * testsuite/ext/special_functions/conf_hyperg: New.
3579         * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: New.
3580         * testsuite/ext/special_functions/conf_hyperg/check_value.cc: New.
3581         * testsuite/ext/special_functions/conf_hyperg/compile.cc: New.
3582         * testsuite/ext/special_functions/hyperg: New.
3583         * testsuite/ext/special_functions/hyperg/check_nan.cc: New.
3584         * testsuite/ext/special_functions/hyperg/check_value.cc: New.
3585         * testsuite/ext/special_functions/hyperg/compile.cc: New.
3586         * testsuite/libstdc++-dg/conformance.exp: Add special_functions directory.
3587         * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: New.
3588         * testsuite/special_functions/01_assoc_laguerre/check_value.cc: New.
3589         * testsuite/special_functions/01_assoc_laguerre/compile.cc: New.
3590         * testsuite/special_functions/01_assoc_laguerre/compile_2.cc: New.
3591         * testsuite/special_functions/02_assoc_legendre/check_nan.cc: New.
3592         * testsuite/special_functions/02_assoc_legendre/check_value.cc: New.
3593         * testsuite/special_functions/02_assoc_legendre/compile.cc: New.
3594         * testsuite/special_functions/02_assoc_legendre/compile_2.cc: New.
3595         * testsuite/special_functions/03_beta/check_nan.cc: New.
3596         * testsuite/special_functions/03_beta/check_value.cc: New.
3597         * testsuite/special_functions/03_beta/compile.cc: New.
3598         * testsuite/special_functions/03_beta/compile_2.cc: New.
3599         * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: New.
3600         * testsuite/special_functions/04_comp_ellint_1/check_value.cc: New.
3601         * testsuite/special_functions/04_comp_ellint_1/compile.cc: New.
3602         * testsuite/special_functions/04_comp_ellint_1/compile_2.cc: New.
3603         * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: New.
3604         * testsuite/special_functions/05_comp_ellint_2/check_value.cc: New.
3605         * testsuite/special_functions/05_comp_ellint_2/compile.cc: New.
3606         * testsuite/special_functions/05_comp_ellint_2/compile_2.cc: New.
3607         * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: New.
3608         * testsuite/special_functions/06_comp_ellint_3/check_value.cc: New.
3609         * testsuite/special_functions/06_comp_ellint_3/compile.cc: New.
3610         * testsuite/special_functions/06_comp_ellint_3/compile_2.cc: New.
3611         * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: New.
3612         * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: New.
3613         * testsuite/special_functions/07_cyl_bessel_i/compile.cc: New.
3614         * testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: New.
3615         * testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: New.
3616         * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: New.
3617         * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: New.
3618         * testsuite/special_functions/08_cyl_bessel_j/compile.cc: New.
3619         * testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: New.
3620         * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: New.
3621         * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: New.
3622         * testsuite/special_functions/09_cyl_bessel_k/compile.cc: New.
3623         * testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: New.
3624         * testsuite/special_functions/10_cyl_neumann/check_nan.cc: New.
3625         * testsuite/special_functions/10_cyl_neumann/check_value.cc: New.
3626         * testsuite/special_functions/10_cyl_neumann/compile.cc: New.
3627         * testsuite/special_functions/10_cyl_neumann/compile_2.cc: New.
3628         * testsuite/special_functions/11_ellint_1/check_nan.cc: New.
3629         * testsuite/special_functions/11_ellint_1/check_value.cc: New.
3630         * testsuite/special_functions/11_ellint_1/compile.cc: New.
3631         * testsuite/special_functions/11_ellint_1/compile_2.cc: New.
3632         * testsuite/special_functions/12_ellint_2/check_nan.cc: New.
3633         * testsuite/special_functions/12_ellint_2/check_value.cc: New.
3634         * testsuite/special_functions/12_ellint_2/compile.cc: New.
3635         * testsuite/special_functions/12_ellint_2/compile_2.cc: New.
3636         * testsuite/special_functions/13_ellint_3/check_nan.cc: New.
3637         * testsuite/special_functions/13_ellint_3/check_value.cc: New.
3638         * testsuite/special_functions/13_ellint_3/compile.cc: New.
3639         * testsuite/special_functions/13_ellint_3/compile_2.cc: New.
3640         * testsuite/special_functions/14_expint/check_nan.cc: New.
3641         * testsuite/special_functions/14_expint/check_value.cc: New.
3642         * testsuite/special_functions/14_expint/compile.cc: New.
3643         * testsuite/special_functions/14_expint/compile_2.cc: New.
3644         * testsuite/special_functions/15_hermite/check_nan.cc: New.
3645         * testsuite/special_functions/15_hermite/check_value.cc: New.
3646         * testsuite/special_functions/15_hermite/compile.cc: New.
3647         * testsuite/special_functions/15_hermite/compile_2.cc: New.
3648         * testsuite/special_functions/16_laguerre/check_nan.cc: New.
3649         * testsuite/special_functions/16_laguerre/check_value.cc: New.
3650         * testsuite/special_functions/16_laguerre/compile.cc: New.
3651         * testsuite/special_functions/16_laguerre/compile_2.cc: New.
3652         * testsuite/special_functions/17_legendre/check_nan.cc: New.
3653         * testsuite/special_functions/17_legendre/check_value.cc: New.
3654         * testsuite/special_functions/17_legendre/compile.cc: New.
3655         * testsuite/special_functions/17_legendre/compile_2.cc: New.
3656         * testsuite/special_functions/18_riemann_zeta/check_nan.cc: New.
3657         * testsuite/special_functions/18_riemann_zeta/check_value.cc: New.
3658         * testsuite/special_functions/18_riemann_zeta/compile.cc: New.
3659         * testsuite/special_functions/18_riemann_zeta/compile_2.cc: New.
3660         * testsuite/special_functions/19_sph_bessel/check_nan.cc: New.
3661         * testsuite/special_functions/19_sph_bessel/check_value.cc: New.
3662         * testsuite/special_functions/19_sph_bessel/compile.cc: New.
3663         * testsuite/special_functions/19_sph_bessel/compile_2.cc: New.
3664         * testsuite/special_functions/20_sph_legendre/check_nan.cc: New.
3665         * testsuite/special_functions/20_sph_legendre/check_value.cc: New.
3666         * testsuite/special_functions/20_sph_legendre/compile.cc: New.
3667         * testsuite/special_functions/20_sph_legendre/compile_2.cc: New.
3668         * testsuite/special_functions/21_sph_neumann/check_nan.cc: New.
3669         * testsuite/special_functions/21_sph_neumann/check_value.cc: New.
3670         * testsuite/special_functions/21_sph_neumann/compile.cc: New.
3671         * testsuite/special_functions/21_sph_neumann/compile_2.cc: New.
3672         * testsuite/util/specfun_testcase.h: New.
3673         * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: More testcases.
3674         * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: Ditto.
3675         * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: Ditto.
3676         * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: Ditto.
3677         * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: Ditto.
3678         * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: Ditto.
3679         * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: New.
3681 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
3683         PR libstdc++/48891
3684         * acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): Check for obsolete isinf
3685         and isnan functions.
3686         * config.h.in: Regenerate.
3687         * configure: Regenerate.
3688         * include/c_global/cmath (isinf(double), isnan(double))
3689         [_GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN]: Import via using-directive.
3690         * testsuite/26_numerics/headers/cmath/48891.cc: New.
3692 2016-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3694         PR libstdc++/66006
3695         * configure.host (abi_baseline_pair): Use separate baseline for
3696         Solaris 11+ and Solaris 10 with gld.
3697         * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: New file.
3698         * config/abi/post/solaris2.11/baseline_symbols.txt: New file.
3699         * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: New file.
3701 2016-01-12  Daniel Kruegler  <daniel.kruegler@gmail.com>
3703         PR libstdc++/68877
3704         * include/std/type_traits: Following N4511, reimplement __is_swappable
3705         and __is_nothrow_swappable. Move __is_swappable to namespace std,
3706         adjust callers. Use __is_nothrow_swappable in swap.
3707         * include/bits/move.h: Use __is_nothrow_swappable in swap.
3708         * testsuite/20_util/is_nothrow_swappable/value.cc: Extend; remove
3709         __is_swappable related tests.
3710         * testsuite/20_util/is_swappable/value.cc: New.
3711         * testsuite/20_util/is_swappable/requirements/
3712         explicit_instantiation.cc: New.
3713         * testsuite/20_util/is_swappable/requirements/typedefs.cc: New.
3714         * testsuite/25_algorithms/swap/68877.cc: New.
3716 2016-01-12  Jonathan Wakely  <jwakely@redhat.com>
3718         * testsuite/20_util/function/68995.cc: Test reference_wrapper cases.
3720         PR libstdc++/69005
3721         PR libstdc++/69222
3722         * include/std/functional (function::_Invoke): Remove, use result_of.
3723         (function::_Callable): Replace alias template with class template
3724         and use partial specialization instead of _NotSelf alias template.
3725         (function(_Functor)): Add "not self" constraint so that _Callable is
3726         not used while type is incomplete.
3727         * testsuite/20_util/function/69222.cc: New.
3729 2016-01-11  Jonathan Wakely  <jwakely@redhat.com>
3731         PR libstdc++/60976
3732         * include/bits/alloc_traits.h (allocator_traits<allocator<_Tp>>):
3733         Define partial specialization.
3734         * testsuite/20_util/shared_ptr/cons/58659.cc: Add construct and
3735         destroy members to std::allocator explicit specialization.
3737 2016-01-08  Jonathan Wakely  <jwakely@redhat.com>
3739         * testsuite/26_numerics/headers/cmath/
3740         c99_classification_macros_c++.cc: Rename to ...
3741         * testsuite/26_numerics/headers/cmath/
3742         c99_classification_macros_c++98.cc: Here and add -std=gnu++98.
3743         * testsuite/26_numerics/headers/cmath/
3744         c99_classification_macros_c++0x.cc: Rename to ...
3745         * testsuite/26_numerics/headers/cmath/
3746         c99_classification_macros_c++11.cc: Here.
3748         PR libstdc++/69190
3749         * include/bits/uses_allocator.h: Add missing include.
3751 2016-01-07  Jonathan Wakely  <jwakely@redhat.com>
3753         PR libstdc++/69105
3754         PR libstdc++/69106
3755         PR libstdc++/69114
3756         * include/bits/stl_iterator.h (back_insert_iterator,
3757         front_insert_iterator, insert_iterator): Use __addressof (LWG 2324).
3758         * include/bits/uses_allocator.h (__use_alloc): Use __addressof.
3759         * include/std/future (__future::base::_State_baseV2::__setter):
3760         Likewise.
3761         * include/std/scoped_allocator (__outermost): Likewise.
3762         * testsuite/20_util/scoped_allocator/69114.cc: New.
3763         * testsuite/20_util/uses_allocator/69114.cc: New.
3764         * testsuite/30_threads/promise/69106.cc: New.
3766 2016-01-06  Jonathan Wakely  <jwakely@redhat.com>
3768         PR libstdc++/69092
3769         * include/bits/basic_string.h (basic_string::_S_copy_chars<_Iterator>):
3770         Remove _GLIBCXX_NOEXCEPT.
3771         testsuite/21_strings/basic_string/cons/char/69092.cc: New.
3773         * include/Makefile.am: Adjust.
3774         * include/Makefile.in: Regenerate.
3775         * include/bits/mutex.h: Rename to bits/std_mutex.h.
3776         * include/std/condition_variable: Adjust include.
3777         * include/std/mutex: Likewise.
3779 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
3781         Update copyright years.
3783 Copyright (C) 2016 Free Software Foundation, Inc.
3785 Copying and distribution of this file, with or without modification,
3786 are permitted in any medium without royalty provided the copyright
3787 notice and this notice are preserved.