+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/atomic_timed_wait.h (__cond_wait_until): Do not
+ perform redundant conversions to the same clock.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
+ Do not define when _GLIBCXX_HAVE_LINUX_FUTEX is defined. Use
+ __condvar and mutex instead of __gthread_cond_t and
+ unique_lock<mutex>.
+ (__cond_wait_until): Likewise. Fix test for return value of
+ __cond_wait_until_impl.
+ (__timed_waiters::_M_do_wait_until): Use __condvar instead
+ of __gthread_cond_t.
+ * include/bits/atomic_wait.h: Remove <bits/unique_lock.h>
+ include. Only include <bits/std_mutex.h> if not using futexes.
+ (__platform_wait_max_value): Remove unused variable.
+ (__waiters::lock_t): Use lock_guard instead of unique_lock.
+ (__waiters::_M_cv): Use __condvar instead of __gthread_cond_t.
+ (__waiters::_M_do_wait(__platform_wait_t)): Likewise.
+ (__waiters::_M_notify()): Likewise. Use notify_one() if not
+ asked to notify all.
+ * include/bits/std_mutex.h (__condvar): New type.
+ * include/std/condition_variable (condition_variable::_M_cond)
+ (condition_variable::wait_until): Use __condvar instead of
+ __gthread_cond_t.
+ * src/c++11/condition_variable.cc (condition_variable): Define
+ default constructor and destructor as defaulted.
+ (condition_variable::wait, condition_variable::notify_one)
+ (condition_variable::notify_all): Forward to corresponding
+ member function of __condvar.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97936
+ * testsuite/29_atomics/atomic/wait_notify/bool.cc: Re-eneable
+ test.
+ * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
+ * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
+ * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
+ * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
+ * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
+ * testsuite/util/atomic/wait_notify_util.h: Fix missed
+ notifications by making the new thread wait until the parent
+ thread is waiting on the condition variable.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97935
+ * include/bits/iterator_concepts.h (__detail::__iter_without_category):
+ New helper concept.
+ (__iterator_traits::__cat): Use __detail::__iter_without_category.
+ * testsuite/24_iterators/associated_types/iterator.traits.cc: New test.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/17_intro/names.cc: Do not test 'v' on AIX.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97936
+ * include/bits/atomic_wait.h (__platform_wait): Check errno,
+ not just the value of EAGAIN.
+ (__waiters::__waiters()): Fix name of data member.
+
+2020-11-25 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97936
+ * include/bits/atomic_wait.h (__platform_wait): Return if futex
+ sets EAGAIN.
+ * testsuite/30_threads/latch/3.cc: Re-enable test.
+ * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
+
+2020-11-24 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97936
+ PR libstdc++/97944
+ * testsuite/29_atomics/atomic_integral/wait_notify.cc: Disable.
+ Do not require pthreads, but add -pthread when appropriate.
+ * testsuite/30_threads/jthread/95989.cc: Likewise.
+ * testsuite/30_threads/latch/3.cc: Likewise.
+ * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
+
+2020-11-24 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/30_threads/jthread/95989.cc: Run all three test
+ functions, not just the first one twice.
+
+2020-11-24 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/67791
+ * src/c++11/thread.cc (thread::_M_start_thread(_State_ptr, void (*)())):
+ Check that gthreads is available before calling __gthread_create.
+
+2020-11-24 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++98/locale.cc (locale::facet::_S_get_c_locale())
+ (locale::id::_M_id() const): Use __is_single_threaded.
+ * src/c++98/locale_init.cc (locale::_S_initialize()):
+ Likewise.
+
+2020-11-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/semaphore_base.h
+ (__platform_semaphore::_M_try_acquire_until): Fix type of
+ variable.
+
+2020-11-23 Stephan Bergmann <sbergman@redhat.com>
+
+ * include/bits/atomic_wait.h (__thread_relax, __thread_yield):
+ Add 'inline'.
+
+2020-11-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Check for
+ * config.h.in: Regenerate.
+ * configure: Regenerate.
+ * include/bits/semaphore_base.h (_GLIBCXX_HAVE_POSIX_SEMAPHORE):
+ Check autoconf macro instead of defining it here.
+
+2020-11-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/atomic_wait.h: Do not define anything unless
+ gthreads or futexes are available.
+ * include/bits/atomic_timed_wait.h: Likewise.
+ * include/bits/semaphore_base.h: Likewise.
+ * include/std/semaphore: Likewise.
+ * include/bits/atomic_base.h (atomic_flag::wait)
+ (atomic_flag::notify_one, atomic_flag::notify_all)
+ (__atomic_base<I>::wait, __atomic_base<I>::notify_one)
+ (__atomic_base<I>::notify_all, __atomic_base<P*>::wait)
+ (__atomic_base<P*>::notify_one, __atomic_base<P*>::notify_all)
+ (__atomic_impl::wait, __atomic_impl::notify_one)
+ (__atomic_impl::notify_all, __atomic_float::wait)
+ (__atomic_float::notify_one, __atomic_float::notify_all)
+ (__atomic_ref::wait, __atomic_ref::notify_one)
+ (__atomic_ref::notify_all): Only define if gthreads or futexes
+ are available.
+ * include/std/atomic (atomic::wait, atomic::notify_one)
+ (atomic::notify_all): Likewise.
+ * include/std/version (__cpp_lib_semaphore): Define
+ conditionally.
+
+2020-11-23 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97948
+ * testsuite/29_atomics/atomic_float/wait_notify.cc: Add options
+ for libatomic.
+ * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
+
+2020-11-21 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/atomic_base.h (atomic_flag::wait): Use correct
+ type for __atomic_wait call.
+ * include/bits/atomic_timed_wait.h (__atomic_wait_until): Check
+ _GLIBCXX_HAVE_LINUX_FUTEX.
+ * include/bits/atomic_wait.h (__atomic_notify): Likewise.
+ * include/bits/semaphore_base.h (_GLIBCXX_HAVE_POSIX_SEMAPHORE):
+ Only define if SEM_VALUE_MAX or _POSIX_SEM_VALUE_MAX is defined.
+ * testsuite/29_atomics/atomic/wait_notify/bool.cc: Disable on
+ non-linux targes.
+ * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
+ * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
+ * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
+ * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
+
+2020-11-20 Thomas Rodgers <trodgers@redhat.com>
+
+ * include/Makefile.am (bits_headers): Add new header.
+ * include/Makefile.in: Regenerate.
+ * include/bits/atomic_base.h (__atomic_flag::wait): Define.
+ (__atomic_flag::notify_one): Likewise.
+ (__atomic_flag::notify_all): Likewise.
+ (__atomic_base<_Itp>::wait): Likewise.
+ (__atomic_base<_Itp>::notify_one): Likewise.
+ (__atomic_base<_Itp>::notify_all): Likewise.
+ (__atomic_base<_Ptp*>::wait): Likewise.
+ (__atomic_base<_Ptp*>::notify_one): Likewise.
+ (__atomic_base<_Ptp*>::notify_all): Likewise.
+ (__atomic_impl::wait): Likewise.
+ (__atomic_impl::notify_one): Likewise.
+ (__atomic_impl::notify_all): Likewise.
+ (__atomic_float<_Fp>::wait): Likewise.
+ (__atomic_float<_Fp>::notify_one): Likewise.
+ (__atomic_float<_Fp>::notify_all): Likewise.
+ (__atomic_ref<_Tp>::wait): Likewise.
+ (__atomic_ref<_Tp>::notify_one): Likewise.
+ (__atomic_ref<_Tp>::notify_all): Likewise.
+ (atomic_wait<_Tp>): Likewise.
+ (atomic_wait_explicit<_Tp>): Likewise.
+ (atomic_notify_one<_Tp>): Likewise.
+ (atomic_notify_all<_Tp>): Likewise.
+ * include/bits/atomic_wait.h: New file.
+ * include/bits/atomic_timed_wait.h: New file.
+ * include/bits/semaphore_base.h: New file.
+ * include/std/atomic (atomic<bool>::wait): Define.
+ (atomic<bool>::wait_one): Likewise.
+ (atomic<bool>::wait_all): Likewise.
+ (atomic<_Tp>::wait): Likewise.
+ (atomic<_Tp>::wait_one): Likewise.
+ (atomic<_Tp>::wait_all): Likewise.
+ (atomic<_Tp*>::wait): Likewise.
+ (atomic<_Tp*>::wait_one): Likewise.
+ (atomic<_Tp*>::wait_all): Likewise.
+ * include/std/latch: New file.
+ * include/std/semaphore: New file.
+ * include/std/version: Add __cpp_lib_semaphore and
+ __cpp_lib_latch defines.
+ * testsuite/29_atomics/atomic/wait_notify/bool.cc: New test.
+ * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
+ * testsuite/29_atomics/atomic/wait_notify/generic.cc: Liekwise.
+ * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
+ * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
+ * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
+ * testsuite/30_threads/semaphore/1.cc: New test.
+ * testsuite/30_threads/semaphore/2.cc: Likewise.
+ * testsuite/30_threads/semaphore/least_max_value_neg.cc: Likewise.
+ * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
+ * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
+ * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
+ * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
+ * testsuite/30_threads/latch/1.cc: New test.
+ * testsuite/30_threads/latch/2.cc: New test.
+ * testsuite/30_threads/latch/3.cc: New test.
+ * testsuite/util/atomic/wait_notify_util.h: New File.
+
+2020-11-20 François Dumont <fdumont@gcc.gnu.org>
+
+ PR libstdc++/83938
+ * include/bits/stl_tempbuf.h (get_temporary_buffer): Change __len
+ computation in the loop to avoid truncation.
+ * include/bits/stl_algo.h:
+ (__inplace_merge): Take temporary buffer length from smallest range.
+ (__stable_sort): Limit temporary buffer length.
+ * testsuite/25_algorithms/inplace_merge/1.cc (test4): New.
+ * testsuite/performance/25_algorithms/stable_sort.cc: Test stable_sort
+ under different heap memory conditions.
+ * testsuite/performance/25_algorithms/inplace_merge.cc: New test.
+
+2020-11-20 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/move.h (_GLIBCXX_FWDREF): New.
+ * include/bits/stl_tree.h: Adapt to use latter.
+ (_Rb_tree<>::_M_clone_node): Add _MoveValue template parameter.
+ (_Rb_tree<>::_M_mbegin): New.
+ (_Rb_tree<>::_M_begin): Use latter.
+ (_Rb_tree<>::_M_copy): Add _MoveValues template parameter.
+ * testsuite/23_containers/map/allocator/move_cons.cc: New test.
+ * testsuite/23_containers/multimap/allocator/move_cons.cc: New test.
+ * testsuite/23_containers/multiset/allocator/move_cons.cc: New test.
+ * testsuite/23_containers/set/allocator/move_cons.cc: New test.
+
+2020-11-20 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/92546
+ * include/std/regex (pmr::smatch, pmr::wsmatch): Declare using
+ underlying __normal_iterator type, not nested typedef
+ basic_string::const_iterator.
+
+2020-11-19 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/95989
+ * config/os/gnu-linux/os_defines.h (_GLIBCXX_NATIVE_THREAD_ID):
+ Define new macro to get reliable thread ID.
+ * include/bits/std_thread.h: (this_thread::get_id): Use new
+ macro if it's defined.
+ * testsuite/30_threads/jthread/95989.cc: New test.
+ * testsuite/30_threads/this_thread/95989.cc: New test.
+
+2020-11-19 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/30_threads/async/async.cc: Include <thread>.
+ * testsuite/30_threads/future/members/93456.cc: Likewise.
+
+2020-11-19 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/92546
+ * include/Makefile.am: Add new <bits/std_thread.h> header.
+ * include/Makefile.in: Regenerate.
+ * include/std/future: Include new header instead of <thread>.
+ * include/std/stop_token: Include new header instead of
+ <bits/gthr.h>.
+ (stop_token::_S_yield()): Use this_thread::yield().
+ (_Stop_state_t::_M_requester): Change type to std::thread::id.
+ (_Stop_state_t::_M_request_stop()): Use this_thread::get_id().
+ (_Stop_state_t::_M_remove_callback(_Stop_cb*)): Likewise.
+ Use __is_single_threaded() to decide whether to synchronize.
+ * include/std/thread (thread, operator==, this_thread::get_id)
+ (this_thread::yield): Move to new header.
+ (operator<=>, operator!=, operator<, operator<=, operator>)
+ (operator>=, hash<thread::id>, operator<<): Define even when
+ gthreads not available.
+ * src/c++11/thread.cc: Include <memory>.
+ * include/bits/std_thread.h: New file.
+ (thread, operator==, this_thread::get_id, this_thread::yield):
+ Define even when gthreads not available.
+ [!_GLIBCXX_HAS_GTHREADS] (thread::join, thread::detach)
+ (thread::hardware_concurrency): Define inline.
+
+2020-11-19 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/93421
+ PR libstdc++/93456
+ * src/c++11/futex.cc (syscall_time_t): New typedef for
+ the type of the syscall_timespec::tv_sec member.
+ (relative_timespec, _M_futex_wait_until)
+ (_M_futex_wait_until_steady): Use syscall_time_t in overflow
+ checks, not time_t.
+
+2020-11-18 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/ranges (join_view::_Iterator::_M_satisfy): Uglify
+ local variable inner.
+ (join_view::_Iterator::operator->): Use _Inner_iter instead of
+ _Outer_iter in the function signature as per LWG 3500.
+ * testsuite/std/ranges/adaptors/join.cc (test08): Test it.
+
+2020-11-17 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/93421
+ * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Fail if struct
+ timespec isn't compatible with SYS_clock_gettime.
+ * configure: Regenerate.
+ * src/c++11/chrono.cc: Revert changes for time64 compatibility.
+ Add static_assert instead.
+ * src/c++11/futex.cc (_M_futex_wait_until_steady): Assume
+ SYS_clock_gettime can use struct timespec.
+
+2020-11-17 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97869
+ * include/precompiled/stdc++.h: Include <coroutine>.
+ * include/std/version (__cpp_lib_span): Check __cpp_lib_concepts
+ before defining.
+
+2020-11-17 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/97828
+ * include/bits/ranges_algo.h (__search_n_fn::operator()): Check
+ random_access_iterator before using the backtracking
+ implementation. When the backwards scan fails prematurely,
+ reset __remainder appropriately.
+ * testsuite/25_algorithms/search_n/97828.cc: New test.
+
+2020-11-16 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/Makefile.am (libstdc++-symbols.ver-sun): Remove -lrt from
+ arguments passed to make_sunver.pl script.
+ * src/Makefile.in: Regenerate.
+
+2020-11-15 Jason Merrill <jason@redhat.com>
+
+ * testsuite/20_util/result_of/sfinae_friendly_1.cc: Adjust.
+
+2020-11-13 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/93421
+ * src/c++11/chrono.cc [_GLIBCXX_USE_CLOCK_GETTIME_SYSCALL]
+ (syscall_timespec): Define a type suitable for SYS_clock_gettime
+ calls.
+ (system_clock::now(), steady_clock::now()): Use syscall_timespec
+ instead of timespec.
+ * src/c++11/futex.cc (syscall_timespec): Define a type suitable
+ for SYS_futex and SYS_clock_gettime calls.
+ (relative_timespec): Use syscall_timespec instead of timespec.
+ (__atomic_futex_unsigned_base::_M_futex_wait_until): Likewise.
+ (__atomic_futex_unsigned_base::_M_futex_wait_until_steady):
+ Likewise.
+
+2020-11-13 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/93456
+ * src/c++11/futex.cc (relative_timespec): Remove redundant check
+ negative values.
+ * testsuite/30_threads/future/members/wait_until_overflow.cc: Moved to...
+ * testsuite/30_threads/future/members/93456.cc: ...here.
+
+2020-11-13 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++11/futex.cc (relative_timespec): Add [[unlikely]]
+ attributes.
+ (__atomic_futex_unsigned_base::_M_futex_wait_until)
+ (__atomic_futex_unsigned_base::_M_futex_wait_until_steady):
+ Check for overflow.
+ * testsuite/30_threads/future/members/wait_until_overflow.cc:
+ New test.
+
+2020-11-13 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++11/futex.cc (relative_timespec): New function to
+ create relative time from two absolute times.
+ (__atomic_futex_unsigned_base::_M_futex_wait_until)
+ (__atomic_futex_unsigned_base::_M_futex_wait_until_steady):
+ Use relative_timespec.
+
+2020-11-13 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/30_threads/future/members/poll.cc: Require gthreads
+ and add -pthread for targets that require it. Relax required
+ ratio of wait_for calls before/after the future is ready.
+
+2020-11-12 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/future (future::wait_for): Do not wait for
+ durations less than or equal to zero.
+ * src/c++11/futex.cc (_M_futex_wait_until)
+ (_M_futex_wait_until_steady): Do not wait for timeouts before
+ the epoch.
+ * testsuite/30_threads/future/members/poll.cc: New test.
+
+2020-11-12 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/ext/numeric_traits.h (__numeric_traits): Change
+ primary template to always derive from __numeric_traits_integer.
+ (__numeric_traits<float>, __numeric_traits<double>)
+ (__numeric_traits<long double>): Add explicit specializations.
+
+2020-11-12 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97798
+ * include/ext/numeric_traits.h (__glibcxx_signed)
+ (__glibcxx_digits, __glibcxx_min, __glibcxx_max): Remove
+ macros.
+ (__is_integer_nonstrict::__width): Define new constant.
+ (__numeric_traits_integer): Define constants in terms of each
+ other and __is_integer_nonstrict::__width, rather than the
+ removed macros.
+ (_GLIBCXX_INT_N_TRAITS): Macro to define explicit
+ specializations for non-standard integer types.
+
+2020-11-11 Jonathan Yong <10walls@gmail.com>
+
+ * acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Exclude
+ cygwin and mingw from relro linker test.
+ * configure: Regenerate.
+
+2020-11-11 Paul Scharnofske <asynts@gmail.com>
+
+ * include/std/thread (jthread::operator=(jthread&&)): Transfer
+ any existing state to a temporary that will request a stop and
+ then join.
+ * testsuite/30_threads/jthread/jthread.cc: Test move assignment.
+
+2020-11-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/stop_token (_Stop_state_t::_M_requester): Define
+ new struct with members to store and check the thread ID.
+ (_Stop_state_t::_M_request_stop()): Use _M_requester._M_set().
+ (_Stop_state_t::_M_remove_callback(_Stop_cb*)): Use
+ _M_requester._M_is_current_thread().
+
+2020-11-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/ostream (__syncbuf_base): New class template.
+ (emit_on_flush, noemit_on_flush, flush_emit): New manipulators.
+ * include/std/syncstream (basic_syncbuf): Derive from
+ __syncbuf_base instead of basic_streambuf.
+ (basic_syncbuf::operator=): Remove self-assignment check.
+ (basic_syncbuf::swap): Remove self-swap check.
+ (basic_syncbuf::emit): Do not skip pubsync() call if sequence
+ is empty.
+ (basic_syncbuf::sync): Remove no-op pubsync on stringbuf.
+ (basic_syncbuf::overflow): Define override.
+ * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Test
+ basic_osyncstream::put(char_type).
+ * testsuite/27_io/basic_ostream/emit/1.cc: New test.
+
+2020-11-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * config/locale/generic/c_locale.cc (__set_C_locale()): New function
+ to set the "C" locale and return the name of the previous locale.
+ (__convert_to_v<float>, __convert_to_v<double>)
+ (__convert_to_v<long double>): Use __set_C_locale and set failbit on
+ error.
+
+2020-11-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/sstream (basic_stringbug, basic_istringstream)
+ (basic_ostringstream, basic_stringstream): Reorder C++20
+ constructors to be declared next to other constructors.
+
+2020-11-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten patterns.
+ (GLIBCXX_3.4.29): Export new symbols.
+ * include/bits/alloc_traits.h (__allocator_like): New concept.
+ * include/std/sstream (basic_stringbuf::swap): Add exception
+ specification.
+ (basic_stringbuf::str() const): Add ref-qualifier. Use new
+ _M_high_mark function.
+ (basic_stringbuf::str(const SAlloc&) const): Define new function.
+ (basic_stringbuf::str() &&): Likewise.
+ (basic_stringbuf::str(const basic_string<C,T,SAlloc>&)):
+ Likewise.
+ (basic_stringbuf::str(basic_string<C,T,Alloc>&&)): Likewise.
+ (basic_stringbuf::view() const): Use _M_high_mark.
+ (basic_istringstream::str, basic_ostringstream::str)
+ (basic_stringstream::str): Define new overloads.
+ * src/c++20/sstream-inst.cc (basic_stringbuf::str)
+ (basic_istringstream::str, basic_ostringstream::str)
+ (basic_stringstream::str): Explicit instantiation definitions
+ for new overloads.
+ * testsuite/27_io/basic_istringstream/view/char/1.cc: Add more
+ checks.
+ * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_ostringstream/view/char/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_stringstream/view/char/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_istringstream/str/char/2.cc: New test.
+ * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc: New test.
+ * testsuite/27_io/basic_ostringstream/str/char/3.cc: New test.
+ * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc: New test.
+ * testsuite/27_io/basic_stringbuf/str/char/4.cc: New test.
+ * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: New test.
+ * testsuite/27_io/basic_stringstream/str/char/5.cc: New test.
+ * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc: New test.
+
+2020-11-10 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97415
+ * include/std/sstream (basic_stringbuf::_M_update_egptr)
+ (basic_stringbuf::__xfer_bufptrs::__xfer_bufptrs): Check for
+ null before comparing pointers.
+
+2020-11-09 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/debug/array: Remove.
+ * include/Makefile.am: Remove <debug/array>.
+ * include/Makefile.in: Regenerate.
+ * include/experimental/functional: Adapt.
+ * include/std/array: Move to _GLIBCXX_INLINE_VERSION namespace.
+ * include/std/functional: Adapt.
+ * include/std/span: Adapt.
+ * testsuite/23_containers/array/debug/back1_neg.cc:
+ Remove dg-require-debug-mode. Add -D_GLIBCXX_ASSERTIONS option.
+ * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
+ * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
+ * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
+ * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
+ Likewise.
+ * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
+ Likewise.
+ * testsuite/23_containers/array/element_access/60497.cc
+ * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
+ Remove.
+ * testsuite/23_containers/array/tuple_interface/get_neg.cc
+ * testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc
+ * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
+
+2020-11-09 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/debug/assertions.h (__glibcxx_requires_non_empty_range):
+ Remove __builtin_expect.
+ (__glibcxx_requires_subscript): Likewise.
+ (__glibcxx_requires_nonempty): Likewise.
+ * include/debug/formatter.h (__check_singular): Add C++11 constexpr
+ qualification.
+ * include/debug/helper_functions.h (__check_singular): Likewise. Skip
+ check if constant evaluated.
+ (__valid_range): Do not skip check if constant evaluated.
+ * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_COND_AT): Add
+ __builtin_expect.
+ (_GLIBCXX_DEBUG_VERIFY_AT_F): Use __glibcxx_assert_1.
+ * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
+ New test.
+ * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc: New test.
+ * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: New test.
+ * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
+ New test.
+ * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
+ New test.
+ * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
+ New test.
+ * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc: New test.
+ * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: New test.
+ * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
+ New test.
+ * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: New test.
+ * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: New test.
+ * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: New test.
+ * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc: New test.
+ * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc: New test.
+ * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: New test.
+ * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: New test.
+ * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: New test.
+ * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc: New test.
+ * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc: New test.
+
+2020-11-09 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/uniform_int_dist.h (__detail::_Power_of_2):
+ Document that true result for zero is intentional.
+
+2020-11-09 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/bit (__popcount): Remove redundant check for zero.
+
+2020-11-09 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97729
+ * libsupc++/exception_ptr.h (exception_ptr::exception_ptr())
+ (exception_ptr::exception_ptr(const exception_ptr&))
+ (exception_ptr::~exception_ptr()): Remove 'always_inline'
+ attributes. Use 'inline' unconditionally.
+
+2020-11-09 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97758
+ * include/bits/std_function.h [!__cpp_rtti]: Include <typeinfo>.
+
+2020-11-07 Liu Hao <lh_mouse@126.com>
+
+ * libsupc++/cxxabi.h: (__cxa_atexit): mark with _GLIBCXX_CDTOR_CALLABI
+ (__cxa_thread_atexit): ditto
+ * libsupc++/atexit_thread.cc: (__cxa_atexit): mark with
+ _GLIBCXX_CDTOR_CALLABI
+ (__cxa_thread_atexit): ditto
+ (elt): ditto
+
+2020-11-06 Jonathan Wakely <jwakely@redhat.com>
+
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten up patterns
+ for basic_stringbuf that refer to __xfer_bufptrs.
+
+2020-11-05 Marek Polacek <polacek@redhat.com>
+
+ PR c++/25814
+ * testsuite/20_util/reference_wrapper/lwg2993.cc: Add a dg-warning.
+ * testsuite/25_algorithms/generate_n/87982_neg.cc: Likewise.
+
+2020-11-05 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96269
+ * include/std/optional (operator==, operator!=, operator<)
+ (operator>, operator<=, operator>=): Fix types used in
+ SFINAE constraints.
+ * testsuite/20_util/optional/relops/96269.cc: New test.
+
+2020-11-05 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97731
+ * src/filesystem/dir.cc (recursive_directory_iterator): Call the
+ right overload of _Dir::advance.
+ * testsuite/experimental/filesystem/iterators/97731.cc: New test.
+
+2020-11-05 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97729
+ * include/std/future (__basic_future::_M_get_result): Use
+ nullptr for null pointer constant.
+ * libsupc++/eh_ptr.cc (operator==, operator!=): Remove
+ definitions.
+ * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Define
+ macro to conditionally add __attribute__((__used__)).
+ (operator==, operator!=, exception_ptr::exception_ptr())
+ (exception_ptr::exception_ptr(const exception_ptr&))
+ (exception_ptr::~exception_ptr())
+ (exception_ptr::operator=(const exception_ptr&))
+ (exception_ptr::swap(exception_ptr&)): Always define as
+ inline. Add macro to be conditionally "used".
+
+2020-11-05 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97729
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Add exports.
+ * src/c++20/sstream-inst.cc (basic_stringbuf): Instantiate
+ private constructor taking __xfer_bufptrs.
+
+2020-11-05 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/sstream (basic_stringbuf(const allocator_type&):
+ Add explicit.
+ (basic_stringbuf(const basic_string<C,T,SA>&, openmode, const A&)):
+ Call _M_stringbuf_init. Construct _M_string from pointer and length
+ to avoid constraint checks for string view.
+ (basic_stringbuf::view()): Make __sv_type alias local to the
+ function.
+ (basic_istringstream(const basic_string<C,T,SA>&, openmode, const A&)):
+ Pass string to _M_streambuf instead of constructing a temporary
+ with the wrong allocator.
+ (basic_ostringstream(const basic_string<C,T,SA>&, openmode, const A&)):
+ Likewise.
+ (basic_stringstream(const basic_string<C,T,SA>&, openmode, const A&)):
+ Likewise.
+ * src/c++20/sstream-inst.cc: Use string_view and wstring_view
+ typedefs in explicit instantiations.
+ * testsuite/27_io/basic_istringstream/cons/char/1.cc: Add more
+ tests for constructors.
+ * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
+ * testsuite/27_io/basic_stringbuf/cons/char/1.cc: Likewise.
+ * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
+ * testsuite/27_io/basic_stringbuf/cons/wchar_t/1.cc: Likewise.
+ * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
+ * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
+
+2020-11-05 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/sstream: Adjust whitespace.
+
+2020-11-04 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97719
+ * include/std/sstream (basic_stringstream(string_type&&, openmode)):
+ Fix default argument.
+ * testsuite/27_io/basic_stringstream/cons/char/97719.cc: New test.
+
+2020-11-04 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/18_support/96817.cc: Fail fast if the library is
+ configured to not use futexes.
+
+2020-11-04 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/94971
+ * include/bits/stl_algo.h (search(FIter, FIter, const Searcher):
+ Adjust #if condition.
+ * include/parallel/algo.h (search(FIter, FIter, const Searcher&):
+ Define new overload for C++17.
+
+2020-11-04 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/92285
+ * doc/xml/manual/evolution.xml: Document change to base class.
+ * doc/html/manual/api.html: Regenerate.
+
+2020-11-04 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/uniform_int_dist.h (uniform_int_distribution::_S_nd):
+ Use qualified-id to refer to static member functions.
+
+2020-11-03 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/syncstream: Include <bits/std_mutex.h>
+ unconditionally.
+
+2020-11-03 François Dumont <fdumont@gcc.gnu.org>
+
+ * config/abi/pre/gnu-versioned-namespace.ver:
+ Add __istream_extract and _Safe_local_iterator_base::_M_attach_single
+ symbols.
+
+2020-11-03 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++11/mutex.cc [_GLIBCXX_HAVE_TLS] (__once_proxy): Define
+ separately for TLS targets.
+ [!_GLIBCXX_HAVE_TLS] (__get_once_functor_lock_ptr): Replace with ...
+ (set_lock_ptr): ... this. Set new value and return previous
+ value.
+ [!_GLIBCXX_HAVE_TLS] (__set_once_functor_lock_ptr): Adjust to
+ use set_lock_ptr.
+ [!_GLIBCXX_HAVE_TLS] (__once_proxy): Likewise.
+
+2020-11-03 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/55394
+ PR libstdc++/66146
+ PR libstdc++/84323
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Add new symbols.
+ * include/std/mutex [!_GLIBCXX_HAS_GTHREADS] (once_flag): Define
+ even when gthreads is not supported.
+ (once_flag::_M_once) [_GLIBCXX_HAVE_LINUX_FUTEX]: Change type
+ from __gthread_once_t to int.
+ (once_flag::_M_passive(), once_flag::_M_activate())
+ (once_flag::_M_finish(bool), once_flag::_Active_execution):
+ Define new members for futex and non-threaded implementation.
+ [_GLIBCXX_HAS_GTHREADS] (once_flag::_Prepare_execution): New
+ RAII helper type.
+ (call_once): Use new members of once_flag.
+ * src/c++11/mutex.cc (std::once_flag::_M_activate): Define.
+ (std::once_flag::_M_finish): Define.
+ * testsuite/30_threads/call_once/39909.cc: Do not require
+ gthreads.
+ * testsuite/30_threads/call_once/49668.cc: Likewise.
+ * testsuite/30_threads/call_once/60497.cc: Likewise.
+ * testsuite/30_threads/call_once/call_once1.cc: Likewise.
+ * testsuite/30_threads/call_once/dr2442.cc: Likewise.
+ * testsuite/30_threads/call_once/once_flag.cc: Add test for
+ constexpr constructor.
+ * testsuite/30_threads/call_once/66146.cc: New test.
+ * testsuite/30_threads/call_once/constexpr.cc: Removed.
+ * testsuite/30_threads/once_flag/cons/constexpr.cc: Removed.
+
+2020-11-03 Jonathan Yong <10walls@gmail.com>
+
+ * src/Makefile.am (libstdc___la_LINK): Add lt_host_flags.
+ * src/Makefile.in: Regenerate.
+
+2020-11-02 Thomas Rodgers <trodgers@redhat.com>
+
+ * doc/doxygen/user.cfg.in (INPUT): Add new header.
+ * include/Makefile.am (std_headers): Add new header.
+ * include/Makefile.in: Regenerate.
+ * include/precompiled/stdc++.h: Include new header.
+ * include/std/syncstream: New header.
+ * include/std/version: Add __cpp_lib_syncbuf.
+ * testsuite/27_io/basic_syncbuf/1.cc: New test.
+ * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
+ * testsuite/27_io/basic_syncbuf/basic_ops/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_syncbuf/requirements/types.cc:
+ Likewise.
+ * testsuite/27_io/basic_syncbuf/sync_ops/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_syncstream/1.cc: Likewise.
+ * testsuite/27_io/basic_syncstream/2.cc: Likewise.
+ * testsuite/27_io/basic_syncstream/basic_ops/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_syncstream/requirements/types.cc:
+ Likewise.
+
+2020-11-01 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/type_traits (is_integral<wchar_t>)
+ (make_unsigned<wchar_t>, make_signed<wchar_t>): Define based
+ on #ifdef __WCHAR_TYPE__ instead of _GLIBCXX_USE_WCHAR_T.
+ * include/bits/cpp_type_traits.h (__is_integer<wchar_t>)
+ (__is_char<wchar_t>): Likewise.
+
+2020-10-31 François Dumont <fdumont@gcc.gnu.org>
+
+ * src/c++17/floating_from_chars.cc (_GLIBCXX_USE_CX11_ABI): Add define.
+ (buffering_string): New.
+ [!_GLIBCXX_USE_CXX11_ABI](reserve_string): New.
+ (from_chars): Adapt.
+ * src/c++20/sstream-inst.cc: Limit instantiations to
+ _GLIBCXX_USE_CXX11_ABI.
+
+2020-10-31 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/random.h (independent_bit_engine): Fix typo
+ in comment.
+ (shuffle_order_engine): Fix incorrect description in comment.
+ * include/bits/random.tcc (__representable_as_double
+ (__p1_representable_as_double): New helper functions.
+ (shuffle_order_engine::operator()): Use double for calculation
+ if (max() - min() + 1) is representable as double.
+ * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
+ line number.
+
+2020-10-31 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96958
+ * include/bits/hashtable_policy.h (_Prime_rehash_policy)
+ (_Power2_rehash_policy): Use ceil and floor instead of ceill and
+ floorl.
+ * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy): Likewise.
+ Use double instead of long double.
+
+2020-10-31 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/97600
+ * include/std/ranges (basic_istream_view::begin): Initialize
+ _Iterator from 'this' instead of '*this'.
+ (basic_istream_view::_Iterator::_Iterator): Adjust constructor
+ accordingly.
+ (filter_view::_Iterator::_Iterator): Take a filter_view*
+ argument instead of a filter_view& argument.
+ (filter_view::_Sentinel::_Sentinel): Likewise.
+ (filter_view::begin): Initialize _Iterator from 'this' instead
+ of '*this'.
+ (filter_view::end): Likewise.
+ (transform_view::_Iterator::_Iterator): Take a _Parent* instead
+ of a _Parent&.
+ (filter_view::_Iterator::operator+): Adjust accordingly.
+ (filter_view::_Iterator::operator-): Likewise.
+ (filter_view::begin): Initialize _Iterator from 'this' instead
+ of '*this'.
+ (filter_view::end): Likewise.
+ (join_view::_Iterator): Take a _Parent* instead of a _Parent&.
+ (join_view::_Sentinel): Likewise.
+ (join_view::begin): Initialize _Iterator from 'this' instead of
+ '*this'.
+ (join_view::end): Initialize _Sentinel from 'this' instead of
+ '*this'.
+ (split_view::_OuterIter): Take a _Parent& instead of a _Parent*.
+ (split_view::begin): Initialize _OuterIter from 'this' instead
+ of '*this'.
+ (split_view::end): Likewise.
+ * testsuite/std/ranges/97600.cc: New test.
+
+2020-10-30 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/ranges (enable_borrowed_view<take_view<T>>)
+ (enable_borrowed_view<drop_view<T>>)
+ (enable_borrowed_view<drop_while_view<T>>)
+ (enable_borrowed_view<reverse_view<T>>)
+ (enable_borrowed_view<common_view<T>>)
+ (enable_borrowed_view<elements_view<T>>): Add partial
+ specializations as per P2017R1.
+ * testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
+ New test.
+
+2020-10-30 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96958
+ * include/bits/hashtable_policy.h (_Prime_rehash_policy)
+ (_Power2_rehash_policy): Use double instead of long double.
+
+2020-10-30 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
+ Avoid -Wcatch-value warnings.
+
+2020-10-30 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/ranges (__detail::__box): For the partial
+ specialization used by types that are already semiregular,
+ make the default constructor value-initialize the underlying
+ object instead of default-initializing it. Make its in place
+ constructor explicit.
+ * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
+ Augment test.
+
+2020-10-30 David Edelsohn <dje.gcc@gmail.com>
+
+ * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: XFAIL on AIX.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Tighten patterns
+ for old <sstream> symbols some more.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/ranges_util.h (subrange::subrange(R&&)): Use
+ direct-initialization instead of list-initialization, so a
+ potential narrowing conversion from ranges::size(r) to the
+ stored size isn't ill-formed.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/parse_numbers.h (_Select_int_base): Avoid
+ narrowing conversion in constant expression.
+ * include/experimental/buffer (buffer_copy): Avoid narrowing
+ conversion.
+ * include/experimental/internet (hash<>::operator()): Do not
+ use deprecated 'argument_type' member.
+ * include/std/variant (variant::emplace): Use cast instead
+ of implicit conversion from size_t to narrower unsigned type.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/tr1/shared_ptr.h (__shared_count, __shared_ptr)
+ (shared_ptr): Add diagnostic pragmas around uses of auto_ptr.
+ * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
+ Adust dg-error line numbers.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/18_support/96817.cc: Avoid -Wunused warnings.
+ * testsuite/20_util/any/assign/2.cc: Likewise.
+ * testsuite/20_util/any/cons/2.cc: Likewise.
+ * testsuite/20_util/align/1.cc: Avoid -Wsign-compare warning.
+ * testsuite/20_util/function/65760.cc: Avoid -Wunused warning.
+ * testsuite/20_util/function/1.cc: Avoid -Wcatch-value warning.
+ * testsuite/20_util/function/cons/move_target.cc: Avoid -Wunused
+ warning.
+ * testsuite/20_util/headers/memory/synopsis.cc: Add exception
+ specification.
+ * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Avoid
+ -Wsign-compare warning.
+ * testsuite/20_util/tuple/cons/deduction.cc: Avoid -Wunused
+ warning.
+ * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc:
+ Avoid -Wdeprecated-copy warning.
+ * testsuite/21_strings/basic_string/56166.cc: Avoid
+ -Wcatch-value warning.
+ * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
+ Avoid -Wcatch-value warnings.
+ * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
+ Prune additional diagnostics.
+ * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
+ Likewise.
+ * testsuite/21_strings/headers/string/synopsis.cc: Add exception
+ specifications.
+ * testsuite/22_locale/locale/cons/12352.cc: Define sized
+ delete operators to avoid warnings.
+ * testsuite/23_containers/deque/modifiers/swap/1.cc: Add
+ exception specification.
+ * testsuite/23_containers/forward_list/cons/11.cc: Avoid
+ -Wdeprecated-copy warning.
+ * testsuite/23_containers/headers/bitset/synopsis.cc: Add
+ exception specification.
+ * testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
+ * testsuite/23_containers/headers/forward_list/synopsis.cc:
+ Likewise.
+ * testsuite/23_containers/headers/list/synopsis.cc: Likewise.
+ * testsuite/23_containers/headers/map/synopsis.cc: Likewise.
+ * testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
+ * testsuite/23_containers/headers/set/synopsis.cc: Likewise.
+ * testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
+ * testsuite/23_containers/list/modifiers/swap/1.cc: Likewise.
+ * testsuite/23_containers/map/modifiers/swap/1.cc: Likewise.
+ * testsuite/23_containers/multimap/modifiers/swap/1.cc:
+ Likewise.
+ * testsuite/23_containers/multiset/modifiers/swap/1.cc:
+ Likewise.
+ * testsuite/23_containers/set/modifiers/swap/1.cc: Likewise.
+ * testsuite/23_containers/unordered_set/56267-2.cc: Avoid
+ -Wdeprecated-copy warning.
+ * testsuite/23_containers/vector/bool/23632.cc: Avoid
+ -Wempty-body warning.
+ * testsuite/23_containers/vector/modifiers/swap/1.cc: Add
+ exception specification.
+ * testsuite/25_algorithms/heap/moveable2.cc: Fix misplaced
+ parentheses around arguments.
+ * testsuite/25_algorithms/sample/1.cc: Use return value.
+ * testsuite/25_algorithms/search/searcher.cc: Avoid -Wunused
+ warnings.
+ * testsuite/27_io/basic_ostream/exceptions/char/9561.cc:
+ Likewise.
+ * testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc:
+ Likewise.
+ * testsuite/27_io/filesystem/operations/remove_all.cc: Avoid
+ -Wsign-compare warning.
+ * testsuite/experimental/any/assign/2.cc: Avoid -Wunused warnings.
+ * testsuite/experimental/any/cons/2.cc: Likewise.
+ * testsuite/experimental/filesystem/operations/remove_all.cc:
+ Avoid -Wign-compare warning.
+ * testsuite/experimental/memory/observer_ptr/cons/cons.cc:
+ Likewise.
+ * testsuite/experimental/memory_resource/null_memory_resource.cc:
+ Likewise.
+ * testsuite/experimental/source_location/1.cc: Avoid -Waddress
+ warning.
+ * testsuite/ext/pod_char_traits.cc: Avoid -Wunused warning.
+ * testsuite/ext/vstring/modifiers/clear/56166.cc: Avoid
+ -Wcatch-value.
+ * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
+ Avoid -Wunused warning.
+ * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc:
+ Likewise.
+ * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
+ Prune additional warnings.
+ * testsuite/tr1/3_function_objects/function/1.cc: Avoid
+ -Wcatch-value warning.
+ * testsuite/util/replacement_memory_operators.h: Define sized
+ delete to avoid warnings.
+ * testsuite/util/testsuite_api.h (_NonDefaultConstructible): Add
+ user-declared assignment operator to stop -Wdeprecated-copy
+ warnings.
+ * testsuite/util/testsuite_containers.h: Avoid -Wunused warning.
+ * testsuite/util/testsuite_iterators.h: Avoid -Wsign-compare
+ warnings.
+ * testsuite/util/testsuite_new_operators.h: Define sized deleted.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/25_algorithms/all_of/constexpr.cc: Check result of
+ the algorithm.
+ * testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/count/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/equal/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/fill/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/merge/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/search/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/set_intersection/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/uniform_int_dist.h (_Power_of_two): Add
+ constexpr.
+ (uniform_int_distribution::_S_nd): Add static_assert to ensure
+ the wider type is twice as wide as the result type.
+ (uniform_int_distribution::__generate_impl): Add static_assert
+ and declare variables as constexpr where appropriate.
+ (uniform_int_distribution:operator()): Likewise. Only consider
+ the uniform random bit generator's range of possible results
+ when deciding whether _S_nd can be used, not the __uctype type.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/ext/rope (_Refcount_Base::_M_ref_count): Remove
+ volatile qualifier.
+ (_Refcount_Base::_M_decr()): Likewise.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/std_function.h (_Function_handler<void, void>):
+ Define explicit specialization used for invalid target types.
+ (_Base_manager::_M_manager) [!__cpp_rtti]: Return null.
+ (function::target_type()): Check for null pointer.
+ (function::target()): Define unconditionall. Fix bug with
+ const_cast of function pointer type.
+ (function::target() const): Define unconditionally, but
+ only use RTTI if enabled.
+ * testsuite/20_util/function/target_no_rtti.cc: New test.
+
+2020-10-29 Patrick Palka <ppalka@redhat.com>
+
+ * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
+ (test03): Fix initializing the vector vy with the array y of size 4.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/hashtable_policy.h (_Local_iterator_base): Cast
+ value to avoid -Wsign-compare warnings.
+ * include/bits/regex.h (sub_match::_M_str): Avoid narrowing
+ conversion.
+ * include/bits/regex_compiler.tcc (_Compiler::_M_quantifier):
+ Initialize variable to avoid -Wmaybe-uninitialized warning.
+ * include/bits/shared_ptr_base.h (_Sp_counted_deleter::_Impl):
+ Reorder mem-initializer-list to avoid -Wreorder warning.
+ * include/bits/stl_tree.h (_Rb_tree_impl): Explicitly
+ initialize base class in copy constructor.
+ * include/debug/safe_iterator.h (_Safe_iterator): Likewise.
+ * include/ext/debug_allocator.h: Reorder mem-initializer-list
+ to avoid -Wreorder warning.
+ * include/ext/throw_allocator.h (throw_allocator_limit)
+ (throw_allocator_random): Add user-declared assignment operators
+ to avoid -Wdeprecated-copy warnings.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/uniform_int_dist.h (uniform_int_distribution):
+ Rename _UniformRandomNumberGenerator template parameters to
+ _UniformRandomBitGenerator, as per P0346R1.
+
+2020-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/sstream (basic_stringbuf(__string_type&&, openmode)):
+ Call _M_init_syncbuf to set up get/put areas. Also qualify
+ std::move.
+
+2020-10-28 Jonathan Wakely <jwakely@redhat.com>
+
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Remove duplicate
+ patterns.
+ (CXXABI_1.3.13): Restore missing piece.
+
+2020-10-28 Thomas Rodgers <trodgers@redhat.com>
+
+ * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++20.
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): New symbols.
+ * configure: Regenerate.
+ * include/std/sstream:
+ (basic_stringbuf::basic_stringbuf(allocator const&)): New constructor.
+ (basic_stringbuf::basic_stringbuf(openmode, allocator const&)): Likewise.
+ (basic_stringbuf::basic_stringbuf(basic_string&&, openmode)): Likewise.
+ (basic_stringbuf::basic_stringbuf(basic_stringbuf&&, allocator const&)):
+ Likewise.
+ (basic_stringbuf::get_allocator()): New method.
+ (basic_stringbuf::view()): Likewise.
+ (basic_istringstream::basic_istringstream(basic_string&&, openmode)):
+ New constructor.
+ (basic_istringstream::basic_istringstream(openmode, allocator const&)):
+ Likewise
+ (basic_istringstream::view()): New method.
+ (basic_ostringstream::basic_ostringstream(basic_string&&, openmode)):
+ New constructor.
+ (basic_ostringstream::basic_ostringstream(openmode, allocator const&)):
+ Likewise
+ (basic_ostringstream::view()): New method.
+ (basic_stringstream::basic_stringstream(basic_string&&, openmode)):
+ New constructor.
+ (basic_stringstream::basic_stringstream(openmode, allocator const&)):
+ Likewise
+ (basic_stringstream::view()): New method.
+ * src/Makefile.in: Add c++20 directory.
+ * src/Makefile.am: Regenerate.
+ * src/c++20/Makefile.am: Add makefile for new sub-directory.
+ * src/c++20/Makefile.in: Generate.
+ * src/c++20/sstream-inst.cc: New file defining explicit
+ instantiations for basic_stringbuf, basic_istringstream,
+ basic_ostringstream, and basic_stringstream member functions
+ added in C++20.
+ * testsuite/27_io/basic_stringbuf/cons/char/2.cc: New test.
+ * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
+ * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
+ * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
+ * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
+ * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc: Likewise.
+ * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
+ * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc: Likewise.
+ * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
+ * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc: Likewise.
+ * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
+ * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc: Likewise.
+ * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
+ * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc: Likewise.
+ * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
+ * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc: Likewise.
+
+2020-10-28 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/97613
+ * include/std/chrono (year_month_weekday::operator sys_days):
+ Cast the result of index() to int so that the initializer for
+ days{} is sign-extended when it's converted to the underlying
+ type.
+ * testsuite/std/time/year_month_weekday/3.cc: New test.
+
+2020-10-28 Jonathan Wakely <jwakely@redhat.com>
+
+ * libsupc++/new_opnt.cc (new): Add comment about forced unwind
+ exceptions.
+
+2020-10-28 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/94268
+ * config/os/mingw32-w64/os_defines.h (_GLIBCXX_BUFSIZ):
+ Define.
+ * config/os/mingw32/os_defines.h (_GLIBCXX_BUFSIZ):
+ Define.
+ * include/bits/fstream.tcc: Use _GLIBCXX_BUFSIZ instead
+ of BUFSIZ.
+ * include/ext/stdio_filebuf.h: Likewise.
+ * include/std/fstream (_GLIBCXX_BUFSIZ): Define.
+
+2020-10-28 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/95592
+ * include/bits/valarray_after.h (_DEFINE_EXPR_UNARY_OPERATOR)
+ (_DEFINE_EXPR_BINARY_OPERATOR, _DEFINE_EXPR_BINARY_FUNCTION):
+ Use elaborated-type-specifier and qualified-id to avoid
+ ambiguities with QNX system headers.
+ * testsuite/26_numerics/valarray/95592.cc: New test.
+
+2020-10-28 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/95609
+ * include/std/span (span): Reorder data members to match common
+ implementations of struct iovec.
+ * testsuite/23_containers/span/layout_compat.cc: New test.
+
+2020-10-27 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/functional (std::_Placeholder): Define for C++98
+ as well as later standards.
+ * include/tr1/functional (std::placeholders::_1 etc): Declare
+ for C++98.
+ (tr1::_Placeholder): Replace with using-declaration for
+ std::_Placeholder.
+ (tr1::placeholders::_1 etc.): Replace with using-directive for
+ std::placeholders.
+
+2020-10-27 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/tr1/ell_integral.tcc (__ellint_rf, __ellint_rd)
+ (__ellint_rc, __ellint_rj): Remove unused variables.
+ * include/tr1/modified_bessel_func.tcc (__airy): Likewise.
+
+2020-10-27 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/locale_conv.h (__str_codecvt_out_all):
+ Add cast to compare operands of the same signedness.
+ * include/bits/locale_facets_nonio.tcc
+ (time_get::_M_extract_wday_or_month): Likewise.
+ * include/bits/sstream.tcc (basic_stringbuf::overflow):
+ Likewise.
+ * include/tr1/legendre_function.tcc (__sph_legendre): Use
+ unsigned for loop variable.
+
+2020-10-27 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/charconv (from_chars): Add noexcept to match
+ definitions in src/c++17/floating_from_chars.cc
+
+2020-10-27 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++17/fs_dir.cc (fs::directory_iterator::operator*):
+ Add noexcept. Do not throw on precondition violation.
+
+2020-10-27 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/fs_path.h (path::_List::begin, path::_List::end):
+ Add noexcept to match definitions in src/c++17/fs_path.cc.
+
+2020-10-27 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/experimental/memory_resource/new_delete_resource.cc:
+ Add missing <cstdint> header.
+ * testsuite/experimental/memory_resource/resource_adaptor.cc:
+ Likewise.
+
+2020-10-26 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/experimental/executor (strand::_State): Fix thinko.
+
+2020-10-26 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * include/std/type_traits (__is_nt_constructible_impl): Remove.
+ (__is_nothrow_constructible_impl): Adjust.
+ (is_nothrow_default_constructible): Likewise.
+ (__is_nt_assignable_impl): Remove.
+ (__is_nothrow_assignable_impl): Adjust.
+
+2020-10-26 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97570
+ * libsupc++/new_opa.cc: Declare size_t in global namespace.
+ Remove unused header.
+
+2020-10-26 Stephan Bergmann <sbergman@redhat.com>
+
+ * include/bits/shared_ptr_base.h
+ (_Sp_counted_base::_M_add_ref_lock_nothrow(): Add noexcept to
+ definitions to match declaration.
+ (__shared_count(const __weak_count&, nothrow_t)): Add noexcept
+ to declaration to match definition.
+
+2020-10-23 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/ranges (single_view::single_view): Mark the
+ in place constructor explicit as per LWG 3428.
+ (take_view): Remove the constraint on the deduction guide's
+ template parameter as per LWG 3447.
+
+2020-10-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/experimental/memory_resource: Include <tuple>.
+ (polymorphic_allocator::construct): Qualify forward_as_tuple.
+ * include/std/memory_resource: Likewise.
+
+2020-10-22 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/30_threads/condition_variable/members/68519.cc:
+ Define recent_epoch_float_clock::duration to meet the Cpp17Clock
+ requirements.
+
+2020-10-22 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/shared_mutex: Only include <condition_variable>
+ when pthread_rwlock_t and POSIX timers are not available.
+ (__cpp_lib_shared_mutex, __cpp_lib_shared_timed_mutex): Change
+ value to be type 'long'.
+ * include/std/version (__cpp_lib_shared_mutex)
+ (__cpp_lib_shared_timed_mutex): Likewise.
+
+2020-10-22 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/Makefile.am: Add new header.
+ * include/Makefile.in: Regenerate.
+ * include/bits/shared_ptr.h: Include <iosfwd>.
+ * include/bits/shared_ptr_base.h: Include required headers here
+ directly, instead of in <memory>.
+ * include/bits/uses_allocator_args.h: New file. Move utility
+ functions for uses-allocator construction from <memory> to here.
+ Only define the utility functions when concepts are available.
+ (__cpp_lib_make_obj_using_allocator): Define non-standard
+ feature test macro.
+ * include/std/condition_variable: Remove unused headers.
+ * include/std/future: Likewise.
+ * include/std/memory: Remove headers that are not needed
+ directly, and are now inclkuded where they're needed. Include
+ new <bits/uses_allocator_args.h> header.
+ * include/std/memory_resource: Include only the necessary
+ headers. Use new feature test macro to detect support for the
+ utility functions.
+ * include/std/scoped_allocator: Likewise.
+ * include/std/version (__cpp_lib_make_obj_using_allocator):
+ Define.
+
+2020-10-22 Olivier Hainque <hainque@adacore.com>
+
+ * crossconfig.m4: Turn vxworks matcher into vxworks*.
+ * configure.host: Likewise.
+ * configure: Regenerate.
+
+2020-10-21 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/shared_ptr.h (shared_ptr(const weak_ptr&, nothrow_t)):
+ Add noexcept.
+ * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_add_ref_lock):
+ Remove specializations and just call _M_add_ref_lock_nothrow.
+ (__shared_count, __shared_ptr): Use nullptr for null pointer
+ constants.
+ (__shared_count(const __weak_count&)): Use _M_add_ref_lock_nothrow
+ instead of _M_add_ref_lock.
+ (__shared_count(const __weak_count&, nothrow_t)): Add noexcept.
+ (__shared_ptr::operator bool()): Add noexcept.
+ (__shared_ptr(const __weak_ptr&, nothrow_t)): Add noexcept.
+
+2020-10-21 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97512
+ * include/bits/ranges_util.h (tuple_size<subrange>)
+ (tuple_element<I, cv subrange>): Move here from ...
+ * include/std/ranges: ... here.
+ * testsuite/std/ranges/subrange/97512.cc: New test.
+
+2020-10-21 Thomas Rodgers <trodgers@redhat.com>
+
+ * include/pstl/algorithm_impl.h: Update file.
+ * include/pstl/execution_impl.h: Likewise.
+ * include/pstl/glue_algorithm_impl.h: Likewise.
+ * include/pstl/glue_memory_impl.h: Likewise.
+ * include/pstl/glue_numeric_impl.h: Likewise.
+ * include/pstl/memory_impl.h: Likewise.
+ * include/pstl/numeric_impl.h: Likewise.
+ * include/pstl/parallel_backend.h: Likewise.
+ * include/pstl/parallel_backend_serial.h: Likewise.
+ * include/pstl/parallel_backend_tbb.h: Likewise.
+ * include/pstl/parallel_backend_utils.h: Likewise.
+ * include/pstl/pstl_config.h: Likewise.
+ * include/pstl/unseq_backend_simd.h: Likewise.
+
+2020-10-20 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/hashtable_policy.h
+ (_Hash_node_value_base<>): Remove _Hash_node_base inheritance.
+ (_Hash_node_code_cache<bool _Cache_hash_code>): New.
+ (_Hash_node_value<typename _Value, bool _Cache_hash_code>): New.
+ (_Hash_node<>): Inherits _Hash_node_base<> and _Hash_node_value<>.
+ (_Map_base<>::__node_type): Remove.
+ (_Map_base<>::iterator): Remove.
+ (_Insert_base<>::__hash_cached): New.
+ (_Insert_base<>::__constant_iterators): New.
+ (_Insert_base<>::__hashtable_alloc): New.
+ (_Insert_base<>::__node_type): Remove.
+ (_Insert_base<>::__node_ptr): New.
+ (_Hash_code_base<>): Remove specializations.
+ (_Hash_code_base<>::__node_type): Remove.
+ (_Hash_code_base<>::_M_bucket_index(const __node_type*, size_t)):
+ Replace by...
+ (_Hash_code_base<>::_M_bucket_index(const _Hash_node_value<>&, size_t)):
+ ...this.
+ (_Hash_code_base<>::_M_store_code(__node_type*, __hash_code)):
+ Replace by...
+ (_Hash_code_base<>::_M_store_code(_Hash_node_code_cache<>&, __hash_code)):
+ ...this.
+ (_Hash_code_base<>::_M_copy_code(__node_type*, const __node_type*)):
+ Replace by...
+ (_Hash_code_base<>::_M_copy_code(_Hash_node_code_cache<>&,
+ const _Hash_node_code_base<>&)): ...this.
+ (_Hashtable_base<>::__constant_iterators): Remove.
+ (_Hashtable_base<>::__unique_keys): Remove.
+ (_Hashtable_base<>::__node_type): Remove.
+ (_Hashtable_base<>::iterator): Remove.
+ (_Hashtable_base<>::const_iterator): Remove.
+ (_Hashtable_base<>::local_iterator): Remove.
+ (_Hashtable_base<>::const_local_iterator): Remove.
+ (_Hashtable_base<>::__ireturn_type): Remove.
+ (_Hashtable_base<>::_Equal_hash_code<>::_S_equals): Replace by...
+ (_Hashtable_base<>::_S_equals(__hash_code, const _Hash_node_code_hash<>&)):
+ ...this.
+ (_Hashtable_base<>::_Equal_hash_code<>::_S_node_equals): Replace by...
+ (_Hashtable_base<>::_S_node_equals(__hash_code,
+ const _Hash_node_code_hash<>&)): ...this.
+ (_Hashtable_base<>::_Equal_hash_code<>): Remove.
+ (_Hashtable_base<>::_M_equals): Adapt.
+ (_Hashtable_baxe<>::_M_node_equals): Adapt.
+ (_Equality<>::_M_equal): Adapt.
+ (_Hashtable_alloc<>::__node_ptr): New.
+ (_Hashtable_alloc<>::__bucket_type): Rename into...
+ (_Hashtable_alloc<>::__node_base_ptr): ...this.
+ (_Hashtable_alloc<>::__bucket_alloc_type): Rename into...
+ (_Hashtable_alloc<>::__buckets_alloc_type): ...this.
+ (_Hashtable_alloc<>::__bucket_alloc_traits): Rename into...
+ (_Hashtable_alloc<>::__buckets_alloc_traits): ...this.
+ (_Hashtable_alloc<>::__buckets_ptr): New.
+ (_Hashtable_alloc<>::_M_allocate_node): Adapt.
+ (_Hashtable_alloc<>::_M_deallocate_node): Adapt.
+ (_Hashtable_alloc<>::_M_deallocate_node_ptr): Adapt.
+ (_Hashtable_alloc<>::_M_deallocate_nodes): Adapt.
+ (_Hashtable_alloc<>::_M_allocate_buckets): Adapt.
+ (_Hashtable_alloc<>::_M_deallocate_buckets): Adapt.
+ * include/bits/hashtable.h (_Hashtable<>): Adapt.
+
+2020-10-20 Aldy Hernandez <aldyh@redhat.com>
+
+ * testsuite/21_strings/basic_string/capacity/1.cc: Pass
+ -Wno-stringop-overflow to test.
+
+2020-10-20 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/95917
+ * include/std/coroutine (__noop_coro_frame): Replace with
+ noop_coroutine_handle::__frame.
+ (__dummy_resume_destroy): Define inline in __frame.
+ (__noop_coro_fr): Replace with noop_coroutine_handle::_S_fr
+ and define as inline.
+ * testsuite/18_support/coroutines/95917.cc: New test.
+
+2020-10-20 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/coroutine (coroutine_handle<_Promise>): Remove
+ base class. Add constructors, conversions, accessors etc. as
+ proposed for LWG 3460.
+ (coroutine_handle<noop_coroutine_promise>): Likewise.
+ * testsuite/18_support/coroutines/lwg3460.cc: New test.
+
+2020-10-19 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/unique_ptr.h (make_unique_for_overwrite): Define
+ for C++20.
+ * testsuite/20_util/unique_ptr/creation/array_neg.cc: Remove
+ unused header. Adjust standard reference.
+ * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: New test.
+ * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc: New test.
+
+2020-10-19 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/tuple (_Head_base<Idx, Head, true>): Use reserved
+ form of __no_unique_address__ attribute because
+ no_unique_address is not reserved prior to C++20.
+
+2020-10-19 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/node_handle.h (_Node_handle_common): Replace
+ std::optional with custom type.
+ * testsuite/20_util/variant/exception_safety.cc: Add missing
+ header include.
+
+2020-10-19 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/precompiled/expc++.h: Removed.
+
+2020-10-17 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ PR libstdc++/97449
+ * include/std/variant
+ (__gen_vtable_impl<>::_S_apply_single_alt):
+ Diagnose visitor return type mismatches here..
+ (__gen_vtable_impl</*base case*/>::_S_apply):
+ ..not here.
+
+2020-10-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/concepts: Fix typos in copyright notice.
+ * include/std/ranges: Likewise.
+
+2020-10-14 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97415
+ * include/std/sstream (basic_stringbuf::str()): Check for
+ null egptr() before comparing to non-null pptr().
+
+2020-10-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc:
+ Do not generate debug info.
+ * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc:
+ Likewise.
+
+2020-10-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/basic_string.h (basic_string(const Alloc&))
+ (basic_string(const basic_string&)
+ (basic_string(const CharT*, size_type, const Alloc&))
+ (basic_string(const CharT*, const Alloc&))
+ (basic_string(size_type, CharT, const Alloc&))
+ (basic_string(initializer_list<CharT>, const Alloc&))
+ (basic_string(InputIterator, InputIterator, const Alloc&)):
+ Define inline in class body.
+ * include/bits/basic_string.tcc (basic_string(const Alloc&))
+ (basic_string(const basic_string&)
+ (basic_string(const CharT*, size_type, const Alloc&))
+ (basic_string(const CharT*, const Alloc&))
+ (basic_string(size_type, CharT, const Alloc&))
+ (basic_string(initializer_list<CharT>, const Alloc&))
+ (basic_string(InputIterator, InputIterator, const Alloc&)):
+ Move definitions into class body.
+
+2020-10-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/lib/libstdc++.exp (check_effective_target_cxx11-abi):
+ Add comments about which test flags get used by the check.
+
+2020-10-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/21_strings/basic_string/allocator/char/copy.cc: Make
+ comment more precise about what isn't supported by COW strings.
+ * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/char/move.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/char/operator_plus.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/char/swap.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
+ Likewise.
+
+2020-10-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/21_strings/basic_string/allocator/char/minimal.cc:
+ Do not require cxx11-abi effective target.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
+ Likewise.
+ * testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
+
+2020-10-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
+ (basic_string(const _CharT*, const _Alloc&)): Constrain to
+ require an allocator-like type to fix CTAD ambiguity (LWG 3706).
+ * testsuite/21_strings/basic_string/cons/char/deduction.cc:
+ Remove dg-skip-if.
+ * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
+ Likewise.
+
+2020-10-13 Nuno Lopes <nuno.lopes@ist.utl.pt>
+
+ * include/bits/stl_algo.h (any_of): Fix incorrect description
+ in comment.
+
+2020-10-13 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/manual/evolution.xml: Document some API changes
+ and deprecations.
+ * doc/xml/manual/intro.xml: Document LWG 2499.
+ * doc/xml/manual/status_cxx2020.xml: Update status.
+ * doc/html/*: Regenerate.
+
+2020-10-13 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/book.txml: Remove trailing whitespace.
+ * doc/xml/chapter.txml: Likewise.
+ * doc/xml/class.txml: Likewise.
+ * doc/xml/gnu/fdl-1.3.xml: Likewise.
+ * doc/xml/gnu/gpl-3.0.xml: Likewise.
+ * doc/xml/manual/abi.xml: Likewise.
+ * doc/xml/manual/algorithms.xml: Likewise.
+ * doc/xml/manual/allocator.xml: Likewise.
+ * doc/xml/manual/appendix_contributing.xml: Likewise.
+ * doc/xml/manual/appendix_free.xml: Likewise.
+ * doc/xml/manual/appendix_porting.xml: Likewise.
+ * doc/xml/manual/atomics.xml: Likewise.
+ * doc/xml/manual/auto_ptr.xml: Likewise.
+ * doc/xml/manual/backwards_compatibility.xml: Likewise.
+ * doc/xml/manual/bitmap_allocator.xml: Likewise.
+ * doc/xml/manual/build_hacking.xml: Likewise.
+ * doc/xml/manual/codecvt.xml: Likewise.
+ * doc/xml/manual/concurrency.xml: Likewise.
+ * doc/xml/manual/concurrency_extensions.xml: Likewise.
+ * doc/xml/manual/configure.xml: Likewise.
+ * doc/xml/manual/containers.xml: Likewise.
+ * doc/xml/manual/ctype.xml: Likewise.
+ * doc/xml/manual/debug.xml: Likewise.
+ * doc/xml/manual/debug_mode.xml: Likewise.
+ * doc/xml/manual/diagnostics.xml: Likewise.
+ * doc/xml/manual/documentation_hacking.xml: Likewise.
+ * doc/xml/manual/evolution.xml: Likewise.
+ * doc/xml/manual/internals.xml: Likewise.
+ * doc/xml/manual/intro.xml: Likewise.
+ * doc/xml/manual/io.xml: Likewise.
+ * doc/xml/manual/iterators.xml: Likewise.
+ * doc/xml/manual/locale.xml: Likewise.
+ * doc/xml/manual/localization.xml: Likewise.
+ * doc/xml/manual/messages.xml: Likewise.
+ * doc/xml/manual/mt_allocator.xml: Likewise.
+ * doc/xml/manual/numerics.xml: Likewise.
+ * doc/xml/manual/parallel_mode.xml: Likewise.
+ * doc/xml/manual/policy_data_structures.xml: Likewise.
+ * doc/xml/manual/prerequisites.xml: Likewise.
+ * doc/xml/manual/shared_ptr.xml: Likewise.
+ * doc/xml/manual/spine.xml: Likewise.
+ * doc/xml/manual/status_cxxtr1.xml: Likewise.
+ * doc/xml/manual/status_cxxtr24733.xml: Likewise.
+ * doc/xml/manual/strings.xml: Likewise.
+ * doc/xml/manual/support.xml: Likewise.
+ * doc/xml/manual/test.xml: Likewise.
+ * doc/xml/manual/test_policy_data_structures.xml: Likewise.
+ * doc/xml/manual/using.xml: Likewise.
+ * doc/xml/manual/using_exceptions.xml: Likewise.
+ * doc/xml/manual/utilities.xml: Likewise.
+ * doc/html/*: Regenerate.
+
+2020-10-12 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/ranges (take_while_view::begin): Constrain the
+ const overload further as per LWG 3450.
+ (take_while_view::end): Likewise.
+ * testsuite/std/ranges/adaptors/take_while.cc: Add test for LWG
+ 3450.
+
+2020-10-12 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/95322
+ * include/std/ranges (take_view::_CI): Define this alias
+ template as per LWG 3449 and remove ...
+ (take_view::_Sentinel::_CI): ... this type alias.
+ (take_view::_Sentinel::operator==): Adjust use of _CI
+ accordingly. Define a second overload that accepts an iterator
+ of the opposite constness as per LWG 3449.
+ (take_while_view::_Sentinel::operator==): Likewise.
+ * testsuite/std/ranges/adaptors/95322.cc: Add tests for LWG 3449.
+
+2020-10-12 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/doxygen/user.cfg.in: Update to Doxygen 1.8.20 format.
+
+2020-10-12 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/doxygen/user.cfg.in (PREDEFINED): Use __cplusplus=201703L
+ so that C++17 features are documented.
+
+2020-10-12 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_algobase.h (copy, move, copy_backward)
+ (move_backward): Fix documentation for returned iterator.
+
+2020-10-12 Martin Sebor <msebor@redhat.com>
+
+ PR c++/97201
+ * libsupc++/new (operator new): Add attribute alloc_size and malloc.
+
+2020-10-11 Clement Chigot <clement.chigot@atos.net>
+
+ * config/os/aix/t-aix: Add complementary mode object file to
+ libstdc++fs.a
+
+2020-10-10 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97362
+ * doc/html/manual/source_code_style.html: Regenerate.
+ * doc/xml/manual/appendix_contributing.xml: Add __deref to
+ BADNAMES.
+ * include/debug/functions.h (_Irreflexive_checker::__deref):
+ Rename to __ref.
+ * testsuite/17_intro/badnames.cc: Check __deref.
+
+2020-10-10 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ * include/std/variant (__check_visitor_result):
+ Use size_t for indexes.
+ (__check_visitor_results): Likewise.
+
+2020-10-09 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ PR libstdc++/95904
+ * include/std/variant (__deduce_visit_result): Add a nested ::type.
+ (__gen_vtable_impl</*base case*/>::_S_apply):
+ Check the visitor return type.
+ (__same_types): New.
+ (__check_visitor_result): Likewise.
+ (__check_visitor_results): Likewise.
+ (visit(_Visitor&&, _Variants&&...)): Use __check_visitor_results
+ in case we're visiting just one variant.
+ * testsuite/20_util/variant/visit_neg.cc: Adjust.
+
+2020-10-09 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97311
+ * include/bits/random.tcc (seed_seq::generate): Use uint32_t for
+ calculations. Also split the first loop into three loops to
+ avoid branching on k on every iteration, resolving PR 94823.
+ * testsuite/26_numerics/random/seed_seq/97311.cc: New test.
+ * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-erro
+ line number.
+
+2020-10-09 Daniel Lemire <lemire@gmail.com>
+
+ * include/bits/uniform_int_dist.h (uniform_int_distribution::_S_nd):
+ New member function implementing Lemire's "nearly divisionless"
+ algorithm.
+ (uniform_int_distribution::operator()): Use _S_nd when the range
+ of the URBG is the full width of the result type.
+
+2020-10-09 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/Makefile.am: Set and export variable separately.
+ * testsuite/Makefile.in: Regenerate.
+
+2020-10-09 Jonathan Wakely <jwakely@redhat.com>
+
+ * scripts/check_performance: Use gnu++11 instead of gnu++0x.
+ * testsuite/Makefile.am (check-performance): Export CXXFLAGS to
+ child process.
+ * testsuite/Makefile.in: Regenerate.
+
+2020-10-09 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/performance/26_numerics/random_dist.cc: New test.
+
+2020-10-09 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/util/testsuite_performance.h (report_header): Remove
+ unused variable.
+
+2020-10-08 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/95788
+ * include/bits/ranges_uninitialized.h:
+ (__construct_at_fn::operator()): Rewrite in terms of
+ std::construct_at. Declare it conditionally noexcept. Qualify
+ calls to declval in its requires-clause.
+ * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
+ New test.
+
+2020-10-08 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/82584
+ * include/bits/random.tcc
+ (discrete_distribution::param_type::_M_initialize)
+ (piecewise_constant_distribution::param_type::_M_initialize)
+ (piecewise_linear_distribution::param_type::_M_initialize):
+ Add assertions for positive sums..
+ * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
+ line.
+
+2020-10-08 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/ios_base.h (ios_base::failure): Add constructors
+ takeing error_code argument. Add code() member function.
+ * testsuite/27_io/ios_base/failure/cxx11.cc: Allow test to
+ run for the old ABI but do not check for derivation from
+ std::system_error.
+ * testsuite/27_io/ios_base/failure/error_code.cc: New test.
+
+2020-10-08 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/random.h (__detail::_Mod): Revert last change.
+ (__detail::__mod): Do not use _Mod for a==0 case.
+ * testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc:
+ Check other cases with a==0. Also check runtime results.
+ * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
+ line.
+
+2020-10-07 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/random.h (__detail::_Mod): Avoid divide by zero.
+ * testsuite/26_numerics/random/linear_congruential_engine/operators/call.cc:
+ New test.
+
+2020-10-07 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/random.h (seed_seq(initializer_list<T>)): Rename
+ parameter to use reserved name.
+ * include/bits/ranges_algo.h (shift_left, shift_right): Rename
+ template parameters to use reserved name.
+ * libsupc++/exception_ptr.h (exception_ptr): Likewise for
+ parameters and local variables.
+ * testsuite/17_intro/names.cc: Check "il". Do not check "d" and
+ "y" in C++20 mode.
+
+2020-10-06 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/90295
+ * config/abi/pre/gnu.ver (CXXABI_1.3.13): New symbol version.
+ (exception_ptr::_M_addref(), exception_ptr::_M_release()):
+ Export symbols.
+ * libsupc++/eh_ptr.cc (exception_ptr::exception_ptr()):
+ Remove out-of-line definition.
+ (exception_ptr::exception_ptr(const exception_ptr&)):
+ Likewise.
+ (exception_ptr::~exception_ptr()): Likewise.
+ (exception_ptr::operator=(const exception_ptr&)):
+ Likewise.
+ (exception_ptr::swap(exception_ptr&)): Likewise.
+ (exception_ptr::_M_addref()): Add branch prediction.
+ * libsupc++/exception_ptr.h (exception_ptr::operator bool):
+ Add noexcept.
+ [!_GLIBCXX_EH_PTR_COMPAT] (operator==, operator!=): Define
+ inline as hidden friends. Remove declarations at namespace
+ scope.
+ (exception_ptr::exception_ptr()): Define inline.
+ (exception_ptr::exception_ptr(const exception_ptr&)):
+ Likewise.
+ (exception_ptr::~exception_ptr()): Likewise.
+ (exception_ptr::operator=(const exception_ptr&)):
+ Likewise.
+ (exception_ptr::swap(exception_ptr&)): Likewise.
+ * testsuite/util/testsuite_abi.cc: Add CXXABI_1.3.13.
+ * testsuite/18_support/exception_ptr/90295.cc: New test.
+
+2020-10-06 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/ranges (join_view): Remove deduction guide.
+ (views::join): Add explicit template argument list to prevent
+ deducing the wrong type.
+ * testsuite/std/ranges/adaptors/join.cc: Move test for LWG 3474
+ here, from ...
+ * testsuite/std/ranges/adaptors/join_lwg3474.cc: Removed.
+
+2020-10-05 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/regex.h: Use __int_traits<int> instead of
+ std::numeric_limits<int>.
+ * include/bits/uniform_int_dist.h: Use __int_traits<T>::__max
+ instead of std::numeric_limits<T>::max().
+ * include/bits/hashtable_policy.h: Use size_t(-1) instead of
+ std::numeric_limits<size_t>::max().
+ * include/std/regex: Include <ext/numeric_traits.h>.
+ * include/std/string_view: Use typedef for __int_traits<int>.
+ * src/c++11/hashtable_c++0x.cc: Use size_t(-1) instead of
+ std::numeric_limits<size_t>::max().
+ * testsuite/std/ranges/iota/96042.cc: Include <limits>.
+ * testsuite/std/ranges/iota/difference_type.cc: Likewise.
+ * testsuite/std/ranges/subrange/96042.cc: Likewise.
+
+2020-10-05 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/numeric: Move all #include directives to the top
+ of the header.
+ * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
+ numbers.
+ * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
+
+2020-10-05 Jonathan Wakely <jwakely@redhat.com>
+
+ * config/abi/pre/gnu.ver: Add new symbol.
+ * include/bits/functexcept.h (__throw_bad_array_new_length):
+ Declare new function.
+ * include/ext/malloc_allocator.h (malloc_allocator::allocate):
+ Throw bad_array_new_length for impossible sizes (LWG 3190).
+ * include/ext/new_allocator.h (new_allocator::allocate):
+ Likewise.
+ * include/std/memory_resource (polymorphic_allocator::allocate)
+ (polymorphic_allocator::allocate_object): Use new function,
+ __throw_bad_array_new_length.
+ * src/c++11/functexcept.cc (__throw_bad_array_new_length):
+ Define.
+ * testsuite/20_util/allocator/lwg3190.cc: New test.
+
+2020-10-05 Mike Crowe <mac@mcrowe.com>
+
+ PR libstdc++/91486
+ * include/bits/atomic_futex.h:
+ (__atomic_futex_unsigned::_M_load_when_equal_until): Use target
+ clock duration type when rounding.
+ * testsuite/30_threads/async/async.cc (test_pr91486_wait_for):
+ Rename from test_pr91486.
+ (float_steady_clock): New class for test.
+ (test_pr91486_wait_until): New test.
+
+2020-10-05 Mike Crowe <mac@mcrowe.com>
+
+ * testsuite/20_util/duration_cast/rounding_c++11.cc: Copy
+ rounding.cc and alter to support compilation for C++11 and to
+ test std::chrono::__detail::ceil.
+
+2020-10-02 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/29_atomics/atomic_float/value_init.cc: Use float
+ instead of double so that __atomic_load_8 isn't needed.
+
+2020-10-02 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/18_support/96817.cc: Use terminate handler that
+ calls _Exit(0).
+
+2020-10-02 Patrick Palka <ppalka@redhat.com>
+
+ * include/bits/stl_iterator.h (reverse_iterator::iter_move):
+ Define for C++20 as per P0896.
+ (reverse_iterator::iter_swap): Likewise.
+ (move_iterator::operator*): Apply P0896 changes for C++20.
+ (move_iterator::operator[]): Likewise.
+ * testsuite/24_iterators/reverse_iterator/cust.cc: New test.
+
+2020-10-01 Jonathan Wakely <jwakely@redhat.com>
+
+ * config/cpu/arm/cxxabi_tweaks.h (_GLIBCXX_GUARD_TEST_AND_ACQUIRE):
+ Do not try to dereference return value of __atomic_load_n.
+
+2020-09-30 Jonathan Wakely <jwakely@redhat.com>
+
+ * config/cpu/arm/cxxabi_tweaks.h (_GLIBCXX_GUARD_TEST_AND_ACQUIRE):
+ (_GLIBCXX_GUARD_SET_AND_RELEASE): Define for EABI.
+
+2020-09-30 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
+ Define for GCC 11 or when !__is_identifier(__is_same).
+ (_GLIBCXX_BUILTIN_IS_SAME_AS): Remove.
+ * include/std/type_traits (is_same, is_same_v): Replace uses
+ of _GLIBCXX_BUILTIN_IS_SAME_AS.
+
+2020-09-28 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/ranges (filter_view): Declare the data member
+ _M_base last instead of first, and adjust constructors' member
+ initializer lists accordingly.
+ (transform_view): Likewise.
+ (take_view): Likewise.
+ (take_while_view): Likewise.
+ (drop_view): Likewise.
+ (drop_while_view): Likewise.
+ (join_view): Likewise.
+ (split_view): Likewise (and tweak nearby formatting).
+ (reverse_view): Likewise.
+ * testsuite/std/ranges/adaptors/sizeof.cc: Update expected
+ sizes.
+
+2020-09-28 Patrick Palka <ppalka@redhat.com>
+
+ * testsuite/std/ranges/adaptors/sizeof.cc: New test.
+
+2020-09-28 Patrick Palka <ppalka@redhat.com>
+
+ * include/bits/ranges_util.h (subrange::_M_end): Give it
+ [[no_unique_address]].
+ * testsuite/std/ranges/subrange/sizeof.cc: New test.
+
+2020-09-28 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/ranges (iota_view::_M_bound): Give it
+ [[no_unique_address]].
+ * testsuite/std/ranges/iota/iota_view.cc: Check that an
+ unbounded iota_view has minimal size.
+
+2020-09-27 Clement Chigot <clement.chigot@atos.net>
+
+ * config/os/aix/t-aix: Use $(AR) without -X32_64.
+
+2020-09-26 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96817
+ * include/ext/atomicity.h (__gnu_cxx::__is_single_threaded()):
+ New function wrapping __libc_single_threaded if available.
+ (__exchange_and_add_dispatch, __atomic_add_dispatch): Use it.
+ * libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_abort)
+ (__cxa_guard_release): Likewise.
+ * testsuite/18_support/96817.cc: New test.
+
+2020-09-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * libsupc++/Makefile.am: Remove redundant -std=gnu++1z flags.
+ * libsupc++/Makefile.in: Regenerate.
+
+2020-09-24 Antony Polukhin <antoshkka@gmail.com>
+
+ PR libstdc++/71579
+ * include/std/type_traits (invoke_result, is_invocable)
+ (is_invocable_r, is_nothrow_invocable, is_nothrow_invocable_r):
+ Add static_asserts to make sure that the arguments of the type
+ traits are not misused with incomplete types.
+ * testsuite/20_util/invoke_result/incomplete_args_neg.cc: New test.
+ * testsuite/20_util/is_invocable/incomplete_args_neg.cc: New test.
+ * testsuite/20_util/is_invocable/incomplete_neg.cc: New test.
+ * testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc:
+ New test.
+ * testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc: Check
+ for error on incomplete type usage in trait.
+
+2020-09-24 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/ranges (__detail::__boxable): Split out the
+ associated constraints of __box into here.
+ (__detail::__box): Use the __boxable concept. Define a leaner
+ partial specialization for semiregular types.
+ (single_view::_M_value): Give it [[no_unique_address]].
+ (filter_view::_M_pred): Likewise.
+ (transform_view::_M_fun): Likewise.
+ (take_while_view::_M_pred): Likewise.
+ (drop_while_view::_M_pred):: Likewise.
+ * testsuite/std/ranges/adaptors/detail/semiregular_box.cc: New
+ test.
+
+2020-09-24 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/manual/configure.xml: Correct name of option.
+ * doc/html/*: Regenerate.
+
+2020-09-22 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97167
+ * src/c++17/fs_path.cc (path::_Parser::root_path()): Check
+ for empty string before inspecting the first character.
+ * testsuite/27_io/filesystem/path/append/source.cc: Append
+ empty string_view to path.
+
+2020-09-22 Glen Joseph Fernandes <glenjofe@gmail.com>
+
+ * include/bits/align.h (align): Fix overflow handling.
+ * testsuite/20_util/align/3.cc: New test.
+
+2020-09-22 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/Makefile.am: Add new headers and adjust for renamed
+ header.
+ * include/Makefile.in: Regenerate.
+ * include/bits/iterator_concepts.h: Adjust for renamed header.
+ * include/bits/range_access.h (ranges::*): Move to new
+ <bits/ranges_base.h> header.
+ * include/bits/ranges_algobase.h: Include new <bits/ranges_base.h>
+ header instead of <ranges>.
+ * include/bits/ranges_algo.h: Include new <bits/ranges_util.h>
+ header.
+ * include/bits/range_cmp.h: Moved to...
+ * include/bits/ranges_cmp.h: ...here.
+ * include/bits/ranges_base.h: New header.
+ * include/bits/ranges_util.h: New header.
+ * include/experimental/string_view: Include new
+ <bits/ranges_base.h> header.
+ * include/std/functional: Adjust for renamed header.
+ * include/std/ranges (ranges::view_base, ranges::enable_view)
+ (ranges::dangling, ranges::borrowed_iterator_t): Move to new
+ <bits/ranges_base.h> header.
+ (ranges::view_interface, ranges::subrange)
+ (ranges::borrowed_subrange_t): Move to new <bits/ranges_util.h>
+ header.
+ * include/std/span: Include new <bits/ranges_base.h> header.
+ * include/std/string_view: Likewise.
+ * testsuite/24_iterators/back_insert_iterator/pr93884.cc: Add
+ missing <ranges> header.
+ * testsuite/24_iterators/front_insert_iterator/pr93884.cc:
+ Likewise.
+
+2020-09-22 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96803
+ * include/std/tuple
+ (_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)):
+ Use correct value category in __use_alloc call.
+ * testsuite/20_util/tuple/cons/96803.cc: Check with constructors
+ that require correct value category to be used.
+
+2020-09-22 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/span (span::front): Remove static_assert.
+ (span::back): Likewise.
+ (span::operator[]): Likewise.
+ * testsuite/23_containers/span/back_neg.cc: Rewrite to verify
+ that we check the preconditions of back() only when it's called.
+ * testsuite/23_containers/span/front_neg.cc: Likewise for
+ front().
+ * testsuite/23_containers/span/index_op_neg.cc: Likewise for
+ operator[].
+
+2020-09-22 Patrick Palka <ppalka@redhat.com>
+
+ * include/bits/stl_algo.h (__sample): Exit early when the
+ input range is empty.
+ * testsuite/25_algorithms/sample/3.cc: New test.
+
+2020-09-22 Patrick Palka <ppalka@redhat.com>
+
+ * include/bits/stl_algo.h (for_each_n): Mark constexpr for C++20.
+ (search): Likewise for the overload that takes a searcher.
+ * testsuite/25_algorithms/for_each/constexpr.cc: Test constexpr
+ std::for_each_n.
+ * testsuite/25_algorithms/search/constexpr.cc: Test constexpr
+ std::search overload that takes a searcher.
+
+2020-09-21 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/c++config (__replacement_assert): Add noreturn
+ attribute.
+ (__glibcxx_assert_impl): Use __builtin_expect to hint that the
+ assertion is expected to pass.
+
+2020-09-21 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/ranges (drop_view::begin()): Adjust constraints
+ to match the correct condition for O(1) ranges::next (LWG 3482).
+ * testsuite/std/ranges/adaptors/drop.cc: Check that iterator is
+ cached for non-sized_range.
+
+2020-09-21 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/ranges (transform_view, elements_view): Relax
+ constraints on operator- for iterators, as per LWG 3483.
+ * testsuite/std/ranges/adaptors/elements.cc: Check that we
+ can take the difference of two iterators from a non-random
+ access range.
+ * testsuite/std/ranges/adaptors/transform.cc: Likewise.
+
+2020-09-21 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97132
+ * include/bits/align.h (align) [!_GLIBCXX_USE_C99_STDINT_TR1]:
+ Remove unused code.
+ (assume_aligned): Do not use __builtin_assume_aligned during
+ constant evaluation.
+ * testsuite/20_util/assume_aligned/1.cc: Improve test.
+ * testsuite/20_util/assume_aligned/97132.cc: New test.
+
+2020-09-20 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/97101
+ * include/std/functional (bind_front): Fix order of parameters
+ in is_nothrow_constructible_v specialization.
+ * testsuite/20_util/function_objects/bind_front/97101.cc: New test.
+
+2020-09-11 Thomas Rodgers <trodgers@redhat.com>
+
+ * include/std/memory: Move #include <bits/align.h> inside C++11
+ conditional includes.
+
+2020-09-11 Thomas Rodgers <trodgers@redhat.com>
+
+ * include/Makefile.am (bits_headers): Add new header.
+ * include/Makefile.in: Regenerate.
+ * include/bits/align.h: New file.
+ * include/std/memory (align): Move definition to bits/align.h.
+ (assume_aligned): Likewise.
+
+2020-09-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/chrono [C++17] (chrono::__detail::ceil): Add
+ using declaration to make chrono::ceil available for internal
+ use with a consistent name.
+ (chrono::__detail::__ceil_impl): New function template.
+ (chrono::__detail::ceil): Use __ceil_impl to compare and
+ increment the value. Remove SFINAE constraint.
+
+2020-09-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/regex_error.h (__throw_regex_error): Fix
+ parameter declaration and use reserved attribute names.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ * include/std/condition_variable (condition_variable::wait_until):
+ Convert delta to steady_clock duration before adding to current
+ steady_clock time to avoid rounding errors described in PR68519.
+ (condition_variable::wait_for): Simplify calculation of absolute
+ time by using chrono::__detail::ceil in both overloads.
+ * testsuite/30_threads/condition_variable/members/68519.cc:
+ (test_wait_for): Renamed from test01. Replace unassigned val
+ variable with constant false. Reduce scope of mx and cv
+ variables to just test_wait_for function.
+ (test_wait_until): Add new test case.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ PR libstdc++/91486
+ * include/bits/atomic_futex.h
+ (__atomic_futex_unsigned::_M_load_when_equal_for)
+ (__atomic_futex_unsigned::_M_load_when_equal_until): Use
+ __detail::ceil to convert delta to the reference clock
+ duration type to avoid resolution problems.
+ * include/std/chrono (__detail::ceil): Move implementation
+ of std::chrono::ceil into private namespace so that it's
+ available to pre-C++17 code.
+ * testsuite/30_threads/async/async.cc (test_pr91486):
+ Test __atomic_futex_unsigned::_M_load_when_equal_for.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ * include/bits/atomic_futex.h
+ (__atomic_futex_unsigned::_M_load_when_equal_until): Add
+ loop on generic _Clock to check the timeout against _Clock
+ again after _M_load_when_equal_until returns indicating a
+ timeout.
+ * testsuite/30_threads/async/async.cc: Invent slow_clock
+ that runs at an eleventh of steady_clock's speed. Use it
+ to test the user-supplied-clock variant of
+ __atomic_futex_unsigned::_M_load_when_equal_until works
+ generally with test03 and loops correctly when the timeout
+ time hasn't been reached in test04.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ PR libstdc++/93542
+ * include/bits/atomic_futex.h (__atomic_futex_unsigned): Change
+ __clock_t typedef to use steady_clock so that unknown clocks are
+ synced to it rather than system_clock. Change existing __clock_t
+ overloads of _M_load_and_text_until_impl and
+ _M_load_when_equal_until to use system_clock explicitly. Remove
+ comment about DR 887 since these changes address that problem as
+ best as we currently able.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ PR libstdc++/93542
+ * config/abi/pre/gnu.ver: Update for addition of
+ __atomic_futex_unsigned_base::_M_futex_wait_until_steady.
+ * include/bits/atomic_futex.h (__atomic_futex_unsigned_base):
+ Add comments to clarify that _M_futex_wait_until and
+ _M_load_and_test_until use CLOCK_REALTIME.
+ (__atomic_futex_unsigned_base::_M_futex_wait_until_steady)
+ (__atomic_futex_unsigned_base::_M_load_and_text_until_steady):
+ New member functions that use CLOCK_MONOTONIC.
+ (__atomic_futex_unsigned_base::_M_load_and_test_until_impl)
+ (__atomic_futex_unsigned_base::_M_load_when_equal_until): Add
+ overloads that accept a steady_clock time_point and use the
+ new member functions.
+ * src/c++11/futex.cc: Include headers required for
+ clock_gettime.
+ (futex_clock_monotonic_flag): New constant to tell futex to
+ use CLOCK_MONOTONIC to match existing futex_clock_realtime_flag.
+ (futex_clock_monotonic_unavailable): New global to store the
+ result of trying to use CLOCK_MONOTONIC.
+ (__atomic_futex_unsigned_base::_M_futex_wait_until_steady): Add
+ new variant of _M_futex_wait_until that uses CLOCK_MONOTONIC to
+ support waiting using steady_clock.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ * src/c++11/futex.cc: Add new constants for required futex
+ flags. Add futex_clock_realtime_unavailable flag to store
+ result of trying to use FUTEX_CLOCK_REALTIME.
+ (__atomic_futex_unsigned_base::_M_futex_wait_until): Try to
+ use FUTEX_WAIT_BITSET with FUTEX_CLOCK_REALTIME and only
+ fall back to using gettimeofday and FUTEX_WAIT if that's not
+ supported.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ * testsuite/30_threads/async/async.cc (test02): Test steady_clock
+ with std::future::wait_until.
+ (test03): Add new test templated on clock type waiting for future
+ associated with async to resolve.
+ (main): Call test03 to test both system_clock and steady_clock.
+
+2020-09-11 Torbjörn SVENSSON <torbjorn.svensson@st.com>
+ Christophe Lyon <christophe.lyon@linaro.org>
+
+ * libsupc++/eh_call.cc: Avoid warning with -fno-exceptions.
+
+2020-09-11 Torbjörn SVENSSON <torbjorn.svensson@st.com>
+ Christophe Lyon <christophe.lyon@linaro.org>
+
+ * libsupc++/eh_call.cc: Avoid warning with -fno-exceptions.
+
+2020-09-11 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * include/bits/regex_error.h: Avoid warning with -fno-exceptions.
+
+2020-09-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/locale_conv.h (__do_str_codecvt, __str_codecvt_in_all):
+ Add casts to compare types of the same signedness.
+
+2020-09-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/ranges_algobase.h (__equal_fn): Remove unused
+ typedef.
+
+2020-09-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/version (__cpp_lib_array_constexpr):
+ (__cpp_lib_constexpr_char_traits): Only define C++17 value when
+ compiling C++17.
+
+2020-09-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/experimental/bits/shared_ptr.h (shared_ptr(auto_ptr&&))
+ (operator=(auto_ptr&&)): Add diagnostic pragmas to suppress
+ warnings for uses of std::auto_ptr.
+ * include/experimental/type_traits (is_literal_type_v):
+ Likewise, for use of std::is_literal_type.
+ * include/std/condition_variable (condition_variable_any::_Unlock):
+ Likewise, for use of std::uncaught_exception.
+
+2020-09-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/fs_path.h (path::_List::type()): Avoid narrowing
+ conversion.
+ * include/std/chrono (operator+(const year&, const years&)):
+ Likewise.
+
+2020-09-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/codecvt.h (codecvt_byname): Remove names of
+ unused parameters.
+
+2020-09-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/locale_facets_nonio.tcc: Adjust whitespace.
+
+2020-09-10 Krystian Kuźniarek <krystian.kuzniarek@gmail.com>
+
+ * include/c_global/cmath (__lerp): Avoid -Wparentheses warnings.
+
+2020-09-10 Krystian Kuźniarek <krystian.kuzniarek@gmail.com>
+
+ * include/bits/atomic_base.h: Fix -Wunused-variable
+ warnings.
+ * include/ext/new_allocator.h: Fix -Wunused-parameter
+ warnings.
+
+2020-09-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_iterator.h (counted_iterator): Add assertions
+ to check preconditions added by LWG 3472.
+
+2020-09-10 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/94160
+ * src/c++17/memory_resource.cc (munge_options): Round
+ max_blocks_per_chunk to a multiple of four.
+ (__pool_resource::_M_alloc_pools()): Simplify slightly.
+ * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
+ Check that valid pointers are returned when small values are
+ used for max_blocks_per_chunk.
+
+2020-09-10 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96942
+ * include/std/memory_resource (monotonic_buffer_resource::do_allocate):
+ Use __builtin_expect when checking if a new buffer needs to be
+ allocated from the upstream resource, and for checks for edge
+ cases like zero sized buffers and allocations.
+ * src/c++17/memory_resource.cc (aligned_size): New class template.
+ (aligned_ceil): New helper function to round up to a given
+ alignment.
+ (monotonic_buffer_resource::chunk): Replace _M_size and _M_align
+ with an aligned_size member. Remove _M_canary member. Change _M_next
+ to pointer instead of unaligned buffer.
+ (monotonic_buffer_resource::chunk::allocate): Round up to multiple
+ of 64 instead of to power of two. Check for size overflow. Remove
+ redundant check for minimum required alignment.
+ (monotonic_buffer_resource::chunk::release): Adjust for changes
+ to data members.
+ (monotonic_buffer_resource::_M_new_buffer): Use aligned_ceil.
+ (big_block): Replace _M_size and _M_align with aligned_size
+ member.
+ (big_block::big_block): Check for size overflow.
+ (big_block::size, big_block::align): Adjust to use aligned_size.
+ (big_block::alloc_size): Use aligned_ceil.
+ (munge_options): Use aligned_ceil.
+ (__pool_resource::allocate): Use big_block::align for alignment.
+ * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Check
+ upstream resource gets expected values for impossible sizes.
+ * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
+ Likewise. Adjust checks for expected alignment in existing test.
+
+2020-09-07 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/chrono (duration::_S_gcd): Use invariant that
+ neither value is zero initially.
+
+2020-09-07 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/ranges (__box): Simplify constraints as per LWG 3477.
+
+2020-09-03 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96592
+ * include/std/tuple (_TupleConstraints<true, T...>): Use
+ alternative is_constructible instead of std::is_constructible.
+ * testsuite/20_util/tuple/cons/96592.cc: New test.
+
+2020-09-03 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/chrono (duration::_S_gcd): Use iterative algorithm
+ for C++14 and later.
+ * include/std/numeric (__detail::__gcd): Replace recursive
+ Euclidean algorithm with iterative version of binary GCD algorithm.
+ * testsuite/26_numerics/gcd/1.cc: Test additional inputs.
+ * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
+ * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
+ * testsuite/experimental/numeric/gcd.cc: Test additional inputs.
+ * testsuite/26_numerics/gcd/2.cc: New test.
+
+2020-09-02 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/92978
+ * testsuite/experimental/numeric/92978.cc: Use experimental::lcm
+ not std::lcm.
+
+2020-09-02 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96851
+ * include/bits/cpp_type_traits.h (__is_memcmp_ordered):
+ New trait that says if memcmp can be used for ordering.
+ (__is_memcmp_ordered_with): Likewise, for two types.
+ * include/bits/deque.tcc (__lex_cmp_dit): Use new traits
+ instead of __is_byte and __numeric_traits.
+ (__lexicographical_compare_aux1): Likewise.
+ * include/bits/ranges_algo.h (__lexicographical_compare_fn):
+ Likewise.
+ * include/bits/stl_algobase.h (__lexicographical_compare_aux1)
+ (__is_byte_iter): Likewise.
+ * include/std/array (operator<=>): Likewise. Only use memcmp
+ when std::is_constant_evaluated() is false.
+ * testsuite/23_containers/array/comparison_operators/96851.cc:
+ New test.
+ * testsuite/23_containers/array/tuple_interface/get_neg.cc:
+ Adjust dg-error line numbers.
+
+2020-09-02 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_iterator.h: Include <bits/exception_defines.h>
+ for definitions of __try, __catch and __throw_exception_again.
+ (counted_iterator::operator++(int)): Use __throw_exception_again
+ instead of throw.
+ * libsupc++/new: Include <bits/exception.h> not <exception>.
+ * libsupc++/new_opvnt.cc: Include <bits/exception_defines.h>.
+ * testsuite/18_support/destroying_delete.cc: Include
+ <type_traits> for std::is_same_v definition.
+ * testsuite/20_util/variant/index_type.cc: Qualify size_t.
+
+2020-09-01 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/71960
+ * include/bits/c++config (__glibcxx_assert_impl): Remove
+ do-while so that uses of the macro need to add it.
+ (__glibcxx_assert): Rename macro for runtime assertions
+ to __glibcxx_assert_2.
+ (__glibcxx_assert_1): Define macro for constexpr assertions.
+ (__glibcxx_assert): Define macro for constexpr and runtime
+ assertions.
+ * include/bits/range_access.h (ranges::advance): Remove
+ redundant precondition checks during constant evaluation.
+ * include/parallel/base.h (_GLIBCXX_PARALLEL_ASSERT): Always
+ use do-while in macro expansion.
+ * include/std/ranges (iota_view::iota_view(W, B)): Remove
+ redundant braces.
+
+2020-09-01 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/chrono (duration::_S_gcd(intmax_t, intmax_t)):
+ New helper function for finding GCD of two positive intmax_t
+ values.
+ (duration::__divide): New helper alias for dividing one period
+ by another.
+ (duration::__is_harmonic): Use __divide not ratio_divide.
+ (duration(const duration<R2, P2>&)): Require the duration rep
+ types to be convertible.
+ * testsuite/20_util/duration/cons/dr2094.cc: New test.
+ * testsuite/20_util/duration/requirements/reduced_period.cc:
+ Fix definition of unused member functions in test type.
+ * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
+ Adjust expected errors.
+
+2020-08-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/numeric (__detail::__absu(bool)): Make deleted
+ function a function template, so it will be chosen for calls
+ with an explicit template argument list.
+ * testsuite/26_numerics/gcd/gcd_neg.cc: Add dg-prune-output.
+ * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
+
+2020-08-28 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/chrono (common_type): Fix partial specializations
+ for a single duration type to use the common_type of the rep.
+ (duration::operator+, duration::operator-): Fix return types
+ to also use the common_type of the rep.
+ * testsuite/20_util/duration/requirements/reduced_period.cc:
+ Check duration using a rep that has common_type specialized.
+
+2020-08-28 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/92978
+ * include/std/numeric (__abs_integral): Replace with ...
+ (__detail::__absu): New function template that returns an
+ unsigned type, guaranteeing it can represent the most
+ negative signed value.
+ (__detail::__gcd, __detail::__lcm): Require arguments to
+ be unsigned and therefore already non-negative.
+ (gcd, lcm): Convert arguments to absolute value as unsigned
+ type before calling __detail::__gcd or __detail::__lcm.
+ * include/experimental/numeric (gcd, lcm): Likewise.
+ * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust expected
+ errors.
+ * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
+ * testsuite/26_numerics/gcd/92978.cc: New test.
+ * testsuite/26_numerics/lcm/92978.cc: New test.
+ * testsuite/experimental/numeric/92978.cc: New test.
+
+2020-08-27 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/chrono (__duration_common_type): Ensure the
+ reduced ratio is used. Remove unused partial specialization
+ using __failure_type.
+ (common_type): Pass reduced ratios to __duration_common_type.
+ Add partial specializations for simple cases involving a single
+ duration or time_point type.
+ (duration::period): Use reduced ratio.
+ (duration::operator+(), duration::operator-()): Return duration
+ type using the reduced ratio.
+ * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
+ Adjust expected errors.
+ * testsuite/20_util/duration/requirements/reduced_period.cc: New test.
+
+2020-08-27 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/chrono (year_month::operator+): Properly handle a
+ month value of 0 by casting the month value to int before
+ subtracting 1 from it so that the difference is sign-extended in
+ the subsequent addition.
+ * testsuite/std/time/year_month/1.cc: Test adding months to a
+ year_month whose month component is below or above the
+ normalized range of [1,12].
+
+2020-08-27 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/chrono
+ (__detail::__months_years_conversion_disambiguator): Define.
+ (year_month::operator+=): Templatize the 'months'-based overload
+ so that the 'years'-based overload is selected in case of
+ equally-ranked implicit conversion sequences to both 'months'
+ and 'years' from the supplied argument.
+ (year_month::operator-=): Likewise.
+ (year_month::operator+): Likewise.
+ (year_month::operator-): Likewise.
+ (year_month_day::operator+=): Likewise.
+ (year_month_day::operator-=): Likewise.
+ (year_month_day::operator+): Likewise.
+ (year_month_day::operator-): Likewise.
+ (year_month_day_last::operator+=): Likewise.
+ (year_month_day_last::operator-=): Likewise.
+ (year_month_day_last::operator+): Likewise
+ (year_month_day_last::operator-): Likewise.
+ (year_month_day_weekday::operator+=): Likewise
+ (year_month_day_weekday::operator-=): Likewise.
+ (year_month_day_weekday::operator+): Likewise.
+ (year_month_day_weekday::operator-): Likewise.
+ (year_month_day_weekday_last::operator+=): Likewise
+ (year_month_day_weekday_last::operator-=): Likewise.
+ (year_month_day_weekday_last::operator+): Likewise.
+ (year_month_day_weekday_last::operator-): Likewise.
+ (testsuite/std/time/year_month/2.cc): New test.
+ (testsuite/std/time/year_month_day/2.cc): New test.
+ (testsuite/std/time/year_month_day_last/2.cc): New test.
+ (testsuite/std/time/year_month_weekday/2.cc): New test.
+ (testsuite/std/time/year_month_weekday_last/2.cc): New test.
+ * testsuite/std/time/year_month/2.cc: New file.
+ * testsuite/std/time/year_month_day/2.cc: New file.
+ * testsuite/std/time/year_month_day_last/2.cc: New file.
+ * testsuite/std/time/year_month_weekday/2.cc: New file.
+ * testsuite/std/time/year_month_weekday_last/2.cc: New file.
+
+2020-08-27 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/95322
+ * include/std/ranges (transform_view::sentinel::__distance_from):
+ Give this a deduced return type.
+ (transform_view::sentinel::operator-): Adjust the return type so
+ that it's based on the constness of the iterator rather than
+ that of the sentinel.
+ * testsuite/std/ranges/adaptors/95322.cc: Refer to LWG 3488.
+
+2020-08-27 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/ranges (elements_view::begin): Adjust constraints.
+ (elements_view::end): Likewise.
+ (elements_view::_Sentinel::operator==): Templatize to take both
+ _Iterator<true> and _Iterator<false>.
+ (elements_view::_Sentinel::operator-): Likewise.
+ * testsuite/std/ranges/adaptors/elements.cc: Add testcase for
+ the example from P1994R1.
+ * testsuite/std/ranges/adaptors/lwg3406.cc: New test.
+
+2020-08-27 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/ranges (elements_view::end): Replace these two
+ overloads with four new overloads.
+ (elements_view::_Iterator::operator==): Remove.
+ (elements_view::_Iterator::operator-): Likewise.
+ (elements_view::_Sentinel): Define.
+
+2020-08-26 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/tuple (_Tuple_impl): Whitespaces changes for
+ consistent indentation. Also use __enable_if_t alias template.
+
+2020-08-26 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96803
+ * include/std/tuple
+ (_Tuple_impl(allocator_arg_t, Alloc, const _Tuple_impl<U...>&)):
+ Replace parameter pack with a type parameter and a pack and pass
+ the first type to __use_alloc.
+ * testsuite/20_util/tuple/cons/96803.cc: New test.
+
+2020-08-26 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/chrono (year_month_weekday::operator==): Compare
+ weekday_indexed instead of weekday.
+ * testsuite/std/time/year_month_weekday/1.cc: Augment testcase.
+
+2020-08-26 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/hashtable_policy.h (_Hash_code_base): Change
+ index of _Hashtable_ebo_helper base class.
+ * testsuite/23_containers/unordered_map/dup_types.cc: New test.
+
+2020-08-26 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/71960
+ * include/experimental/string_view (basic_string_view):
+ Enable debug assertions.
+ * include/std/string_view (basic_string_view):
+ Likewise.
+
+2020-08-26 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/hashtable_policy.h (_Hashtable<>): Rename _H1 into _Hash
+ _H2 into _RangeHash and _Hash into _Unused.
+ (_Hastable_base<>): Likewise.
+ (_Map_base<>): Likewise.
+ (_Insert_base<>): Likewise.
+ (_Insert<>): Likewise.
+ (_Rehash_base<>): Likewise.
+ (_Local_iterator_base<>): Likewise.
+ (_Hash_code_base<>): Likewise.
+ (_Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false>):
+ Remove.
+ (_Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, true>):
+ Remove.
+ (_Hash_code_base<_Key, _Value, _ExtractKey, _Hash, _RangeHas, _Unused,
+ bool>): Remove _Hashtable_ebo_helper<2, _RangeHash> base type..
+ (_Hash_code_base<>::_M_bucket_index(const _Key&, __hash_code, size_t)):
+ Replace by...
+ (_Hash_code_base<>::_M_bucket_index(__hash_code, size_t)): ...this.
+ (_Local_iterator<>): Remove _H1 and _H2 template parameters.
+ (_Local_const_iterator<>): Likewise.
+ (_Equality<>): Likewise.
+ (_Map_base<>::operator[](const key_type&): Adapt.
+ (_Map_base<>::operator[](key_type&&): Adapt.
+ (_Identity::operator()): Add noexcept.
+ (_Select1st::operator()): Likewise.
+ (_Hash_code_base<>): Remove _Hashtable_ebo_helper<0, _ExtractKey> base
+ type.
+ (_Hash_code_base::_M_extract): Remove.
+ * include/bits/hashtable.h (_Hashtable<>): Remove _H1 and _H2 template
+ parameters. Remove _ExtractKey from constructors.
+ (_Hashtable<>::_M_insert_unique_node(const key_type&, size_t,
+ __hash_code, __node_type*, size_t)): Replace by...
+ (_Hashtable<>::_M_insert_unique_node(size_t, __hash_code,
+ __node_type*, size_t)): ...this.
+ (_Hashtable<>::_M_insert_muti_node(__node_type*, const key_type&,
+ __hash_code, __node_type*)): Replace by...
+ (_Hashtable<>::_M_insert_multi_node(__node_type*, __hash_code,
+ __node_type*)): ...this.
+ (_Hashtable<>::__key_extract): Remove.
+ * include/bits/node_handle.h: Adapt.
+
+2020-08-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc: Removed.
+ * testsuite/21_strings/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/deque/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/forward_list/debug/iterator_self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/multimap/debug/iterator_self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/multiset/debug/iterator_self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/unordered_map/debug/iterator_self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/unordered_multimap/debug/iterator_self_move_assign_neg.cc:
+ Removed.
+ * testsuite/23_containers/unordered_multimap/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/unordered_multiset/debug/iterator_self_move_assign_neg.cc:
+ Removed.
+ * testsuite/23_containers/unordered_multiset/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/unordered_set/debug/iterator_self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/unordered_set/debug/self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/vector/debug/iterator_self_move_assign_neg.cc: Removed.
+ * testsuite/23_containers/vector/debug/self_move_assign_neg.cc: Removed.
+
+2020-08-25 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/chrono (year_month_weekday::ok): Fix assert.
+
+2020-08-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/future (future, shared_future. promise): Add
+ is_destructible assertion (LWG 3466). Adjust string-literal for
+ !is_array and !is_function assertions.
+ * testsuite/30_threads/future/requirements/lwg3458.cc: Check
+ types with no accessible destructor. Adjust expected errors.
+ * testsuite/30_threads/promise/requirements/lwg3466.cc:
+ Likewise.
+ * testsuite/30_threads/shared_future/requirements/lwg3458.cc:
+ Likewise.
+
+2020-08-25 Patrick Palka <ppalka@redhat.com>
+ Ed Smith-Rowland <3dw4rd@verizon.net>
+ Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/chrono (time_point::operator++)
+ (time_point::operator--): Define.
+ (utc_clock, tai_clock, gps_clock): Forward declare.
+ (utc_time, utc_seconds, tai_time, tai_seconds, gps_time)
+ (gps_seconds): Define.
+ (is_clock<utc_clock>, is_clock<tai_clock>, is_clock<gps_clock>)
+ (is_clock_v<utc_clock>, is_clock_v<tai_clock>)
+ (is_clock_v<gps_clock>): Define these specializations.
+ (leap_second_info): Define.
+ (day, month, year, weekday, weekday_indexed)
+ (weekday_last, month_day, month_day_last, month_weekday)
+ (month_weekday_last, year_month, year_month_day)
+ (year_month_day_last, year_month_weekday, year_month_weekday_last):
+ Declare and later define.
+ (last_spec, last, __detail::__days_per_month)
+ (__detail::__days_per_month, __detail::__last_day): Define.
+ (January, February, March, April, May, June, July, August)
+ (September, October, November, December, Sunday, Monday, Tuesday)
+ (Wednesday, Thursday, Friday, Saturday): Define.
+ (weekday::operator[]): Define out-of-line.
+ (year_month_day::_S_from_days, year_month_day::M_days_since_epoch):
+ Likewise.
+ (year_month_day::year_month_day, year_month_day::ok): Likewise.
+ (__detail::__pow10, hh_mm_ss): Define.
+ (literals::chrono_literals::operator""d)
+ (literals::chrono_literals::operator""y): Define.
+ (is_am, is_pm, make12, make24): Define.
+ * testsuite/20_util/time_point/4.cc: New test.
+ * testsuite/std/time/day/1.cc: New test.
+ * testsuite/std/time/hh_mm_ss/1.cc: New test.
+ * testsuite/std/time/is_am/1.cc: New test.
+ * testsuite/std/time/is_pm/1.cc: New test.
+ * testsuite/std/time/make12/1.cc: New test.
+ * testsuite/std/time/make24/1.cc: New test.
+ * testsuite/std/time/month/1.cc: New test.
+ * testsuite/std/time/month_day/1.cc: New test.
+ * testsuite/std/time/month_day_last/1.cc: New test.
+ * testsuite/std/time/month_weekday/1.cc: New test.
+ * testsuite/std/time/month_weekday_last/1.cc: New test.
+ * testsuite/std/time/weekday/1.cc: New test.
+ * testsuite/std/time/weekday_indexed/1.cc: New test.
+ * testsuite/std/time/weekday_last/1.cc: New test.
+ * testsuite/std/time/year/1.cc: New test.
+ * testsuite/std/time/year_month/1.cc: New test.
+ * testsuite/std/time/year_month_day/1.cc: New test.
+ * testsuite/std/time/year_month_day_last/1.cc: New test.
+ * testsuite/std/time/year_month_weekday/1.cc: New test.
+ * testsuite/std/time/year_month_weekday_last/1.cc: New test.
+
+2020-08-24 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/ranges (join_view): Add deduction guide (LWG 3474).
+ * testsuite/std/ranges/adaptors/join_lwg3474.cc: New test.
+
+2020-08-24 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/iterator_concepts.h (indirectly_readable): Add
+ partial specializations to resolve ambiguities (LWG 3446).
+ * testsuite/24_iterators/associated_types/readable.traits.cc:
+ Check types with both value_type and element_type.
+
+2020-08-24 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/ranges (ranges::iota_view::size()): Perform all
+ calculations in the right unsigned types.
+ * testsuite/std/ranges/iota/size.cc: New test.
+
+2020-08-24 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96766
+ * include/std/variant (_Variant_storage): Replace implicit
+ conversions from size_t to __index_type with explicit casts.
+
+2020-08-24 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/30_threads/packaged_task/cons/alloc.cc: Run for
+ C++11 and skip for C++17 or later.
+
+2020-08-24 Corentin Gay <gay@adacore.com>
+
+ * testsuite/20_util/shared_ptr/atomic/3.cc: Do not require POSIX
+ threads and add -pthread only on targets supporting them.
+ * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
+ Likewise.
+ * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
+ Likewise.
+ * testsuite/30_threads/async/42819.cc: Likewise.
+ * testsuite/30_threads/async/49668.cc: Likewise.
+ * testsuite/30_threads/async/54297.cc: Likewise.
+ * testsuite/30_threads/async/any.cc: Likewise.
+ * testsuite/30_threads/async/async.cc: Likewise.
+ * testsuite/30_threads/async/except.cc: Likewise.
+ * testsuite/30_threads/async/launch.cc: Likewise.
+ * testsuite/30_threads/async/lwg2021.cc: Likewise.
+ * testsuite/30_threads/async/sync.cc: Likewise. : Likewise.
+ * testsuite/30_threads/call_once/39909.cc: Likewise.
+ * testsuite/30_threads/call_once/49668.cc: Likewise.
+ * testsuite/30_threads/call_once/60497.cc: Likewise.
+ * testsuite/30_threads/call_once/call_once1.cc: Likewise.
+ * testsuite/30_threads/call_once/dr2442.cc: Likewise.
+ * testsuite/30_threads/condition_variable/54185.cc: Likewise.
+ * testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
+ * testsuite/30_threads/condition_variable/members/1.cc: Likewise.
+ * testsuite/30_threads/condition_variable/members/2.cc: Likewise.
+ * testsuite/30_threads/condition_variable/members/3.cc: Likewise.
+ * testsuite/30_threads/condition_variable/members/53841.cc: Likewise.
+ * testsuite/30_threads/condition_variable/members/68519.cc: Likewise.
+ * testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
+ Likewise.
+ * testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
+ * testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
+ * testsuite/30_threads/condition_variable_any/cond.cc: Likewise.
+ * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
+ * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
+ * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
+ * testsuite/30_threads/future/cons/move.cc: Likewise.
+ * testsuite/30_threads/future/members/45133.cc: Likewise.
+ * testsuite/30_threads/future/members/get.cc: Likewise.
+ * testsuite/30_threads/future/members/get2.cc: Likewise.
+ * testsuite/30_threads/future/members/share.cc: Likewise.
+ * testsuite/30_threads/future/members/valid.cc: Likewise.
+ * testsuite/30_threads/future/members/wait.cc: Likewise.
+ * testsuite/30_threads/future/members/wait_for.cc: Likewise.
+ * testsuite/30_threads/future/members/wait_until.cc: Likewise.
+ * testsuite/30_threads/lock/1.cc: Likewise.
+ * testsuite/30_threads/lock/2.cc: Likewise.
+ * testsuite/30_threads/lock/3.cc: Likewise.
+ * testsuite/30_threads/lock/4.cc: Likewise.
+ * testsuite/30_threads/mutex/cons/1.cc: Likewise.
+ * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
+ * testsuite/30_threads/mutex/lock/1.cc: Likewise.
+ * testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
+ * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
+ * testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
+ * testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
+ * testsuite/30_threads/mutex/unlock/1.cc: Likewise.
+ * testsuite/30_threads/mutex/unlock/2.cc: Likewise.
+ * testsuite/30_threads/packaged_task/49668.cc: Likewise.
+ * testsuite/30_threads/packaged_task/60564.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/at_thread_exit.cc:
+ Likewise.
+ * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
+ * testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
+ * testsuite/30_threads/promise/60966.cc: Likewise.
+ * testsuite/30_threads/promise/cons/1.cc: Likewise.
+ * testsuite/30_threads/promise/cons/alloc.cc: Likewise.
+ * testsuite/30_threads/promise/cons/move.cc: Likewise.
+ * testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
+ * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise.
+ * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise.
+ * testsuite/30_threads/promise/members/get_future.cc: Likewise.
+ * testsuite/30_threads/promise/members/get_future2.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_exception.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_value.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_value2.cc: Likewise.
+ * testsuite/30_threads/promise/members/set_value3.cc: Likewise.
+ * testsuite/30_threads/promise/members/swap.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
+ * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
+ Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise.
+ * testsuite/30_threads/shared_future/cons/move.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/45133.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/get.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/get2.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/valid.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/wait.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
+ * testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
+ * testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
+ * testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
+ * testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
+ * testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
+ * testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
+ * testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
+ * testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
+ * testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
+ * testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
+ * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
+ * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
+ * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
+ * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
+ * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
+ * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
+ * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise.
+ * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
+ * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise.
+ * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise.
+ * testsuite/30_threads/this_thread/1.cc: Likewise.
+ * testsuite/30_threads/this_thread/sleep_for-mt.cc: Likewise.
+ * testsuite/30_threads/this_thread/sleep_until-mt.cc: Likewise.
+ * testsuite/30_threads/thread/cons/1.cc: Likewise.
+ * testsuite/30_threads/thread/cons/2.cc: Likewise.
+ * testsuite/30_threads/thread/cons/3.cc: Likewise.
+ * testsuite/30_threads/thread/cons/4.cc: Likewise.
+ * testsuite/30_threads/thread/cons/49668.cc: Likewise.
+ * testsuite/30_threads/thread/cons/5.cc: Likewise.
+ * testsuite/30_threads/thread/cons/6.cc: Likewise.
+ * testsuite/30_threads/thread/cons/7.cc: Likewise.
+ * testsuite/30_threads/thread/cons/8.cc: Likewise.
+ * testsuite/30_threads/thread/cons/9.cc: Likewise.
+ * testsuite/30_threads/thread/cons/moveable.cc: Likewise.
+ * testsuite/30_threads/thread/cons/terminate.cc: Likewise.
+ * testsuite/30_threads/thread/members/1.cc: Likewise.
+ * testsuite/30_threads/thread/members/2.cc: Likewise.
+ * testsuite/30_threads/thread/members/3.cc: Likewise.
+ * testsuite/30_threads/thread/members/4.cc: Likewise.
+ * testsuite/30_threads/thread/members/5.cc: Likewise.
+ * testsuite/30_threads/thread/members/hardware_concurrency.cc:
+ Likewise.
+ * testsuite/30_threads/thread/native_handle/typesizes.cc: Likewise.
+ * testsuite/30_threads/thread/swap/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
+ Likewise.
+ * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
+ Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise.
+ * testsuite/30_threads/try_lock/1.cc: Likewise.
+ * testsuite/30_threads/try_lock/2.cc: Likewise.
+ * testsuite/30_threads/try_lock/3.cc: Likewise.
+ * testsuite/30_threads/try_lock/4.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
+ * testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
+ * testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
+ * testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
+ * testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
+ * testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
+ * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
+
+2020-08-21 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96736
+ * testsuite/17_intro/headers/c++1998/all_attributes.cc: Do not
+ test "cold" on darwin.
+ * testsuite/17_intro/headers/c++2011/all_attributes.cc:
+ Likewise.
+ * testsuite/17_intro/headers/c++2014/all_attributes.cc:
+ Likewise.
+ * testsuite/17_intro/headers/c++2017/all_attributes.cc:
+ Likewise.
+ * testsuite/17_intro/headers/c++2020/all_attributes.cc:
+ Likewise.
+
+2020-08-21 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96718
+ * testsuite/25_algorithms/pstl/feature_test-2.cc: Require
+ tbb-backend effective target.
+ * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
+ * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
+ * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
+
2020-08-20 Jonathan Wakely <jwakely@redhat.com>
* include/bits/iterator_concepts.h [__STRICT_ANSI__]