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