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