libstdc++: Refactor filesystem::path string conversions
[gcc.git] / libstdc++-v3 / ChangeLog
index 40345cc7044f10c0082d992df6cd34d7ad528cf0..08a2ad3330cbb229b3e259ca4fbfcf7d314c028a 100644 (file)
@@ -1,3 +1,622 @@
+2020-05-23  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/fs_path.h (__detail::_S_range_begin)
+       (__detail::_S_range_end, path::_S_string_from_iter): Replace with
+       overloaded function template __detail::__effective_range.
+       (__detail::__effective_range): New overloaded function template to
+       create a basic_string or basic_string_view for an effective range.
+       (__detail::__value_type_is_char): Use __detail::__effective_range.
+       Do not use remove_const on value type.
+       (__detail::__value_type_is_char_or_char8_t): Likewise.
+       (path::path(const Source&, format))
+       (path::path(const Source&, const locale&))
+       (path::operator/=(const Source&), path::append(const Source&))
+       (path::concat(const Source&)): Use __detail::__effective_range.
+       (path::_S_to_string(InputIterator, InputIterator)): New function
+       template to create a string view if possible, or string otherwise.
+       (path::_S_convert): Add overloads that convert a string returned
+       by __detail::__effective_range. Use if-constexpr to inline conversion
+       logic from all overloads of _Cvt::_S_convert.
+       (path::_S_convert_loc): Add overload that converts a string. Use
+       _S_to_string to avoid allocation when possible.
+       (path::_Cvt): Remove.
+       (path::operator+=(CharT)): Remove indirection through path::concat.
+       * include/experimental/bits/fs_path.h (path::_S_convert_loc): Add
+       overload for non-const pointers, to avoid constructing a std::string.
+       * src/c++17/fs_path.cc (path::_S_convert_loc): Replace conditional
+       compilation with call to _S_convert.
+
+       * include/bits/fs_path.h (__detail::_S_range_begin)
+       (__detail::_S_range_end): Remove unintentional static specifiers.
+       * include/experimental/bits/fs_path.h (__detail::_S_range_begin)
+       (__detail::_S_range_end): Likewise.
+
+       * include/bits/fs_path.h (filesystem::__detail::__is_encoded_char):
+       Replace alias template with variable template. Don't remove const.
+       (filesystem::__detail::__is_path_src): Replace overloaded function
+       template with variable template and specializations.
+       (filesystem::__detail::__is_path_iter_src): Replace alias template
+       with class template.
+       (filesystem::__detail::_Path): Use __is_path_src. Remove support for
+       iterator pairs.
+       (filesystem::__detail::_Path2): New alias template for checking
+       InputIterator requirements.
+       (filesystem::__detail::__constructible_from): Remove.
+       (filesystem::path): Replace _Path<Iter, Iter> with _Path2<Iter>.
+       * testsuite/27_io/filesystem/path/construct/80762.cc: Check with two
+       constructor arguments of void and void* types.
+
+2020-05-21  Matthias Kretz  <kretz@kde.org>
+
+       * testsuite/Makefile.am: Remove dup target_triplet and set tool,
+       allowing runtest to work without arguments.
+       * testsuite/Makefile.in: Regenerate.
+
+2020-05-21  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/93983
+       * include/bits/iterator_concepts.h (__detail::__cpp17_iterator):
+       Reorder constraints to avoid recursion when constructors use
+       iterator_traits (LWG 3420).
+       * testsuite/24_iterators/customization_points/lwg3420.cc: New test.
+
+       * include/experimental/socket (basic_socket::is_open()
+       (basic_socket_acceptor::is_open()): Use _GLIBCXX_NODISCARD macro.
+
+       * include/experimental/bits/net.h (__endpoint, __protocol)
+       (__acceptable_protocol, __inet_protocol): New concepts.
+       (__detail::__is_endpoint): Move trait from <experimental/socket>.
+       (__is_protocol, __is_acceptable_protocol, __is_inet_protocol): New
+       traits.
+       (__endpoint, __protocol, __acceptable_protocol): New variable
+       templates.
+       * include/experimental/socket (__is_endpoint): Move to net.h header.
+       (basic_socket, basic_socket_acceptor): Check requirements.
+
+       * include/experimental/executor (use_future_t::use_future_t()): Fix
+       incorrect noexcept-specifier.
+       * include/experimental/internet (basic_resolver_results): Adjust
+       whitespace.
+       * include/experimental/socket (__basic_socket_impl::release): Add
+       member function.
+       (basic_socket(io_context&, const endpoint_type&)): Fix argument to
+       target constructor.
+       (basic_socket::release(), basic_socket::release(error_code&)): Add
+       missing member functions.
+       (basic_socket::is_open()): Add nodiscard attribute.
+       (basic_socket::close(error_code&)): Pass argument to base function.
+       (basic_socket_acceptor::release())
+       (basic_socket_acceptor::release(error_code&)): Add missing member
+       functions.
+       (basic_socket_acceptor::is_open()): Add nodiscard attribute.
+       (basic_socket_streambuf::error()): Add noexcept.
+       (basic_socket_iostream::error()): Likewise.
+       * testsuite/experimental/net/socket/basic_socket.cc: New test.
+
+       * include/experimental/buffer: Replace typedefs with
+       alias-declarations.
+       * include/experimental/executor: Likewise.
+       * include/experimental/internet: Likewise.
+       * include/experimental/socket: Likewise.
+       * include/experimental/timer: Likewise.
+
+2020-05-19  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/94087
+       * src/c++11/random.cc (__x86_rdseed): Allow fallback function to be
+       passed in.
+       (__x86_rdseed_rdrand): New function that uses rdseed with rdrand
+       fallback.
+       (random_device::_M_init): Use __x86_rdseed_rdrand when both
+       instructions are available.
+       * testsuite/26_numerics/random/random_device/94087.cc: New test.
+
+2020-05-19  Patrick Palka  <ppalka@redhat.com>
+
+       PR c++/66439
+       * testsuite/20_util/pair/astuple/get_neg.cc: Prune "type/value
+       mismatch" messages.
+       * testsuite/20_util/tuple/element_access/get_neg.cc: Likewise.
+
+2020-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR bootstrap/95147
+       * configure: Regenerated.
+
+2020-05-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure: Regenerated.
+
+2020-05-13  Alexandre Oliva <oliva@adacore.com>
+
+       PR libstdc++/77691
+       * include/experimental/memory_resource
+       (__resource_adaptor_imp::do_allocate): Handle max_align_t on
+       x86-vxworks as on x86-solaris.
+       (__resource_adaptor_imp::do_deallocate): Likewise.
+       * testsuite/experimental/memory_resource/new_delete_resource.cc:
+       Drop xfail.
+       (BAD_MAX_ALIGN_T): Define on x86-vxworks as on x86-solaris.
+       (test03): Drop max-align test for char-aligned alloc.
+
+2020-05-08  Ulrich Drepper  <drepper@redhat.com>
+
+       * include/bits/atomic_base.h (atomic_flag): Implement test member
+       function.
+       * include/std/version: Define __cpp_lib_atomic_flag_test.
+       * testsuite/29_atomics/atomic_flag/test/explicit.cc: New file.
+       * testsuite/29_atomics/atomic_flag/test/implicit.cc: New file.
+
+2020-05-07  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/94971 (partial)
+       * include/bits/ranges_algo.h (ranges::__sample_fn): Qualify
+       std::sample using macro to work in parallel mode.
+       (__sort_fn): Likewise for std::sort.
+       (ranges::__nth_element_fn): Likewise for std::nth_element.
+       * include/bits/stl_algobase.h (lexicographical_compare_three_way):
+       Likewise for std::__min_cmp.
+       * include/parallel/algobase.h (lexicographical_compare_three_way):
+       Add to namespace std::__parallel.
+
+       PR c/92472
+       * include/parallel/multiway_merge.h (_GuardedIterator::operator*)
+       (_GuardedIterator::operator _RAIter, _UnguardedIterator::operator*)
+       (_UnguardedIterator::operator _RAIter): Add const qualifier.
+       (operator<(_GuardedIterator&, _GuardedIterator&)
+       (operator<=(_GuardedIterator&, _GuardedIterator&)
+       (operator<(_UnguardedIterator&, _UnguardedIterator&)
+       (operator<=(_UnguardedIterator&, _UnguardedIterator&): Change
+       parameters to const references.
+
+2020-05-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Update.
+       * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
+
+2020-05-06  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/bits/stl_algobase.h (struct _Bit_iterator): New declaration.
+       (std::__fill_a1(_Bit_iterator, _Bit_iterator, const bool&)): Likewise.
+       * include/bits/stl_bvector.h (__fill_bvector): Move outside
+       _GLIBCXX_STD_C namespace.
+       (fill(_Bit_iterator, _Bit_iterator, const bool&)): Likewise and rename
+       into...
+       (__fill_a1): ...this.
+       * testsuite/25_algorithms/fill/bvector/1.cc: New.
+
+2020-05-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
+
+2020-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
+       * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
+       Likewise.
+       * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
+       * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
+       Likewise.
+
+2020-05-06  Martin Liska  <mliska@suse.cz>
+
+       Revert:
+       2020-05-05  Martin Liska  <mliska@suse.cz>
+       PR c/92472
+       * include/parallel/multiway_merge.h:
+       Use const for _Compare template argument.
+
+2020-05-06  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/xml/manual/abi.xml (abi.versioning.history): Document library
+       versions for GCC 9.[123] and 10.1 releases.
+       * doc/html/*: Regenerate.
+
+2020-05-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
+       * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
+       * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
+       * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
+       * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
+       * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
+       * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
+
+2020-05-05  Martin Liska  <mliska@suse.cz>
+
+       PR c/92472
+       * include/parallel/multiway_merge.h:
+       Use const for _Compare template argument.
+
+2020-05-04  Fangrui Song  <maskray@google.com>
+
+       * libsupc++/cxxabi.h (__cxa_finalize): Fix return type.
+
+2020-05-04  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/xml/faq.xml: Use working link for SGI STL FAQ.
+       * doc/html/*: Regenerate.
+
+       PR libstdc++/94906
+       * src/c++17/memory_resource.cc
+       (monotonic_buffer_resource::_Chunk::release): Use size_t for shift
+       operands.
+
+2020-05-04  Nathan Sidwell  <nathan@acm.org>
+
+       PR libstdc++/94747
+       * libsupc++/dyncast.cc (__dynamic_cast): Cast offsetof to
+       ptrdiff_t before negation, to show intent more clearly.
+
+2020-05-04  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/94936
+       * src/c++17/memory_resource.cc (synchronized_pool_resource::_TPools):
+       Add comment about single-threaded behaviour.
+       (synchronized_pool_resource::_TPools::move_nonempty_chunks()): Hoist
+       class member access out of loop.
+       (synchronized_pool_resource::synchronized_pool_resource())
+       (synchronized_pool_resource::~synchronized_pool_resource())
+       (synchronized_pool_resource::release()): Check __gthread_active_p
+       before creating and/or deleting the thread-specific data key.
+       (synchronized_pool_resource::_M_thread_specific_pools()): Adjust
+       assertions.
+       (synchronized_pool_resource::do_allocate(size_t, size_t)): Add fast
+       path for single-threaded case.
+       (synchronized_pool_resource::do_deallocate(void*, size_t, size_t)):
+       Likewise. Return if unable to find a pool that owns the allocation.
+       * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
+       New test.
+       * testsuite/20_util/synchronized_pool_resource/cons_single.cc: New
+       test.
+       * testsuite/20_util/synchronized_pool_resource/release_single.cc: New
+       test.
+
+2020-05-03  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/94933
+       * include/bits/stl_algobase.h (__fill_a1): Make overload for byte types
+       usable in constant expressions.
+       * testsuite/25_algorithms/fill_n/constexpr.cc: Test with bytes and
+       non-scalars.
+
+2020-05-01  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/94901
+       * testsuite/17_intro/badnames.cc: Test values between _E9 and _E24 too.
+
+2020-05-01  Jonathan Wakely  <jwakely@redhat.com>
+           Patrick Palka  <ppalka@redhat.com>
+
+       PR libstdc++/92894
+       * include/bits/iterator_concepts.h (ranges::__cust_imove::_IMove):
+       Add trait to determine return type and an alias for it.
+       (ranges::__cust_imove::_IMove::operator()): Use __result instead of
+       deduced return type.
+       (iter_rvalue_reference_t): Use _IMove::__type instead of checking
+       the result of ranges::iter_move.
+       (__detail::__indirectly_readable_impl): Use iter_rvalue_reference_t
+       instead of checking the result of ranges::iter_move.
+       * testsuite/24_iterators/customization_points/92894.cc: New test.
+       * testsuite/24_iterators/indirect_callable/92894.cc: New test.
+
+2020-05-01  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/94901
+       * include/std/type_traits (__is_complete_or_unbounded): Replace
+       BADNAME _T with _Tp.
+       * testsuite/17_intro/badnames.cc: New test.
+
+2020-04-30  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/89510
+       * include/bits/alloc_traits.h (allocator_traits::_S_construct)
+       (allocator_traits::_S_destroy)
+       (allocator_traits<allocator<T>>::construct): Use traits in
+       noexcept-specifiers.
+       * include/bits/allocator.h (allocator<void>::construct)
+       (allocator<void>::destroy): Likewise.
+       * include/ext/malloc_allocator.h (malloc_allocator::construct)
+       (malloc_allocator::destroy): Likewise.
+       * include/ext/new_allocator.h (new_allocator::construct)
+       (new_allocator::destroy): Likewise.
+       * testsuite/20_util/allocator/89510.cc: New test.
+       * testsuite/ext/malloc_allocator/89510.cc: New test.
+       * testsuite/ext/new_allocator/89510.cc: New test.
+
+2020-04-29  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/94854
+       * include/bits/basic_string.tcc: Update comment about explicit
+       instantiations.
+
+2020-04-28  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/91480
+       * include/bits/allocator.h (__cpp_lib_allocator_is_always_equal):
+       Remove non-standard macro.
+       * include/bits/stl_iterator.h (__cpp_lib_constexpr_iterator): Define
+       to indicate P1032R1 support.
+       * include/bits/stl_pair.h (__cpp_lib_constexpr_utility): Likewise.
+       * include/std/string_view (__cpp_lib_constexpr_string_view): Likewise.
+       * include/std/tuple (__cpp_lib_constexpr_tuple): Likewise.
+       * include/std/version (__cpp_lib_allocator_is_always_equal): Remove.
+       (__cpp_lib_constexpr_iterator, __cpp_lib_constexpr_string_view)
+       (__cpp_lib_constexpr_tuple, __cpp_lib_constexpr_utility): Define.
+       * testsuite/20_util/function_objects/constexpr_searcher.cc: Check
+       feature test macro.
+       * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: Likewise.
+       * testsuite/21_strings/basic_string_view/operations/copy/char/
+       constexpr.cc: Likewise.
+       * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
+
+       PR libstdc++/94831
+       * include/bits/alloc_traits.h (_S_construct): Restore placement
+       new-expression for C++11/14/17 and call std::construct_at directly
+       for C++20.
+       * include/bits/stl_construct.h (_Construct): Revert to non-constexpr
+       function returning void.
+       * testsuite/20_util/specialized_algorithms/
+       uninitialized_value_construct/94831.cc: New test.
+       * testsuite/23_containers/vector/cons/94831.cc: New test.
+
+2020-04-28  Patrick Palka  <ppalka@redhat.com>
+
+       LWG 3433 subrange::advance(n) has UB when n < 0
+       * include/std/ranges (subrange::prev): Fix typo.
+       (subrange::advance): Handle a negative argument as per the proposed
+       resolution of LWG 3433.
+       * testsuite/std/ranges/subrange/lwg3433.cc: New test.
+
+2020-04-28  Jonathan Wakely  <jwakely@redhat.com>
+           Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR c++/94759
+       * include/std/coroutine: Implement handing for non-
+       class coroutine return types.
+
+2020-04-24  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/experimental/executor (service_already_exists): Make default
+       constructor public (LWG 3414).
+       * testsuite/experimental/net/execution_context/make_service.cc: Check
+       the service_already_exists can be default constructed.
+
+2020-04-24  Kamlesh Kumar  <kamleshbhalui@gmail.com>
+           Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/90415
+       PR libstdc++/92156
+       * include/std/any (any): Rename template parameters for consistency
+       with the standard.
+       (any::_Decay): Rename to _Decay_if_not_any.
+       (any::any(T&&):: Remove is_constructible from constraints. Remove
+       non-standard overload.
+       (any::any(in_place_type_t<T>, Args&&...))
+       (any::any(in_place_type_t<T>, initializer_list<U>, Args&&...))
+       (any::emplace(Args&&...))
+       (any::emplace(initializer_list<U>, Args&&...)):
+       Use decay_t instead of _Decay.
+       * testsuite/20_util/any/cons/90415.cc: New test.
+       * testsuite/20_util/any/cons/92156.cc: New Test.
+       * testsuite/20_util/any/misc/any_cast_neg.cc: Make dg-error directives
+       more robust.
+       * testsuite/20_util/any/modifiers/92156.cc: New test.
+
+2020-04-23  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/xml/manual/status_cxx2020.xml: Update C++20 status table.
+       * doc/html/*: Regenerate.
+
+       * include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Revert
+       value for C++17 to 201803L because P0858R0 is supported for C++17.
+       * include/std/version (__cpp_lib_array_constexpr): Likewise.
+       * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
+       Check for value corresponding to P0031R0 features being tested.
+       * testsuite/23_containers/array/requirements/constexpr_iter.cc:
+       Check for value corresponding to P0858R0 features being tested.
+
+       * include/std/version (__cpp_lib_three_way_comparison): Define for
+       freestanding builds.
+
+2020-04-23  Thomas Rodgers  <rodgert@appliantology.com>
+
+       * include/experimental/net/executor (system_context): Mark
+       system_context::system_context() = delete.
+       * testsuite/experimental/net/executor/1.cc: Add new
+       test to check system_context is not default constructible.
+
+2020-04-23  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * include/std/coroutine: Update the inline namespace to __n4861.
+       Add the __cpp_lib_coroutine define, set to 201902L.
+       * include/std/version: Add __cpp_lib_coroutine, set to 201902L.
+
+2020-04-22  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/std/execution (__cpp_lib_execution): Define to indicate
+       support for P0024R2 and P1001R2.
+       * include/std/version (__cpp_lib_execution): Define.
+       * testsuite/25_algorithms/pstl/feature_test.cc: Only test macro
+       defined by <algorithm>, move other tests to new tests ...
+       * testsuite/25_algorithms/pstl/feature_test-2.cc: New test.
+       * testsuite/25_algorithms/pstl/feature_test-3.cc: New test.
+       * testsuite/25_algorithms/pstl/feature_test-4.cc: New test.
+       * testsuite/25_algorithms/pstl/feature_test-5.cc: New test.
+
+       * include/bits/stl_iterator.h (__cpp_lib_array_constexpr): Define
+       different values for C++17 and C++20, to indicate different feature
+       sets. Update value for C++20 to indicate P1032R1 support.
+       * include/std/version (__cpp_lib_array_constexpr): Likewise.
+       * testsuite/23_containers/array/comparison_operators/constexpr.cc:
+       Check feature test macro.
+       * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
+       New test.
+       * testsuite/23_containers/array/requirements/constexpr_fill.cc: Check
+       feature test macro.
+       * testsuite/23_containers/array/requirements/constexpr_iter.cc: Test
+       in C++17 mode and check feature test macro.
+
+       * include/std/utility (__cpp_lib_constexpr_algorithms): Do not define
+       here.
+       * testsuite/20_util/exchange/constexpr.cc: Do not expect macro to be
+       defined by <utility>.
+
+       * include/std/functional (__cpp_lib_concepts): Update macro value to
+       indicate P1964R2 support.
+       * include/std/version (__cpp_lib_concepts): Likewise.
+       * testsuite/std/concepts/1.cc: Adjust expected value.
+       * testsuite/std/concepts/2.cc: Likewise.
+
+       * include/std/functional (__cpp_lib_constexpr_invoke): Rename to
+       __cpp_lib_constexpr_functional.
+       * include/std/version (__cpp_lib_constexpr_invoke): Likewise.
+       * testsuite/20_util/function_objects/invoke/constexpr.cc: Adjust.
+
+       * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define to
+       indicate P1006R1 support.
+       (__cpp_lib_to_address): Define to indicate P0653R2 support.
+       * include/bits/range_access.h (__cpp_lib_ssize): Define to indicate
+       P1227R2 support.
+       * include/bits/ranges_algo.h (__cpp_lib_shift): Define to indicate
+       P0769R2 support.
+       * include/std/atomic (__cpp_lib_atomic_float): Define to indicate
+       P0020R6 support.
+       * include/std/memory (__cpp_lib_assume_aligned): Define to indicate
+       P1007R3 support.
+       * include/std/memory_resource (__cpp_lib_polymorphic_allocator):
+       Define to indicate P0339R6 support.
+       * include/std/string_view (__cpp_lib_starts_ends_with): Define to
+       indicate P0457R2 support.
+       * include/std/type_traits (__cpp_lib_is_nothrow_convertible): Define
+       to indicate P0758R1 support.
+       (__cpp_lib_remove_cvref): Define to indicate P0550R2 support.
+       (__cpp_lib_type_identity): Define to indicate P0887R1 support.
+       * include/std/version (__cpp_lib_atomic_float)
+       (__cpp_lib_is_nothrow_convertible, __cpp_lib_remove_cvref)
+       (__cpp_lib_type_identity, __cpp_lib_assume_aligned)
+       (__cpp_lib_constexpr_memory, __cpp_lib_polymorphic_allocator)
+       (__cpp_lib_shift, __cpp_lib_ssize, __cpp_lib_starts_ends_with)
+       (__cpp_lib_to_address): Define.
+       * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line number.
+
+       * include/bits/stl_map.h (__cpp_lib_map_insertion): Remove old
+       macro.
+       * include/bits/unordered_map.h (__cpp_lib_unordered_map_insertion):
+       Likewise.
+       * include/std/version (__cpp_lib_map_insertion)
+       (__cpp_lib_unordered_map_insertion): Remove.
+
+       * include/std/condition_variable (__cpp_lib_jthread): Remove
+       redundant definition.
+       * include/std/stop_token (__cpp_lib_jthread): Update macro value to
+       indicate P1869R1 support.
+       * include/std/version (__cpp_lib_jthread): Update value.
+       * testsuite/30_threads/condition_variable_any/stop_token/1.cc: Check
+       for updated macro value.
+       * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
+       Likewise.
+       * testsuite/30_threads/jthread/1.cc: Likewise.
+       * testsuite/30_threads/jthread/2.cc: Likewise.
+       * testsuite/30_threads/stop_token/1.cc: Likewise.
+       * testsuite/30_threads/stop_token/2.cc: Likewise.
+
+       * testsuite/21_strings/basic_string/erasure.cc: Check for
+       __cpp_lib_erase_if macro.
+       * testsuite/23_containers/deque/erasure.cc: Add header name to #error
+       messages.
+       * testsuite/23_containers/forward_list/erasure.cc: Likewise.
+       * testsuite/23_containers/list/erasure.cc: Likewise.
+       * testsuite/23_containers/map/erasure.cc: Likewise.
+       * testsuite/23_containers/set/erasure.cc: Likewise.
+       * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
+       * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
+       * testsuite/23_containers/vector/erasure.cc: Likewise.
+
+2020-04-21  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/stl_iterator.h (__normal_iterator): Use synth-three-way
+       to define operator<=>.
+       * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: New test.
+
+       * doc/Makefile.am (xml_sources_manual): Add missing XML files.
+       * doc/Makefile.in: Regenerate.
+       * doc/xml/manual/status_cxx1998.xml: Refer to "this section" instead
+       of "this page".
+       * doc/xml/manual/status_cxx2011.xml: Formatting and other corrections
+       to the C++11 status table.
+       * doc/xml/manual/status_cxx2014.xml: Replace list of C++14 feature
+       proposals with table matching contents of the C++14 standard.
+       * doc/xml/manual/status_cxx2017.xml: Add table matching contents of
+       the C++17 standard.
+       * doc/html/*: Regenerate.
+
+       PR c++/94149
+       * include/std/type_traits (__is_nt_constructible_impl): Add partial
+       specializations for bounded arrays with non-empty initializers.
+       * testsuite/20_util/is_nothrow_constructible/value_c++20.cc: New test.
+
+2020-04-20  Thomas Rodgers  <trodgers@redhat.com>
+
+       * testsuite/lib/libstdc++.exp: Add additional_flags=
+       -DTBB_SUPRESS_DEPRECATED_MESSAGES=1 to suppress warnings when
+       compiling with a newer Thread Building Blocks.
+
+2020-04-20  Jonathan Wakely  <jwakely@redhat.com>
+
+       * testsuite/24_iterators/istreambuf_iterator/sentinel.cc: New test.
+
+       * testsuite/20_util/is_constructible/51185.cc: Make test class a
+       non-aggregate so that the test verifies the same thing in all -std
+       modes.
+       * testsuite/20_util/is_constructible/value-2.cc: Adjust expected
+       results for some types when paren-init for aggregates is supported.
+
+       * include/std/version (__cpp_lib_three_way_comparison): Update value.
+       * libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
+       (__detail::__synth3way): Add noexcept-specifier.
+
+       * include/bits/stl_map.h (map): Define operator<=> and remove
+       operator< for C++20.
+       * include/bits/stl_multimap.h (multimap): Likewise.
+       * include/bits/stl_multiset.h (multiset): Likewise.
+       * include/bits/stl_set.h (set): Likewise.
+       * include/bits/stl_tree.h (_Rb_tree): Likewise.
+       (_Rb_tree_iterator, _Rb_tree_const_iterator): Remove redundant
+       operator!= for C++20.
+       * include/debug/map.h (__gnu_debug::map): Define operator<=> for C++20.
+       * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
+       * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
+       * include/debug/set.h (__gnu_debug::set): Likewise.
+       * testsuite/23_containers/map/operators/cmp_c++20.cc: New test.
+       * testsuite/23_containers/multimap/operators/cmp_c++20.cc: New test.
+       * testsuite/23_containers/multiset/operators/cmp_c++20.cc: New test.
+       * testsuite/23_containers/set/operators/cmp_c++20.cc: New test.
+
+2020-04-20  Matthias Kretz  <kretz@kde.org>
+
+       * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose.
+
+2020-04-19  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/stl_queue.h (queue): Define operator<=> for C++20.
+       * include/bits/stl_stack.h (stack): Likewise.
+       * testsuite/23_containers/queue/cmp_c++20.cc: New test.
+       * testsuite/23_containers/stack/cmp_c++20.cc: New test.
+
+       * include/bits/unordered_map.h (unordered_map, unordered_multimap):
+       Remove redundant operator!= for C++20.
+       * include/bits/unordered_set.h (unordered_set, unordered_multiset):
+       Likewise.
+       * include/debug/unordered_map (unordered_map, unordered_multimap):
+       Likewise.
+       * include/debug/unordered_set (unordered_set, unordered_multiset):
+       Likewise.
+
+       PR other/94629
+       * include/debug/formatter.h (_Error_formatter::_Parameter): Fix
+       redundant assignment in constructor.
+
 2020-04-18  Jonathan Wakely  <jwakely@redhat.com>
 
        * include/std/chrono (duration, time_point): Define operator<=> and