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