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