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