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