Implement P1814R0, CTAD for alias templates.
[platform/upstream/gcc.git] / libstdc++-v3 / ChangeLog
index 02b7434..23395b1 100644 (file)
@@ -1,3 +1,903 @@
+2019-11-26  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/debug/helper_functions.h (__valid_range_aux): Use C++98
+       std::input_iterator_tag default constructor invocation.
+
+       * include/debug/array (array<>::fill): Add C++20 constexpr.
+       (array<>::swap): Likewise.
+
+       * include/debug/safe_iterator.h
+       [__cpp_lib_concepts](_Safe_iterator<>::iterator_concept): Define for
+       C++20.
+
+2019-11-25  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/iterator_concepts.h (ranges::iter_swap): Fix parameter
+       types of poison pill overload. Use remove_reference_t when checking
+       constraints.
+       * include/bits/stl_iterator.h (move_sentinel): Define for C++20.
+       (move_iterator): Adjust definitions of nested types for C++20. Add
+       hidden friends for move_sentinel operations, iter_move and iter_swap.
+       (common_iterator, counted_iterator): Define for C++20.
+       * testsuite/24_iterators/move_iterator/cust.cc: New test.
+       * testsuite/24_iterators/move_iterator/sentinel.cc: New test.
+       * testsuite/24_iterators/common_iterator/1.cc: New test.
+       * testsuite/24_iterators/counted_iterator/1.cc: New test.
+
+       PR libstdc++/91786
+       * include/bits/fs_path.h (filesystem_error): Move definition before
+       the use in u8path.
+
+2019-11-24  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/debug/functions.h: Remove <bits/move.h> include.
+       (__check_singular_aux, __check_singular): Move...
+       * include/debug/helper_functions.h:
+       (__check_singular_aux, __check_singular): ...here.
+       (__valid_range_aux): Adapt to use latter.
+       * testsuite/25_algorithms/copy/debug/2_neg.cc: New.
+
+2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       * doc/html/api.html: Use https for gcc.gnu.org.
+       * doc/xml/api.xml: Likewise.
+
+2019-11-19  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/regex.h (ranges::__detail::__enable_view_impl): Fix
+       declaration.
+       * include/bits/stl_multiset.h (ranges::__detail::__enable_view_impl):
+       Likewise.
+       * include/bits/stl_set.h (ranges::__detail::__enable_view_impl):
+       Likewise.
+       * include/bits/unordered_set.h (ranges::__detail::__enable_view_impl):
+       Likewise.
+       * include/debug/multiset.h (ranges::__detail::__enable_view_impl):
+       Likewise.
+       * include/debug/set.h (ranges::__detail::__enable_view_impl): Likewise.
+       * include/debug/unordered_set (ranges::__detail::__enable_view_impl):
+       Likewise.
+
+2019-11-18  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/std/thread: Reduce header dependencies.
+       (jthread::get_id()): Add missing return.
+       (jthread::get_stop_token()): Avoid unnecessary stop_source temporary.
+       (jthread::_S_create): Check is_invocable using decayed types. Add
+       static assertion.
+       * testsuite/30_threads/jthread/1.cc: Add dg-require-gthreads.
+       * testsuite/30_threads/jthread/2.cc: Likewise.
+       * testsuite/30_threads/jthread/3.cc: New test.
+       * testsuite/30_threads/jthread/jthread.cc: Add missing directives for
+       pthread and gthread support. Use VERIFY instead of assert.
+
+       * include/bits/alloc_traits.h (allocator_traits::construct)
+       (allocator_traits::destroy, allocator_traits::max_size): Add unused
+       attributes to parameters that are not used in C++20.
+       * include/std/bit (__ceil2): Add braces around assertion to avoid
+       -Wmissing-braces warning.
+
+2019-11-16  Edward Smith-Rowland  <3dw4rd@verizon.net>
+
+       Repair the <tuple> part of C++20 p1032 Misc constexpr bits.
+       * include/bits/uses_allocator.h (__uses_alloc0::_Sink::operaror=)
+       (__use_alloc(const _Alloc&)) : Constexpr.
+
+2019-11-17  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/std/string_view (basic_string_view(It, End)): Add range
+       constructor and deduction guide from P1391R4.
+       * testsuite/21_strings/basic_string_view/cons/char/range.cc: New test.
+
+       * include/bits/regex.h (match_results): Specialize __enable_view_impl.
+       * include/bits/stl_set.h (set): Likewise.
+       * include/bits/unordered_set.h (unordered_set, unordered_multiset):
+       Likewise.
+       * include/debug/multiset.h (__debug::multiset): Likewise.
+       * include/debug/set.h (__debug::set): Likewise.
+       * include/debug/unordered_set (__debug::unordered_set)
+       (__debug::unordered_multiset): Likewise.
+       * include/std/ranges (ranges::view, ranges::enable_view)
+       (ranges::view_interface, ranges::subrange, ranges::empty_view)
+       (ranges::single_view, ranges::views::single, ranges::iota_view)
+       (ranges::views::iota): Define for C++20.
+       * testsuite/std/ranges/empty_view.cc: New test.
+       * testsuite/std/ranges/iota_view.cc: New test.
+       * testsuite/std/ranges/single_view.cc: New test.
+       * testsuite/std/ranges/view.cc: New test.
+
+2019-11-16  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/std/ranges: Revert accidentally committed changes.
+
+       * include/std/thread (jthread::jthread()): Use nostopstate constant.
+       (jthread::jthread(Callable&&, Args&&...)): Use helper function to
+       create std::thread instead of indirection through a lambda. Use
+       remove_cvref_t instead of decay_t.
+       (jthread::joinable(), jthread::get_id(), jthread::native_handle())
+       (jthread::hardware_concurrency()): Add nodiscard attribute.
+       (swap(jthread&. jthread&)): Define hidden friend.
+       (jthread::_S_create): New helper function for constructor.
+
+2019-11-15  Edward Smith-Rowland  <3dw4rd@verizon.net>
+
+       Implement the <tuple> part of C++20 p1032 Misc constexpr bits.
+       * include/std/tuple (_Head_base, _Tuple_impl(allocator_arg_t,...)
+       (_M_assign, tuple(allocator_arg_t,...), _Inherited, operator=, _M_swap)
+       (swap, pair(piecewise_construct_t,): Constexpr.
+       * (__uses_alloc0::_Sink::operator=, __uses_alloc_t): Constexpr.
+       * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: New test.
+       * testsuite/20_util/tuple/constexpr_swap.cc : New test.
+       * testsuite/20_util/uses_allocator/69293_neg.cc: Extra error for C++20.
+       * testsuite/20_util/uses_allocator/cons_neg.cc: : Extra error for C++20.
+
+2019-11-15  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/std/stop_token: Reduce header dependencies by including
+       internal headers.
+       (stop_token::swap(stop_token&), swap(stop_token&, stop_token&)):
+       Define.
+       (operator!=(const stop_token&, const stop_token&)): Fix return value.
+       (stop_token::_Stop_cb::_Stop_cb(Cb&&)): Use std::forward instead of
+       (stop_token::_Stop_state_t) [_GLIBCXX_HAS_GTHREADS]: Use lock_guard
+       instead of unique_lock.
+       [!_GLIBCXX_HAS_GTHREADS]: Do not use mutex.
+       (stop_token::stop_token(_Stop_state)): Change parameter to lvalue
+       reference.
+       (stop_source): Remove unnecessary using-declarations for names only
+       used once.
+       (swap(stop_source&, stop_source&)): Define.
+       (stop_callback(const stop_token&, _Cb&&))
+       (stop_callback(stop_token&&, _Cb&&)): Replace lambdas with a named
+       function. Use std::forward instead of std::move. Run callbacks if a
+       stop request has already been made.
+       (stop_source::_M_execute()): Remove.
+       (stop_source::_S_execute(_Stop_cb*)): Define.
+       * include/std/version (__cpp_lib_jthread): Define conditionally.
+       * testsuite/30_threads/stop_token/stop_callback.cc: New test.
+       * testsuite/30_threads/stop_token/stop_source.cc: New test.
+       * testsuite/30_threads/stop_token/stop_token.cc: Enable test for
+       immediate execution of callback.
+
+2019-11-15  Edward Smith-Rowland  <3dw4rd@verizon.net>
+
+       Implement the default_searcher part of C++20 p1032 Misc constexpr bits.
+       * include/std/functional
+       (default_searcher, default_searcher::operator()): Constexpr.
+       * testsuite/20_util/function_objects/constexpr_searcher.cc: New.
+
+2019-11-15  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/iterator_concepts.h (weakly_incrementable): Adjust.
+       * include/std/concepts (default_constructible): Rename to
+       default_initializable and require default-list-initialization and
+       default-initialization to be valid (LWG 3149).
+       (semiregular): Adjust to new name.
+       * testsuite/std/concepts/concepts.lang/concept.defaultconstructible/
+       1.cc: Rename directory to concept.defaultinitializable and adjust to
+       new name.
+       * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/
+       lwg3149.cc: New test.
+       * testsuite/util/testsuite_iterators.h (test_range): Adjust.
+
+       * src/c++17/fs_path.cc [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
+       (is_disk_designator): New helper function.
+       (path::_Parser::root_path()): Use is_disk_designator.
+       (path::lexically_relative(const path&)): Implement resolution of
+       LWG 3070.
+       * testsuite/27_io/filesystem/path/generation/relative.cc: Check with
+       path components that look like a root-name.
+
+       * doc/doxygen/user.cfg.in: Add <stop_token>.
+       * include/precompiled/stdc++.h: Likewise.
+       * include/std/stop_token: Fix definition of std::nostopstate.
+       * testsuite/30_threads/headers/stop_token/synopsis.cc: New test.
+       * testsuite/30_threads/headers/thread/types_std_c++20.cc: New test.
+       * testsuite/30_threads/stop_token/stop_source.cc: New test.
+       * testsuite/30_threads/stop_token/stop_token.cc: Remove unnecessary
+       dg-require directives. Remove I/O and inclusion of <iostream>.
+
+2019-11-14  Thomas Rodgers  <trodgers@redhat.com>
+
+       * include/Makefile.am: Add <stop_token> header.
+       * include/Makefile.in: Regenerate.
+       * include/std/condition_variable: Add overloads for stop_token support
+       to condition_variable_any.
+       * include/std/stop_token: New file.
+       * include/std/thread: Add jthread type.
+       * include/std/version (__cpp_lib_jthread): New value.
+       * testsuite/30_threads/condition_variable_any/stop_token/1.cc: New test.
+       * testsuite/30_threads/condition_variable_any/stop_token/2.cc: New test.
+       * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
+       New test.
+       * testsuite/30_threads/jthread/1.cc: New test.
+       * testsuite/30_threads/jthread/2.cc: New test.
+       * testsuite/30_threads/jthread/jthread.cc: New test.
+       * testsuite/30_threads/stop_token/1.cc: New test.
+       * testsuite/30_threads/stop_token/2.cc: New test.
+       * testsuite/30_threads/stop_token/stop_token.cc: New test.
+
+2019-11-14  Edward Smith-Rowland  <3dw4rd@verizon.net>
+
+       Implement the <array> part of C++20 p1032 Misc constexpr bits.
+       * include/std/array (fill, swap): Make constexpr.
+       * testsuite/23_containers/array/requirements/constexpr_fill.cc: New.
+       * testsuite/23_containers/array/requirements/constexpr_swap.cc: New.
+
+2019-11-14  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/iterator_concepts.h (__iter_concept_impl): Add
+       comments.
+       (indirect_relation): Rename to indirect_binary_predicate and adjust
+       definition as per P1716R3.
+       (indirect_equivalence_relation): Define.
+       (indirectly_comparable): Adjust definition.
+       * include/std/concepts (equivalence_relation): Define.
+       * testsuite/std/concepts/concepts.callable/relation.cc: Add tests for
+       equivalence_relation.
+
+       * include/bits/iterator_concepts.h (disable_sized_sentinel): Rename to
+       disable_sized_sentinel_for.
+       * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Adjust.
+
+2019-11-13  Jonathan Wakely  <jwakely@redhat.com>
+
+       * libsupc++/compare (strong_order, weak_order, partial_order)
+       (compare_strong_order_fallback, compare_weak_order_fallback)
+       (compare_partial_order_fallback): Define customization point objects
+       for C++20.
+       * testsuite/18_support/comparisons/algorithms/partial_order.cc: New
+       test.
+       * testsuite/18_support/comparisons/algorithms/strong_order.cc: New
+       test.
+       * testsuite/18_support/comparisons/algorithms/weak_order.cc: New test.
+
+2019-11-11  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/xml/gnu/gpl-3.0.xml: Adjust link to "Why not LGPL".
+
+2019-11-10  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/xml/manual/using.xml: Switch www.hboehm.info to https.
+
+2019-11-07  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/doxygen/user.cfg.in (INPUT): Add <compare> header.
+       * include/precompiled/stdc++.h: Include <compare> header.
+
+       * libsupc++/compare (common_comparison_category)
+       (common_comparison_category_t): Define for C++20.
+       * testsuite/18_support/comparisons/common/1.cc: New test.
+
+       * include/bits/stl_algo.h (for_each_n): Handle negative count.
+       * testsuite/25_algorithms/for_each/for_each_n_debug.cc: New test.
+
+2019-11-07  Jason Merrill  <jason@redhat.com>
+
+       * libsupc++/compare: Remove strong_equality and weak_equality.
+
+2019-11-06  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/Makefile.in: Regenerate.
+       * libsupc++/Makefile.in: Regenerate.
+       * libsupc++/compare (__3way_builtin_ptr_cmp): Define helper.
+       (compare_three_way): Add missing implementation.
+
+       * include/bits/iterator_concepts.h (unreachable_sentinel_t): Remove
+       redundant equality operators.
+       * testsuite/util/testsuite_iterators.h (test_range::sentinel):
+       Likewise.
+
+2019-11-05  Jonathan Wakely  <jwakely@redhat.com>
+
+       * libsupc++/compare: New header.
+       * libsupc++/Makefile.am (std_HEADERS): Add compare.
+       * include/std/version: Define __cpp_lib_three_way_comparison.
+       * include/std/functional: #include <compare>.
+
+       * include/std/version [!_GLIBCXX_HOSTED]: Do not define feature test
+       macros for features that are only present in hosted builds.
+
+       * include/bits/iterator_concepts.h (__iter_without_nested_types):
+       Remove incorrect comment.
+
+2019-10-31  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/html/*: Regenerate.
+
+       * include/bits/refwrap.h (reference_wrapper, ref, cref): Add constexpr
+       specifiers for C++20.
+       * include/std/functional (_Mem_fn, mem_fn, _Bind, _Bind_result, bind)
+       (bind_front, _Not_fn, not_fn): Likewise.
+       * testsuite/20_util/bind/constexpr.cc: New test.
+       * testsuite/20_util/function_objects/bind_front/constexpr.cc: New test.
+       * testsuite/20_util/function_objects/mem_fn/constexpr.cc: New test.
+       * testsuite/20_util/function_objects/not_fn/constexpr.cc: New test.
+       * testsuite/20_util/reference_wrapper/constexpr.cc: New test.
+
+       * doc/doxygen/user.cfg.in: Add new header.
+       * include/Makefile.am: Add new header.
+       * include/Makefile.in: Regenerate.
+       * include/precompiled/stdc++.h: Include new header.
+       * include/std/ranges: New header.
+       (ranges::sentinel_t, ranges::range_value_t, ranges::range_reference_t)
+       (ranges::range_rvalue_reference_t, ranges::sized_range)
+       (ranges::output_range, ranges::input_ranges, ranges::forward_range)
+       (ranges::bidirectional_range, ranges::random_access_range)
+       (ranges::contiguous_range, ranges::common::range): Define.
+       * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Check
+       that disabled_sized_sentinel can be specialized.
+       * testsuite/std/ranges/access/begin.cc: Include <ranges> instead of
+       <iterator>.
+       * testsuite/std/ranges/access/cbegin.cc: Likewise.
+       * testsuite/std/ranges/access/cdata.cc: Likewise.
+       * testsuite/std/ranges/access/cend.cc: Likewise.
+       * testsuite/std/ranges/access/crbegin.cc: Likewise.
+       * testsuite/std/ranges/access/crend.cc: Likewise.
+       * testsuite/std/ranges/access/data.cc: Likewise.
+       * testsuite/std/ranges/access/empty.cc: Likewise.
+       * testsuite/std/ranges/access/end.cc: Likewise.
+       * testsuite/std/ranges/access/end_neg.cc: Likewise.
+       * testsuite/std/ranges/access/rbegin.cc: Likewise.
+       * testsuite/std/ranges/access/rend.cc: Likewise.
+       * testsuite/std/ranges/access/size.cc: Likewise.
+       * testsuite/std/ranges/access/size_neg.cc: Likewise.
+       * testsuite/std/ranges/headers/ranges/synopsis.cc: New test.
+       * testsuite/std/ranges/range.cc: New test.
+       * testsuite/std/ranges/refinements.cc: New test.
+       * testsuite/std/ranges/sized.cc: New test.
+       * testsuite/util/testsuite_iterators.h: Add aliases for range types.
+       (output_iterator_wrapper::WritableObject::operator=): Add const
+       qualifier so that output_iterator_wrapper satisfies writable.
+
+       * testsuite/20_util/add_pointer/value.cc: Check void types.
+
+       * include/bits/range_access.h (__sizable): Rename to __sentinel_size.
+       Remove workaround for PR c++/92268 and remove redundant requirements
+       that are already checked by sized_sentinel_for.
+       * testsuite/std/ranges/access/cend.cc: Fix failures.
+       * testsuite/std/ranges/access/end.cc: Likewise.
+
+       * include/bits/range_access.h (ranges::begin): Combine array and
+       non-array overloads into one function template. Only use ADL for
+       classes and enums.
+       (ranges::end, ranges::size): Likewise. Make unbounded arrays
+       ill-formed.
+       (ranges::rbegin, ranges::rend): Only use ADL for classes and enums.
+       Reformat _S_noexcept() functions to mirror operator() structure.
+       * testsuite/std/ranges/access/begin.cc: Check incomplete array.
+       * testsuite/std/ranges/access/end_neg.cc: New test.
+       * testsuite/std/ranges/access/size.cc: Check array of incomplete type.
+       * testsuite/std/ranges/access/size_neg.cc: New test.
+
+       * testsuite/24_iterators/range_access*.cc: Move to ...
+       * testsuite/24_iterators/range_access/range_access*.cc: ... here.
+       * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc: New
+       test.
+
+2019-10-30  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/std/concepts (std::ranges::swap): Use a single overload for
+       the non-array cases, and switch using if-constexpr.
+
+       * include/bits/stl_iterator.h (__normal_iterator::iterator_concept):
+       Guard with __cpp_lib_concepts macro.
+
+       * include/std/bit (__cpp_lib_bitops): Define.
+       * include/std/version (__cpp_lib_constexpr): Remove.
+       (__cpp_lib_bitops, __cpp_lib_constexpr_dynamic_alloc): Define.
+       * testsuite/26_numerics/bit/header.cc: New test.
+       * testsuite/26_numerics/bit/header-2.cc: New test.
+       * testsuite/20_util/allocator_traits/header.cc: New test.
+       * testsuite/20_util/allocator_traits/header-2.cc: New test.
+
+       * include/bits/stl_iterator.h (namespace __gnu_cxx): Remove
+       using-declarations for std::iterator and std::iterator_traits.
+       (__gnu_cxx::__normal_iterator): Qualify iterator_traits.
+       * include/ext/algorithm (namespace __gnu_cxx): Remove
+       using-declarations for std names and qualify those names when used.
+       Also refer to std::min in parentheses to protect against function-like
+       macros.
+       * include/ext/rc_string_base.h: Qualify iterator_traits.
+       * include/ext/sso_string_base.h: Qualify iterator_traits.
+
+       PR libstdc++/92272
+       * include/bits/stl_bvector.h (_Bit_iterator::pointer)
+       (_Bit_const_iterator::pointer): Define as void for C++20.
+       * include/bits/stl_iterator.h (reverse_iterator::operator->()): Add
+       constraints for C++20.
+       (__normal_iterator::iterator_concept): Define for C++20.
+       * include/bits/streambuf_iterator.h (istreambuf_iterator::pointer):
+       Define as void for C++20.
+       (ostreambuf_iterator::difference_type): Define as ptrdiff_t for C++20.
+       (ostreambuf_iterator::ostreambuf_iterator()): Add default constructor
+       for C++20.
+       * testsuite/23_containers/vector/bool/iterator_c++20.cc: New test.
+       * testsuite/24_iterators/bidirectional/concept.cc: New test.
+       * testsuite/24_iterators/bidirectional/tag.cc: New test.
+       * testsuite/24_iterators/contiguous/concept.cc: New test.
+       * testsuite/24_iterators/contiguous/tag.cc: New test.
+       * testsuite/24_iterators/forward/concept.cc: New test.
+       * testsuite/24_iterators/forward/tag.cc: New test.
+       * testsuite/24_iterators/input/concept.cc: New test.
+       * testsuite/24_iterators/input/tag.cc: New test.
+       * testsuite/24_iterators/istreambuf_iterator/requirements/typedefs.cc:
+       New test.
+       * testsuite/24_iterators/ostreambuf_iterator/requirements/typedefs.cc:
+       New test.
+       * testsuite/24_iterators/output/concept.cc: New test.
+       * testsuite/24_iterators/output/tag.cc: New test.
+       * testsuite/24_iterators/random_access/concept.cc: New test.
+       * testsuite/24_iterators/random_access/tag.cc: New test.
+       * testsuite/24_iterators/range_operations/advance_debug_neg.cc: New
+       test.
+       * testsuite/24_iterators/random_access_iterator/26020.cc: Move to ...
+       * testsuite/24_iterators/operations/26020.cc: ... here.
+       * testsuite/24_iterators/random_access_iterator/
+       string_vector_iterators.cc: Move to ...
+       * testsuite/24_iterators/random_access/string_vector_iterators.cc: ...
+       here.
+
+       * testsuite/util/testsuite_iterators.h: Fix typo in __cplusplus check.
+
+2019-10-29  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/range_access.h (ranges::disable_sized_range)
+       (ranges::begin, ranges::end, ranges::cbegin, ranges::cend)
+       (ranges::rbegin, ranges::rend, ranges::crbegin, ranges::crend)
+       (ranges::size, ranges::empty, ranges::data, ranges::cdata)
+       (ranges::range, ranges::sized_range, ranges::advance, ranges::distance)
+       (ranges::next, ranges::prev): Guard with __cpp_lib_concepts.
+       * include/bits/stl_iterator.h (disable_sized_sentinel): Likewise.
+
+       * include/bits/alloc_traits.h (__cpp_lib_constexpr_dynamic_alloc):
+       Define.
+       (allocator_traits::_S_construct, allocator_traits::_S_destroy)
+       (__alloc_on_copy, __alloc_on_move, __alloc_on_swap): Use
+       _GLIBCXX14_CONSTEXPR instead of constexpr.
+       * include/bits/stl_construct.h (_Destroy): Likewise.
+
+       * include/Makefile.am: Add new header.
+       * include/Makefile.in: Regenerate.
+       * include/bits/iterator_concepts.h: New header.
+       (contiguous_iterator_tag, iter_reference_t, ranges::iter_move)
+       (iter_rvalue_reference_t, incrementable_traits, iter_difference_t)
+       (readable_traits, iter_value_t, readable, iter_common_reference_t)
+       (writable, waekly_incrementable, incrementable)
+       (input_or_output_iterator, sentinel_for, disable_sized_sentinel)
+       (sized_sentinel_for, input_iterator, output_iterator)
+       (forward_iterator, bidirectional_iterator, random_access_iterator)
+       (contiguous_iterator, indirectly_unary_invocable)
+       (indirectly_regular_unary_invocable, indirect_unary_predicate)
+       (indirect_relation, indirect_strict_weak_order, indirect_result_t)
+       (projected, indirectly_movable, indirectly_movable_storable)
+       (indirectly_copyable, indirectly_copyable_storable, ranges::iter_swap)
+       (indirectly_swappable, indirectly_comparable, permutable, mergeable)
+       (sortable, unreachable_sentinel_t, unreachable_sentinel)
+       (default_sentinel_t, default_sentinel): Define.
+       (__detail::__cpp17_iterator, __detail::__cpp17_input_iterator)
+       (__detail::__cpp17_fwd_iterator, __detail::__cpp17_bidi_iterator)
+       (__detail::__cpp17_randacc_iterator): Define.
+       (__iterator_traits): Define constrained specializations.
+       * include/bits/move.h (move): Only use old concept check for C++98.
+       * include/bits/range_access.h (ranges::disable_sized_range)
+       (ranges::begin, ranges::end, ranges::cbegin, ranges::cend)
+       (ranges::rbegin, ranges::rend, ranges::crbegin, ranges::crend)
+       (ranges::size, ranges::empty, ranges::data, ranges::cdata): Define
+       new customization points for C++20.
+       (ranges::range, ranges::sized_range): Define new concepts for C++20.
+       (ranges::advance, ranges::distance, ranges::next, ranges::prev):
+       Define new functions for C++20.
+       (__adl_end, __adl_cdata, __adl_cbegin, __adl_cend, __adl_rbegin)
+       (__adl_rend, __adl_crbegin, __adl_crend, __adl_cdata, __adl_size)
+       (__adl_empty): Remove.
+       * include/bits/stl_iterator.h (disable_sized_sentinel): Specialize
+       for reverse_iterator.
+       * include/bits/stl_iterator_base_types.h (contiguous_iterator_tag):
+       Define new struct for C++20.
+       (iterator_traits<_Tp*>): Constrain partial specialization in C++20.
+       * include/std/concepts (__is_class_or_enum): Move to __detail
+       namespace.
+       * testsuite/20_util/forward/c_neg.cc: Adjust dg-error line number.
+       * testsuite/20_util/forward/f_neg.cc: Likewise.
+       * testsuite/24_iterators/associated_types/incrementable.traits.cc: New
+       test.
+       * testsuite/24_iterators/associated_types/readable.traits.cc: New test.
+       * testsuite/24_iterators/contiguous/concept.cc: New test.
+       * testsuite/24_iterators/contiguous/tag.cc: New test.
+       * testsuite/24_iterators/customization_points/iter_move.cc: New test.
+       * testsuite/24_iterators/customization_points/iter_swap.cc: New test.
+       * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: New test.
+       * testsuite/24_iterators/range_operations/advance.cc: New test.
+       * testsuite/24_iterators/range_operations/distance.cc: New test.
+       * testsuite/24_iterators/range_operations/next.cc: New test.
+       * testsuite/24_iterators/range_operations/prev.cc: New test.
+       * testsuite/26_numerics/adjacent_difference/requirements/
+       explicit_instantiation/2.cc: Rename types that conflict with C++20
+       concepts.
+       * testsuite/26_numerics/adjacent_difference/requirements/
+       explicit_instantiation/pod.cc: Likewise.
+       * testsuite/26_numerics/partial_sum/requirements/
+       explicit_instantiation/2.cc: Likewise.
+       * testsuite/26_numerics/partial_sum/requirements/
+       explicit_instantiation/pod.cc: Likewise.
+       * testsuite/experimental/iterator/requirements.cc: Likewise.
+       * testsuite/std/ranges/access/begin.cc: New test.
+       * testsuite/std/ranges/access/cbegin.cc: New test.
+       * testsuite/std/ranges/access/cdata.cc: New test.
+       * testsuite/std/ranges/access/cend.cc: New test.
+       * testsuite/std/ranges/access/crbegin.cc: New test.
+       * testsuite/std/ranges/access/crend.cc: New test.
+       * testsuite/std/ranges/access/data.cc: New test.
+       * testsuite/std/ranges/access/empty.cc: New test.
+       * testsuite/std/ranges/access/end.cc: New test.
+       * testsuite/std/ranges/access/rbegin.cc: New test.
+       * testsuite/std/ranges/access/rend.cc: New test.
+       * testsuite/std/ranges/access/size.cc: New test.
+       * testsuite/util/testsuite_iterators.h (contiguous_iterator_wrapper)
+       (test_range, test_sized_range): New test utilities.
+
+       * testsuite/util/testsuite_iterators.h (BoundsContainer::size()): Add
+       new member function.
+       (WritableObject::operator=): Constrain with enable_if when available.
+       (remove_cv): Use std::remove_if when available.
+       (test_container::it(int)): Use size().
+       (test_container::size()): Use BoundsContainer::size().
+
+       PR libstdc++/92267
+       * include/bits/stl_deque.h (_Deque_iterator(const _Deque_iterator&)):
+       Do not define as defaulted.
+       * testsuite/23_containers/deque/types/92267.cc: New test.
+
+2019-10-26  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/xml/manual/codecvt.xml: Switch pubs.opengroup.org to https.
+       * doc/xml/manual/locale.xml (LC_ALL): Ditto.
+       * doc/xml/manual/messages.xml: Ditto.
+
+2019-10-26  John David Anglin  <danglin@gcc.gnu.org>
+
+       * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
+
+2019-10-25  Jonathan Wakely  <jwakely@redhat.com>
+
+       * testsuite/util/testsuite_iterators.h (output_iterator_wrapper)
+       (input_iterator_wrapper, forward_iterator_wrapper)
+       bidirectional_iterator_wrapper, random_access_iterator_wrapper): Remove
+       user-provided copy constructors and copy assignment operators so they
+       are defined implicitly.
+       (input_iterator_wrapper): Initialize members in default constructor.
+       (forward_iterator_wrapper): Remove assignments to members of base.
+
+       * include/bits/allocator.h: Check __cpp_constexpr_dynamic_alloc
+       before making the std::allocator destructor constexpr.
+       * testsuite/20_util/allocator/requirements/constexpr.cc: New test.
+
+       * include/bits/range_cmp.h: Check __cpp_lib_concepts before defining
+       concepts. Fix comment.
+       * include/bits/allocator.h 
+
+2019-10-25  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/xml/manual/policy_data_structures_biblio.xml: Switch
+       pubs.opengroup.org to https.
+
+2019-10-25  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/xml/gnu/gpl-3.0.xml: Switch www.gnu.org to https.
+
+2019-09-09  Edward Smith-Rowland  <3dw4rd@verizon.net>
+
+       * doc/xml/manual/status_cxx2020.xml: Add rows and update status.
+
+2019-10-24  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/allocator.h (allocator<void>): Restore the explicit
+       specialization for C++20, but make its API consistent with the primary
+       template.
+       (allocator::~allocator()): Restore the destructor for C++20, but make
+       it constexpr.
+       * testsuite/20_util/allocator/rebind_c++20.cc: Check allocator<void>.
+       * testsuite/20_util/allocator/requirements/typedefs_c++20.cc: Likewise.
+       * testsuite/20_util/allocator/void.cc: Check that constructors and
+       destructors are trivial. Check for converting constructor in C++20.
+       * testsuite/ext/malloc_allocator/variadic_construct.cc: Simplify
+       dejagnu target selector.
+       * testsuite/ext/new_allocator/variadic_construct.cc: Likewise.
+
+       * include/experimental/executor (__use_future_ct, use_future_t):
+       Define partial specializations for std::allocator.
+       (__use_future_ch): Overload constructor for completion tokens using
+       std::allocator.
+
+       PR libstdc++/88338 Implement P0898R3, C++20 concepts library
+       * doc/xml/manual/status_cxx2020.xml: Update status.
+       * doc/html/*: Regenerate.
+       * testsuite/std/concepts/1.cc: New test.
+       * testsuite/std/concepts/2.cc: New test.
+
+       * include/bits/random.h (uniform_random_bit_generator): Define for
+       C++20.
+       * testsuite/26_numerics/random/concept.cc: New test.
+       * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
+
+2019-10-23  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/std/functional (invoke): Add constexpr for C++20.
+       * include/std/version (__cpp_lib_constexpr_invoke): Define.
+       * testsuite/20_util/function_objects/invoke/constexpr.cc: New test.
+
+       PR c++/91369 Implement P0784R7 changes to allocation and construction
+       * include/bits/alloc_traits.h: Include <bits/stl_construct.h>.
+       (allocator_traits::_S_allocate, allocator_traits::_S_construct)
+       (allocator_traits::_S_destroy, allocator_traits::_S_max_size)
+       (allocator_traits::_S_select, allocator_traits::allocate)
+       (allocator_traits::deallocate, allocator_traits::construct)
+       (allocator_traits::destroy, allocator_traits::max_size)
+       (allocator_traits::select_on_container_copy_construction)
+       (allocator_traits<allocator<T>>): Add constexpr specifier for C++20.
+       (allocator_traits<allocator<T>>::construct): Use construct_at.
+       (allocator_traits<allocator<T>>::destroy): Use destroy_at.
+       (__alloc_on_copy, __alloc_on_move, __alloc_on_swap): Add constexpr
+       specifier.
+       (_Destroy(ForwardIterator, ForwardIterator, Alloc&))
+       (_Destroy(ForwardIterator, ForwardIterator, allocator<T>&)): Move here
+       from <bits/stl_construct.h>.
+       * include/bits/allocator.h (allocator::~allocator): Remove for C++20.
+       (allocator::allocate, allocate::deallocate): Define for C++20 and up.
+       (operator==, operator!=): Add constexpr specifier for C++20.
+       * include/bits/stl_construct.h: Don't include <ext/alloc_traits.h>.
+       (destroy_at): For C++20 add constexpr specifier and support for
+       destroying arrays.
+       (construct_at): Define new function for C++20.
+       (_Construct): Return result of placement new-expression. For C++11 and
+       up add constexpr. For C++20 dispatch to std::construct_at during
+       constant evaluation.
+       (_Destroy(pointer)): Add constexpr specifier. For C++20 dispatch to
+       std::destroy_at during constant evaluation.
+       (_Destroy_aux::__destroy, _Destroy_n_aux::__destroy_n): Add constexpr
+       specifier for C++20.
+       (_Destroy(ForwardIterator, ForwardIterator))
+       (_Destroy(ForwardIterator, Size)): Likewise. Do not elide trivial
+       destructors during constant evaluation.
+       (destroy, destroy_n): Add constexpr specifier for C++20.
+       (_Destroy(ForwardIterator, ForwardIterator, Alloc&))
+       (_Destroy(ForwardIterator, ForwardIterator, allocator<T>&)): Move to
+       <bits/alloc_traits.h>, to remove dependency on allocators.
+       * include/bits/stl_uninitialized.h: Include <ext/alloc_traits.h>.
+       Include <bits/stl_pair.h> instead of <utility>.
+       * include/ext/alloc_traits.h: Always include <bits/alloc_traits.h>.
+       (__alloc_traits::construct, __alloc_traits::destroy)
+       (__alloc_traits::_S_select_on_copy, __alloc_traits::_S_on_swap): Add
+       constexpr specifier.
+       * include/ext/malloc_allocator.h  (operator==, operator!=): Add
+       constexpr specifier for C++20.
+       * include/ext/new_allocator.h (operator==, operator!=): Likewise.
+       * testsuite/20_util/headers/memory/synopsis.cc: Add constexpr.
+       * testsuite/20_util/scoped_allocator/69293_neg.cc: Ignore additional
+       errors due to constexpr function called after failed static_assert.
+       * testsuite/20_util/specialized_algorithms/construct_at/1.cc: New test.
+       * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
+       Ignore additional errors due to constexpr function called after failed
+       static_assert.
+       * testsuite/23_containers/vector/cons/destructible_neg.cc: Likewise.
+
+       * testsuite/20_util/bind/91371.cc: Fix test to compile as C++11.
+
+       * include/debug/helper_functions.h (__valid_range): Change
+       _GLIBCXX_CONSTEXPR to _GLIBCXX14_CONSTEXPR.
+
+       * include/ext/throw_allocator.h (throw_allocator_base): Qualify
+       size_t and ptrdiff_t.
+
+       * include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp:
+       Use detail::rebind_traits.
+       * include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp:
+       Likewise.
+       * include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Likewise.
+       * include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Likewise.
+       * include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp: Likewise.
+       * include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp: Likewise.
+       * include/ext/pb_ds/detail/binary_heap_/point_const_iterator.hpp:
+       Likewise.
+       * include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp:
+       Likewise.
+       * include/ext/pb_ds/detail/branch_policy/branch_policy.hpp: Likewise.
+       * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp: Likewise.
+       * include/ext/pb_ds/detail/cond_dealtor.hpp: Likewise.
+       * include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp (has_eq_fn): Likewise.
+       * include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Likewise.
+       * include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp: Likewise.
+       * include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp: Likewise.
+       * include/ext/pb_ds/detail/left_child_next_sibling_heap_/
+       left_child_next_sibling_heap_.hpp: Likewise.
+       * include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp:
+       Likewise.
+       * include/ext/pb_ds/detail/left_child_next_sibling_heap_/
+       point_const_iterator.hpp: Likewise.
+       * include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp: Likewise.
+       * include/ext/pb_ds/detail/ov_tree_map_/
+       constructors_destructor_fn_imps.hpp: Likewise.
+       * include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp: Likewise.
+       * include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp: Likewise.
+       * include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp: Likewise.
+       * include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp: Likewise.
+       * include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp: Likewise.
+       * include/ext/pb_ds/detail/rb_tree_map_/node.hpp: Likewise.
+       * include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp: Likewise.
+       * include/ext/pb_ds/detail/splay_tree_/node.hpp: Likewise.
+       * include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp: Likewise.
+       * include/ext/pb_ds/detail/trie_policy/sample_trie_access_traits.hpp:
+       Likewise.
+       * include/ext/pb_ds/detail/type_utils.hpp: Fix typo in comment.
+       * include/ext/pb_ds/detail/types_traits.hpp (stored_value): Add
+       bool parameter to control whether the hash value is stored.
+       (select_base_type): New class template and partial specialization.
+       (maybe_null_type): Likewise.
+       (rebind_traits): New class template.
+       (type_base): Remove four nearly identical specializations.
+       (type_dispatch): Remove.
+       (type_traits): Use select_base_type and maybe_null_type instead of
+       type_base to control differences between specializations.
+       * include/ext/pb_ds/list_update_policy.hpp: Use detail::rebind_traits.
+       * include/ext/pb_ds/priority_queue.hpp: Likewise.
+       * include/ext/pb_ds/tree_policy.hpp: Likewise.
+       * include/ext/pb_ds/trie_policy.hpp: Likewise.
+
+       * include/backward/hash_set (hash_set): Use __alloc_traits.
+       * include/backward/hashtable.h (_Hashtable): Likewise.
+       * include/ext/alloc_traits.h (__alloc_traits::allocate): Add overload
+       taking a hint.
+       * include/ext/extptr_allocator.h (_ExtPtr_allocator::allocate): Ignore
+       hint.
+       * include/ext/slist (_Slist_base): Use __alloc_traits.
+       * include/tr1/hashtable.h (_Hashtable): Likewise.
+       * include/tr1/regex (match_results): Use vector::const_reference
+       instead of assuming the allocator defines it.
+       * testsuite/backward/hash_map/23528.cc: Use allocator_traits in C++11.
+       * testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc: Use
+       __gnu_test::max_size.
+       * testsuite/tr1/6_containers/unordered_multimap/capacity/
+       29134-multimap.cc: Likewise.
+       * testsuite/tr1/6_containers/unordered_multiset/capacity/
+       29134-multiset.cc: Likewise.
+       * testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc:
+       Likewise.
+
+2019-10-22  Jonathan Wakely  <jwakely@redhat.com>
+
+       * testsuite/util/testsuite_abi.h: Restore use of tr1/unordered_map
+       when compiled as C++98.
+
+       * include/bits/memoryfwd.h (uses_allocator): Do not declare for C++98.
+       * testsuite/17_intro/names.cc: Check uses_allocator in C++98.
+
+       * include/bits/alloc_traits.h
+       (allocator_traits<allocator<T>>::allocate): Ignore hint for C++20.
+       (allocator_traits<allocator<T>>::construct): Perform placement new
+       directly for C++20, instead of calling allocator<T>::construct.
+       (allocator_traits<allocator<T>>::destroy): Call destructor directly
+       for C++20, instead of calling allocator<T>::destroy.
+       (allocator_traits<allocator<T>>::max_size): Return value directly
+       for C++20, instead of calling std::allocator<T>::max_size().
+       (__do_alloc_on_copy, __do_alloc_on_move, __do_alloc_on_swap): Do not
+       define for C++17 and up.
+       (__alloc_on_copy, __alloc_on_move, __alloc_on_swap): Use if-constexpr
+       for C++17 and up, instead of tag dispatching.
+       * include/bits/allocator.h (allocator<void>): Remove for C++20.
+       (allocator::pointer, allocator::const_pointer, allocator::reference)
+       (allocator::const_reference, allocator::rebind): Remove for C++20.
+       * include/bits/basic_string.h (basic_string): Use __alloc_traits to
+       rebind allocator.
+       * include/bits/memoryfwd.h (allocator<void>): Remove for C++20.
+       * include/ext/debug_allocator.h: Use __alloc_traits for rebinding.
+       * include/ext/malloc_allocator.h (malloc_allocator::~malloc_allocator)
+       (malloc_allocator::pointer, malloc_allocator::const_pointer)
+       (malloc_allocator::reference, malloc_allocator::const_reference)
+       (malloc_allocator::rebind, malloc_allocator::max_size)
+       (malloc_allocator::construct, malloc_allocator::destroy): Do not
+       define for C++20.
+       (malloc_allocator::_M_max_size): Define new function.
+       * include/ext/new_allocator.h (new_allocator::~new_allocator)
+       (new_allocator::pointer, new_allocator::const_pointer)
+       (new_allocator::reference, new_allocator::const_reference)
+       (new_allocator::rebind, new_allocator::max_size)
+       (new_allocator::construct, new_allocator::destroy): Do not
+       define for C++20.
+       (new_allocator::_M_max_size): Define new function.
+       * include/ext/rc_string_base.h (__rc_string_base::_Rep): Use
+       __alloc_traits to rebind allocator.
+       * include/ext/rope (_Rope_rep_base, _Rope_base): Likewise.
+       (rope::rope(CharT, const allocator_type&)): Use __alloc_traits
+       to construct character.
+       * include/ext/slist (_Slist_base): Use __alloc_traits to rebind
+       allocator.
+       * include/ext/sso_string_base.h (__sso_string_base::_M_max_size):
+       Use __alloc_traits.
+       * include/ext/throw_allocator.h (throw_allocator): Do not use optional
+       members of std::allocator, use __alloc_traits members instead.
+       * include/ext/vstring.h (__versa_string): Use __alloc_traits.
+       * include/ext/vstring_util.h (__vstring_utility): Likewise.
+       * include/std/memory: Include <bits/alloc_traits.h>.
+       * testsuite/20_util/allocator/8230.cc: Use __gnu_test::max_size.
+       * testsuite/20_util/allocator/rebind_c++20.cc: New test.
+       * testsuite/20_util/allocator/requirements/typedefs.cc: Do not check
+       for pointer, const_pointer, reference, const_reference or rebind in
+       C++20.
+       * testsuite/20_util/allocator/requirements/typedefs_c++20.cc: New test.
+       * testsuite/23_containers/deque/capacity/29134.cc: Use
+       __gnu_test::max_size.
+       * testsuite/23_containers/forward_list/capacity/1.cc: Likewise.
+       * testsuite/23_containers/list/capacity/29134.cc: Likewise.
+       * testsuite/23_containers/map/capacity/29134.cc: Likewise.
+       * testsuite/23_containers/multimap/capacity/29134.cc: Likewise.
+       * testsuite/23_containers/multiset/capacity/29134.cc: Likewise.
+       * testsuite/23_containers/set/capacity/29134.cc: Likewise.
+       * testsuite/23_containers/vector/capacity/29134.cc: Likewise.
+       * testsuite/ext/malloc_allocator/variadic_construct.cc: Do not run
+       test for C++20.
+       * testsuite/ext/new_allocator/variadic_construct.cc: Likewise.
+       * testsuite/ext/vstring/capacity/29134.cc: Use __gnu_test::max_size.
+       * testsuite/util/replacement_memory_operators.h: Do not assume
+       Alloc::pointer exists.
+       * testsuite/util/testsuite_allocator.h (__gnu_test::max_size): Define
+       helper to call max_size for any allocator.
+
+2019-10-22  Andreas Schwab  <schwab@suse.de>
+
+       * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
+
+2019-10-18  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/92143
+       * libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment
+       to at least sizeof(void*).
+
+       * include/bits/range_cmp.h (ranges::less::operator()): Inline the
+       logic from std::less::operator() to remove the dependency on it.
+
+2019-10-17  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/doxygen/user.cfg.in (INPUT): Add new C++17 and C++20 headers.
+
+       * include/Makefile.am: Add new header.
+       * include/Makefile.in: Regenerate.
+       * include/bits/range_cmp.h: New header for C++20 function objects.
+       * include/std/functional: Include new header.
+       * testsuite/20_util/function_objects/identity/1.cc: New test.
+       * testsuite/20_util/function_objects/range.cmp/equal_to.cc: New test.
+       * testsuite/20_util/function_objects/range.cmp/greater.cc: New test.
+       * testsuite/20_util/function_objects/range.cmp/greater_equal.cc: New
+       test.
+       * testsuite/20_util/function_objects/range.cmp/less.cc: New test.
+       * testsuite/20_util/function_objects/range.cmp/less_equal.cc: New test.
+       * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc: New
+       test.
+
+       PR libstdc++/92124
+       * include/bits/forward_list.h
+       (_M_move_assign(forward_list&&, false_type)): Do not use
+       __make_move_if_noexcept, instead move unconditionally.
+       * include/bits/stl_deque.h (_M_move_assign2(deque&&, false_type)):
+       Likewise.
+       * include/bits/stl_list.h (_M_move_assign(list&&, false_type)):
+       Likewise.
+       * include/bits/stl_vector.h (_M_move_assign(vector&&, false_type)):
+       Likewise.
+       * testsuite/23_containers/vector/92124.cc: New test.
+
+2019-10-16  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/c++config (_GLIBCXX_BUILTIN_IS_SAME_AS): Define to
+       one of __is_same_as or __is_same when available.
+       * include/std/concepts (__detail::__same_as): Use std::is_same_v.
+       * include/std/type_traits (is_same) [_GLIBCXX_BUILTIN_IS_SAME_AS]:
+       Use new macro instead of __is_same_as.
+       (is_same) [!_GLIBCXX_BUILTIN_IS_SAME_AS]: Restore partial
+       specialization.
+       (is_same_v) [_GLIBCXX_BUILTIN_IS_SAME_AS]: Use new macro.
+       (is_same_v) [!_GLIBCXX_BUILTIN_IS_SAME_AS]: Use std::is_same.
+
 2019-10-16  François Dumont  <fdumont@gcc.gnu.org>
 
        * src/c++11/debug.cc (print_field): Replace constness_names <unknown>
        PSTL backend if no TBB present.
        * testsuite/utils/pstl/test_utils.h: Remove check for
        _PSTL_USE_PAR_POLICIES
-       
+
 2019-06-07  Jonathan Wakely  <jwakely@redhat.com>
 
        * testsuite/24_iterators/container_access.cc: Move dg-options before
        Document PSTL linker flags
 
        * doc/xml/manual/using.xml: Add PSTL linker flags to table 3.1.
-       
+
 2019-04-23  Jonathan Wakely  <jwakely@redhat.com>
 
        * include/std/variant (__detail::__variant::_Traits): Make
 
        * include/bits/c++config: Remove explicit PSTL configuration
        macros and use definitions from <pstl/pstl_config.h>.
-       
+
 2019-04-20  Thomas Rodgers <trodgers@redhat.com>
 
        Cleanup algorithm implementations
        (equal): Qualify call to std::equal().
        (partial_sort): Forward execution policy.
        (inplace_merge): Forward execution policy.
-       
+
 2019-04-19  Thomas Rodgers <trodgers@redhat.com>
-       
+
        Improve implementation of parallel equal()
        * include/pstl/algorithm_impl.h
        (__internal::__brick_equal): use "4 iterator" version of
        * include/pstl/glue_algorithm_impl.h
        (std::equal): dispatch to "4 iterator" version of
        __internal::__pattern_equal().
-       
+
 2019-04-17  Jonathan Wakely  <jwakely@redhat.com>
 
        PR libstdc++/90105
        * testsuite/20_util/optional/observers/4.cc: Likewise.
 
 2019-04-12  Thomas Rodgers  <trodgers@redhat.com>
-       
+
        * include/pstl/algorithm_impl.h: Uglify identfiers.
        * include/pstl/numeric_impl.h:  Uglify identfiers.
        * include/pstl/parallel_backend_tbb.h: Uglify identfiers.
        avoid -Wconversion warnings.
 
 2019-03-21  Thomas Rodgers  <trodgers@redhat.com>
-       
+
        * include/Makefile.am (std_header): Add ${std_srcdir}/execution.
        (pstl_srcdir, pstl_builddir, pstl_headers): New variables.
        (allstamped): Add stamp-pstl.