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