dwww Home | Show directory contents | Find package

2022-08-19  Release Manager

        * GCC 12.2.0 released.

2022-08-05  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-08-04  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/string_view (basic_string_view(Range&&)): Add
        explicit as per P2499R0.
        * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
        Adjust implicit conversions. Check implicit conversions fail.
        * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
        Likewise.

2022-08-05  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-08-04  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/expected (unexpected::_M_val): Rename to _M_unex.
        (bad_expected_access::_M_val): Likewise.

2022-08-05  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-08-04  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
        value to 202207L.
        * include/std/version (__cpp_lib_ios_noreplace): Likewise.
        * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
        for new value.
        * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
        Likewise.

2022-08-03  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-28  Jonathan Wakely  <jwakely@redhat.com>

        * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
        current() returning _At_path.
        (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
        * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
        (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
        * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
        current() returning _At_path.
        (_Dir::_Dir, _Dir::open_subdir): Adjust.

2022-08-03  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-07-29  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104443
        * include/bits/stl_iterator.h (common_iterator::operator->):
        Change return type to just auto.

2022-08-03  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-07-12  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/106248
        * include/std/istream [C++17] (operator>>(istream&, char*)):
        Set eofbit if we stopped extracting at EOF.
        * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
        New test.
        * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
        New test.

2022-08-03  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-07-01  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/fs_ops.h: Add nodiscard to all pure functions.
        * include/experimental/bits/fs_ops.h: Likewise.
        * testsuite/27_io/filesystem/operations/all.cc: Do not discard
        results of absolute and canonical.
        * testsuite/27_io/filesystem/operations/absolute.cc: Cast
        discarded result to void.
        * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
        * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
        * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
        * testsuite/27_io/filesystem/operations/read_symlink.cc:
        Likewise.
        * testsuite/27_io/filesystem/operations/status.cc: Likewise.
        * testsuite/27_io/filesystem/operations/symlink_status.cc:
        Likewise.
        * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
        Likewise.
        * testsuite/experimental/filesystem/operations/canonical.cc:
        Likewise.
        * testsuite/experimental/filesystem/operations/exists.cc:
        Likewise.
        * testsuite/experimental/filesystem/operations/is_empty.cc:
        Likewise.
        * testsuite/experimental/filesystem/operations/read_symlink.cc:
        Likewise.
        * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
        Likewise.

2022-08-03  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-16  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105995
        * include/bits/basic_string.h (_M_use_local_data): Initialize
        the entire SSO buffer.
        * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.

2022-08-03  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-14  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/new_allocator.h: Fix indentation.
        * include/ext/malloc_allocator.h: Likewise.

2022-08-03  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-14  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105957
        * include/bits/allocator.h (allocator::allocate): Check for
        overflow in constexpr allocation.
        * testsuite/20_util/allocator/105975.cc: New test.

2022-08-03  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-10  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105844
        * include/experimental/numeric (experimental::gcd): Simplify
        assertions. Use __abs_r instead of __absu.
        (experimental::lcm): Likewise. Remove use of __detail::__lcm so
        overflow can be detected.
        * include/std/numeric (__detail::__absu): Rename to __abs_r and
        change to allow signed result type, so overflow can be detected.
        (__detail::__lcm): Remove.
        (gcd): Simplify assertions. Use __abs_r instead of __absu.
        (lcm): Likewise. Remove use of __detail::__lcm so overflow can
        be detected.
        * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
        * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
        * testsuite/26_numerics/gcd/105844.cc: New test.
        * testsuite/26_numerics/lcm/105844.cc: New test.

2022-07-26  Thomas Rodgers  <trodgers@redhat.com>

        Backported from master:
        2022-07-26  Thomas Rodgers  <trodgers@redhat.com>

        * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.

2022-07-22  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-28  Jonathan Wakely  <jwakely@redhat.com>

        * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
        Always store pathname if we don't have openat or unlinkat,
        because the full path is needed to open sub-directories and
        remove entries.

2022-07-22  Alexandre Oliva  <oliva@adacore.com>

        Backported from master:
        2022-06-27  Alexandre Oliva  <oliva@adacore.com>

        * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
        _GLIBCXX_HAVE_OPENAT.

2022-07-22  Alexandre Oliva  <oliva@adacore.com>

        Backported from master:
        2022-06-24  Alexandre Oliva  <oliva@adacore.com>

        * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
        openat.
        * configure, config.h.in: Rebuilt.
        * src/filesystem/dir-common.h (openat): Use ::openat if
        _GLIBCXX_HAVE_OPENAT.
        * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
        _GLIBCXX_HAVE_OPENAT.

2022-07-22  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-06  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/stacktrace: Do not include <cxxabi.h>.
        (__cxa_demangle): Declare.

2022-07-21  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-07-20  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/100823
        * include/bits/stl_iterator.h (common_iterator): Define move
        constructor and move assignment operator.
        (common_iterator::_M_assign): New function implementing
        assignment.
        (common_iterator::operator=): Use _M_assign.
        (common_iterator::_S_valueless): New constant.
        * testsuite/24_iterators/common_iterator/100823.cc: New test.

2022-07-21  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-07-20  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/stl_iterator.h (common_iterator): Fix incorrect
        uses of is_nothrow_assignable_v. Fix inconsistent constraints on
        friend declaration. Do not move argument in copy constructor.
        * testsuite/24_iterators/common_iterator/1.cc: Check for
        noexcept constructibnle/assignable.

2022-07-21  Nathan Sidwell  <nathan@acm.org>

        Backported from master:
        2022-05-26  Nathan Sidwell  <nathan@acm.org>

        * include/bits/hashtable.h: Include required headers.
        * include/bits/hashtable_policy.h: Likewise.
        * include/bits/stl_heap.h: Likewise.
        * include/bits/stl_iterator_base_funcs.h: Likewise.

2022-07-21  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-30  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/utility.h: Fix comment typos.

2022-07-21  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-28  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
        functions are available.

2022-07-21  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-23  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/26_numerics/random/random_device/entropy.cc: Use
        numeric_limits<unsigned>::digits.

2022-07-21  Marco Falke  <falke.marco@gmail.com>

        Backported from master:
        2022-07-19  Marco Falke  <falke.marco@gmail.com>

        * include/std/charconv (__from_chars_alnum_to_val): Replace
        implicit conversion from int to unsigned char with explicit
        cast.

2022-07-21  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-30  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/88881
        * src/filesystem/ops.cc (has_trailing_slash): New helper
        function.
        (fs::status): Strip trailing slashes.
        (fs::symlink_status): Likewise.
        * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
        Clean the environment before each test and use TMP instead of
        TMPDIR so the test passes on Windows.

2022-07-21  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-10  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105880
        * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
        prevent destruction during termination.
        (__eh_globals_init::_M_init): Replace with static member _S_init.
        (__cxxabiv1::__cxa_get_globals_fast): Update.
        (__cxxabiv1::__cxa_get_globals): Likewise.

2022-07-07  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-07-01  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/106162
        * include/Makefile.am (largefile-config.h): Add
        stamp-${host_alias} prerequisite.
        * include/Makefile.in: Regenerate.

2022-07-07  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-23  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
        rmdir to remove directories.
        * testsuite/experimental/filesystem/iterators/error_reporting.cc:
        Likewise.

2022-06-14  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-06-13  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/atomic (__atomic_val_t): Use __type_identity_t
        instead of atomic<T>::value_type, as per LWG 3220.
        * testsuite/29_atomics/atomic/lwg3220.cc: New test.

2022-06-14  Mark Mentovai  <mark@mentovai.com>

        Backported from master:
        2022-06-13  Mark Mentovai  <mark@mentovai.com>

        * include/experimental/bits/fs_path.h (__detail::__null_terminated):
        Rename to __nul_terminated to avoid colliding with a macro in
        Apple's SDK.

2022-06-08  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-27  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105671
        * include/std/sstream (basic_stringbuf::_M_high_mark): Add
        always_inline attribute.

2022-06-08  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-26  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105681
        * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
        Limit ga_sizes array to values that fit in size_t.
        * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
        (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
        (sfmt216091_64): Do not declare.

2022-06-08  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-19  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/basic_string.h: Do not include <ext/atomicity.h>
        here.
        * include/bits/cow_string.h: Include it here.

2022-05-27  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-26  Jonathan Wakely  <jwakely@redhat.com>

        * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
        lookup for ios_errc and future_errc check versioned namespace.
        (StdAtomicPrinter): Strip versioned namespace from typename.

2022-05-27  François Dumont  <fdumont@gcc.gnu.org>

        Backported from master:
        2022-05-26  François Dumont  <fdumont@gcc.gnu.org>

        * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
        Strip typename from version namespace.

2022-05-27  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-26  Jonathan Wakely  <jwakely@redhat.com>

        * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
        versioned namespace from the template argument too.

2022-05-27  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-26  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
        Add 'constexpr' as per LWG 3643.
        * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.

2022-05-27  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-19  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/memory_resource (polymorphic_allocator): Add
        non-template equality operator, as proposed for LWG 3683.
        * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.

2022-05-27  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-20  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
        Run fewer iterations for simulator targets.
        * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
        Likewise.
        * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
        Likewise.
        * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
        Likewise.
        * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
        Likewise.
        * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
        Likewise.
        * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
        Likewise.

2022-05-27  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-17  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/20_util/expected/synopsis.cc: Skip for versioned
        namespace.
        * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.

2022-05-27  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-13  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/mofunc_impl.h: Fix doxygen command.

2022-05-27  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-13  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/future (launch): Make operators noexcept.

2022-05-16  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-16  Jonathan Wakely  <jwakely@redhat.com>

        * doc/xml/manual/prerequisites.xml: Fix attributes for external
        hyperlink.
        * doc/html/manual/setup.html: Regenerate.

2022-05-16  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-16  Jonathan Wakely  <jwakely@redhat.com>

        * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
        * doc/html/*: Regenerate.

2022-05-16  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-16  Jonathan Wakely  <jwakely@redhat.com>

        * doc/xml/manual/intro.xml: Include new chapter.
        * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
        * doc/xml/manual/status_cxx2023.xml: New file.
        * doc/html/*: Regenerate.

2022-05-16  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-16  Jonathan Wakely  <jwakely@redhat.com>

        * doc/html/manual/status.html: Regenerate.
        * doc/xml/manual/status_cxx2020.xml: Fix supported version for
        C++20 bit operations.

2022-05-13  Alexandre Oliva  <oliva@adacore.com>

        Backported from master:
        2022-05-06  Alexandre Oliva  <oliva@adacore.com>

        * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
        for double, long long, and 64-bit long intrinsic types.
        [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
        preexisting long double diagnostic, adjust no-VSX double
        diagnostic to cover 64-bit long double as well.

2022-05-10  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-10  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105284
        * include/std/iosfwd: Add declarations for <spanstream> class
        templates and typedefs.
        * include/std/spanstream (basic_spanbuf, basic_ispanstream)
        (basic_ospanstream, basic_spanstream): Remove default template
        arguments.
        * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
        declarations.
        * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
        default arguments.

2022-05-10  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-10  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105284
        * include/std/iosfwd: Add declarations for <synstream> class
        templates and typedefs.
        * include/std/syncstream (basic_syncbuf, basic_osyncstream):
        Remove default template arguments.
        * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
        * testsuite/27_io/headers/iosfwd/types.cc: New test.

2022-05-09  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-06  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104731
        * testsuite/27_io/filesystem/iterators/error_reporting.cc:
        Use a trailing char array as storage for dirent::d_name.

2022-05-06  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-05-06  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105502
        * include/bits/random.tcc
        (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
        Update state when __state_avail is false.
        * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
        Check that deserialized object equals serialized one.

2022-05-06  Patrick Palka  <ppalka@redhat.com>

        Backported from master:
        2022-05-02  Patrick Palka  <ppalka@redhat.com>

        PR libstdc++/103911
        * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
        two delimeters for the exponent part in the form of a possibly
        NULL string of length two.  Don't use std::tolower.
        (pattern): Adjust calls to find_end_of_float accordingly.

2022-05-06  Alexandre Oliva  <oliva@adacore.com>

        Backported from master:
        2022-05-03  Alexandre Oliva  <oliva@adacore.com>

        PR c++/105324
        * testsuite/20_util/from_chars/pr105324.cc: Guard test body
        with conditional for floating-point overloads of from_char.

2022-05-06  Release Manager

        * GCC 12.1.0 released.

2022-05-02  Patrick Palka  <ppalka@redhat.com>

        Backported from master:
        2022-05-02  Patrick Palka  <ppalka@redhat.com>

        PR libstdc++/105441
        * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
        Also accept 'P' as the start of the exponent.
        * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.

2022-04-29  Jonathan Wakely  <jwakely@redhat.com>

        Backported from master:
        2022-04-29  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105417
        * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
        Regenerate.
        * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
        Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
        symbols as aliases for corresponding symbols without abi-tag.

2022-04-29  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.

2022-04-28  Jonathan Wakely  <jwakely@redhat.com>

        * doc/xml/manual/status_cxx1998.xml: Refer to GCC 12 not
        mainline.
        * doc/xml/manual/status_cxx2011.xml: Likewise.
        * doc/xml/manual/status_cxx2014.xml: Likewise.
        * doc/xml/manual/status_cxx2017.xml: Likewise.
        * doc/xml/manual/status_cxx2020.xml: Likewise.
        * doc/xml/manual/status_cxxtr1.xml: Likewise.
        * doc/xml/manual/status_cxxtr24733.xml: Likewise.
        * doc/html/manual/status.html: Regenerate.

2022-04-28  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/99290
        * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
        directory_iterator constructor, and check on each iteration.
        * src/filesystem/ops.cc (fs::copy): Likewise.
        * testsuite/27_io/filesystem/operations/copy.cc: Check for
        errors during recursion.
        * testsuite/experimental/filesystem/operations/copy.cc:
        Likewise.

2022-04-28  François Dumont  <fdumont@gcc.gnu.org>

        * config/abi/pre/gnu-versioned-namespace.ver: Remove
        std::random_device::* pattern.

2022-04-27  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/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/powerpc-linux-gnu/baseline_symbols.txt: Update.
        * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
        * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.

2022-04-27  Jonathan Wakely  <jwakely@redhat.com>

        * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
        support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
        (StdAtomicPrinter): New printer.
        (build_libstdcxx_dictionary): Register new printer.
        * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
        * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
        pointers.

2022-04-26  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
        constructor for constant initialization from nullptr_t.
        * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
        Check for new constructor.

2022-04-26  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/fs_path.h (hash<filesystem::path>): Define.
        * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
        Check std::hash specialization.

2022-04-25  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
        conditionally.
        * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
        Define for C++23.
        (default_delete, default_delete<T[]>, __uniq_ptr_impl)
        (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
        functions.
        * include/std/version (__cpp_lib_constexpr_memory): Define new
        value for C++23.
        * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
        * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
        * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
        * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
        * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
        * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
        New test.

2022-04-25  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105375
        * include/std/future (packaged_task): Add deduction guides.
        * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.

2022-04-25  Philipp Fent  <fent@in.tum.de>

        * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
        Rename as iterator.
        (StdInitializerListPrinter): Define new printer.
        (build_libstdcxx_dictionary): Register new printer.
        * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
        initializer_list.

2022-04-22  Thomas W Rodgers  <trodgers@redhat.com>

        PR libstdc++/102994
        * include/bits/atomic_base.h (atomic_flag::notify_one,
        notify_all): Remove const qualification.
        (__atomic_base::notify_one, notify_all): Likewise.
        * include/std/atomic (atomic<bool>::notify_one, notify_all):
        Likewise.
        (atomic::notify_one, notify_all): Likewise.
        (atomic<T*>::notify_one, notify_all): Likewise.
        (atomic_notify_one, atomic_notify_all): Likewise.
        * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
        to account for change in notify_one/notify_all signature.

2022-04-21  Patrick Palka  <ppalka@redhat.com>

        * include/std/charconv (__from_chars_alnum_to_val_table):
        Simplify initialization of __lower/__upper_letters.
        (__from_chars_alnum_to_val): Default the template parameter to
        false.
        * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
        assume the uppercase and lowercase letters are contiguous.
        (__floating_from_chars_hex): Likewise.

2022-04-21  Patrick Palka  <ppalka@redhat.com>

        PR c++/105297
        PR c++/105322
        * include/std/charconv (__from_chars_alnum_to_val): Make
        initializer for __table dependent in an artificial way.

2022-04-21  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105324
        * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
        Remove assertion.
        * testsuite/20_util/from_chars/pr105324.cc: New test.

2022-04-20  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
        Check correct feature test macro.

2022-04-20  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/93602
        * doc/xml/manual/prerequisites.xml: Document libiconv
        workarounds.
        * doc/html/manual/setup.html: Regenerate.
        * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
        * src/Makefile.in: Regenerate.

2022-04-19  Patrick Palka  <ppalka@redhat.com>

        * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
        define.
        (__floating_to_chars_shortest): Add __builtin_unreachable calls to
        squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
        warnings.
        (__floating_to_chars_precision): Likewise.

2022-04-19  Philipp Fent  <fent@in.tum.de>

        * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
        * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.

2022-04-19  Jonathan Wakely  <jwakely@redhat.com>

        * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
        * configure: Regenerate.

2022-04-18  Patrick Palka  <ppalka@redhat.com>

        * include/std/charconv (__from_chars_pow2_base): Manually
        unroll the first iteration of the main loop and simplify
        accordingly.

2022-04-15  Patrick Palka  <ppalka@redhat.com>

        PR libstdc++/104858
        * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
        __first twice at the start.
        * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.

2022-04-15  Patrick Palka  <ppalka@redhat.com>

        * include/std/charconv (__from_chars_alnum_to_val_table): Define.
        (__from_chars_alnum_to_val): Define.
        (__from_chars_binary): Rename to ...
        (__from_chars_pow2_base): ... this.  Generalize to handle any
        power-of-two base using __from_chars_alnum_to_val.
        (__from_chars_digit): Optimize digit recognition to a single
        test instead of two tests.  Use [[__unlikely___]] attribute.
        (__from_chars_alpha_to_num): Remove.
        (__from_chars_alnum): Use __from_chars_alnum_to_val.  Use a
        nested loop for the overflow case.  Maintain a lower bound
        on the number of available bits in the result and use it to
        omit the overflow check.
        (from_chars): Adjust appropriately.
        * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
        (__floating_from_chars_hex): Use __from_chars_alnum_to_val
        to recognize a hex digit instead.

2022-04-14  Palmer Dabbelt  <palmer@rivosinc.com>

        * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
        for RISC-V.
        * configure: Regenerate.

2022-04-14  Jonathan Wakely  <jwakely@redhat.com>

        * doc/xml/manual/intro.xml: Fix comment.

2022-04-14  Jonathan Wakely  <jwakely@redhat.com>

        * include/precompiled/stdc++.h: Include <stacktrace> and
        <stdatomic.h> for C++23.

2022-04-14  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105269
        * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
        Define.
        * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
        Define.
        * include/std/optional (__cpp_lib_optional): Define new value
        for C++23.
        (__cpp_lib_monadic_optional): Remove.
        * include/std/version (__cpp_lib_constexpr_vector): Define.
        (__cpp_lib_stdatomic_h): Define.
        (__cpp_lib_optional): Define new value for C++23.
        (__cpp_lib_monadic_optional): Remove.
        * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
        * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
        * testsuite/20_util/optional/version.cc: Likewise.
        * testsuite/23_containers/vector/cons/constexpr.cc: Check
        feature test macro.
        * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
        Likewise.
        * testsuite/20_util/optional/monadic/version.cc: Removed.
        * testsuite/23_containers/vector/requirements/version.cc: New test.
        * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.

2022-04-12  Jonathan Wakely  <jwakely@redhat.com>

        * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
        * config.h.in: Regenerate.
        * configure: Regenerate.

2022-04-12  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/stacktrace (basic_stacktrace::current): Reallocate
        a smaller container if the unused capacity is larger than the
        used size.

2022-04-12  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
        or _Impl::_M_assign to initialize elements in allocated storage.
        (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
        _Impl::_M_destroy.
        (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
        (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
        function.
        (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
        new element using allocator.
        (basic_stacktrace::_Impl::_M_clone): New function.
        (basic_stacktrace::_Impl::_M_xclone): New function.
        (basic_stacktrace::_Impl::_M_assign): New function.

2022-04-12  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
        Use nothrow new instead of try block for std::allocator.
        (basic_stacktrace::_Impl::_M_deallocate): Use delete for
        std::allocator.

2022-04-12  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/stacktrace (basic_stacktrace::current): Replace
        calls to _M_reserve and _S_curr_cb with call to _M_prepare.
        Check return value of backtrace_simple when max depth given.
        (basic_stacktrace::_M_reserve): Remove.
        (basic_stacktrace::_S_curr_cb): Remove.
        (basic_stacktrace::_M_prepare(size_type)): New function to
        reserve initial capacity and return callback.
        (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
        and remove redundant zeroing of _M_frames and _M_capacity.
        (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
        attribute. Assign _Impl instead of swapping.
        * testsuite/19_diagnostics/stacktrace/current.cc: New test.

2022-04-11  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
        Change [[unlikely]] attribute to [[likely]].

2022-04-11  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105031
        * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
        Fix allocator usage in constructors.
        (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
        try to reallocate using const allocator.
        (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
        if-constexpr with non-constant condition. Do not allocate new
        storage if allocator propagates. Do not set _M_size if
        allocation fails.
        (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
        assertion that non-propagating allocators are equal.
        * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.

2022-04-11  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/stacktrace (basic_stacktrace::current): Duplicate
        implementation into each overload. Add noinline attribute and
        skip current frame.
        (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
        (basic_stacktrace::_S_curr_cb()): New function defining lambda.
        (basic_stacktrace::_Impl::_S_max_size): New function defining
        maximum size in terms of allocator and size_type.
        (basic_stacktrace::_Impl::_M_allocate): Check against
        max_size().
        * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
        for non-constexpr checks. Check line number is correct.

2022-04-11  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/20_util/stacktrace/entry.cc: Moved to...
        * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
        * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
        * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
        * testsuite/20_util/stacktrace/version.cc: Moved to...
        * testsuite/19_diagnostics/stacktrace/version.cc: ...here.

2022-04-11  Jonathan Wakely  <jwakely@redhat.com>

        * include/experimental/bits/fs_path.h (path): Define special
        members after path::_Cmpt is complete.

2022-04-08  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105153
        * include/std/expected
        (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
        * testsuite/20_util/expected/cons.cc: Check constructor.

2022-04-08  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105154
        * include/std/expected (expected<void, E>::swap): Set
        _M_has_value to false for objects that previously had a value.
        * testsuite/20_util/expected/swap.cc: Fix test to check void
        specialization.

2022-04-08  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105146
        * include/std/expected (bad_expected_access): Move constructor
        parameter.
        * testsuite/20_util/expected/bad.cc: New test.

2022-04-07  Hans-Peter Nilsson  <hp@axis.com>

        * testsuite/20_util/expected/requirements.cc: Correct minimal-size
        test.

2022-04-02  Jakub Jelinek  <jakub@redhat.com>

        PR libstdc++/105128
        * include/std/source_location (std::source_location::__impl): Move
        definition before using __builtin_ret_type.

2022-04-01  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/utility (unreachable): Define for C++23.
        * include/std/version (__cpp_lib_unreachable): Define.
        * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
        arguments. Handle only the function being given.
        * testsuite/20_util/unreachable/1.cc: New test.
        * testsuite/20_util/unreachable/version.cc: New test.

2022-04-01  Jonathan Wakely  <jwakely@redhat.com>

        * include/experimental/bits/fs_fwd.h (copy_file): Remove
        incorrect noexcept from declaration.
        * include/experimental/bits/fs_path.h (path::begin, path::end):
        Add noexcept to declarations, to match definitions.

2022-04-01  Timm Bäder  <tbaeder@redhat.com>

        * include/bits/fs_ops.h: Fix filename in Doxygen comment.
        * include/experimental/bits/fs_ops.h: Likewise.

2022-03-31  Jonathan Wakely  <jwakely@redhat.com>

        * libsupc++/new_opa.cc (aligned_alloc): Add comment.

2022-03-29  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/18_support/exception/38732.cc: Disable for C++23.
        * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
        * testsuite/18_support/unexpected_handler.cc: Likewise.

2022-03-29  Jonathan Wakely  <jwakely@redhat.com>

        * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
        static data members for _Fp_fmt enumerators.

2022-03-29  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/version (__cpp_lib_variant): Fix conditions to
        match <variant>.
        (__cpp_lib_expected): Fix condition to match <expected>.

2022-03-28  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
        * testsuite/20_util/optional/monadic/transform.cc: Likewise.
        * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
        * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
        * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
        * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
        * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
        * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.

2022-03-27  Jonathan Wakely  <jwakely@redhat.com>

        * doc/doxygen/user.cfg.in: Add new header.
        * include/Makefile.am: Likewise.
        * include/Makefile.in: Regenerate.
        * include/precompiled/stdc++.h: Add new header.
        * include/std/version (__cpp_lib_expected): Define.
        * libsupc++/exception [__cplusplus > 202002] (unexpected)
        (unexpected_handler, set_unexpected): Do not declare for C++23.
        * include/std/expected: New file.
        * testsuite/20_util/expected/assign.cc: New test.
        * testsuite/20_util/expected/cons.cc: New test.
        * testsuite/20_util/expected/illformed_neg.cc: New test.
        * testsuite/20_util/expected/observers.cc: New test.
        * testsuite/20_util/expected/requirements.cc: New test.
        * testsuite/20_util/expected/swap.cc: New test.
        * testsuite/20_util/expected/synopsis.cc: New test.
        * testsuite/20_util/expected/unexpected.cc: New test.
        * testsuite/20_util/expected/version.cc: New test.

2022-03-25  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/bit (bit_cast, byteswap, endian): Add doxygen
        comments.

2022-03-23  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105027
        * include/std/bit (bit_cast): Add constraints.
        * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.

2022-03-23  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/version [!_GLIBCXX_HOSTED]
        (__cpp_lib_hardware_interference_size): Define for freestanding.
        (__cpp_lib_bit_cast): Likewise.
        (__cpp_lib_is_layout_compatible): Likewise.
        (__cpp_lib_is_pointer_interconvertible): Likewise.
        (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
        freestanding.
        (__cpp_lib_invoke_r): Likewise.
        (__cpp_lib_ios_noreplace): Likewise.
        (__cpp_lib_monadic_optional): Likewise.
        (__cpp_lib_move_only_function): Likewise.
        (__cpp_lib_spanstream): Likewise.
        (__cpp_lib_stacktrace): Likewise.
        (__cpp_lib_string_contains): Likewise.
        (__cpp_lib_string_resize_and_overwrite): Likewise.
        (__cpp_lib_to_underlying): Likewise.

2022-03-23  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/105021
        * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
        <bits/atomic_wait.h> for freestanding.

2022-03-22  Hans-Peter Nilsson  <hp@axis.com>

        * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
        Conditionalize call to fesetround.

2022-03-21  Jakub Jelinek  <jakub@redhat.com>

        PR libstdc++/104990
        * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
        isn't overloaded if __clang__ is defined.

2022-03-18  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104242
        * include/std/any (any(T&&)): Revert change to constraints.
        * testsuite/20_util/any/cons/104242.cc: New test.

2022-03-18  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/92546
        * include/pstl/glue_algorithm_defs.h: Replace <functional> with
        <bits/stl_pair.h>.
        * include/pstl/utils.h: Replace <iterator> with <type_traits>.
        (__pstl::__internal::__except_handler): Use std::__terminate
        instead of std::terminate.
        * src/c++17/fs_path.cc: Include <array>.
        * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
        <functional>.
        * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
        * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
        * testsuite/25_algorithms/equal/constrained.cc: Likewise.
        * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
        * testsuite/25_algorithms/includes/constrained.cc: Likewise.
        * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
        * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
        * testsuite/25_algorithms/is_permutation/constrained.cc: Include
        <iterator>.
        * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
        <functional>.
        * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
        Likewise.
        * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
        Likewise.
        * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
        Likewise.
        * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
        Include <array>.
        * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
        <functional>.
        * testsuite/25_algorithms/max/constrained.cc: Likewise.
        * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
        * testsuite/25_algorithms/min/constrained.cc: Likewise.
        * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
        * testsuite/25_algorithms/minmax_element/constrained.cc:
        Likewise.
        * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
        * testsuite/25_algorithms/move/93872.cc: Likewise.
        * testsuite/25_algorithms/move_backward/93872.cc: Include
        <iterator>.
        * testsuite/25_algorithms/nth_element/constexpr.cc: Include
        <functional>.
        * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
        * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
        Likewise.
        * testsuite/25_algorithms/search/constexpr.cc: Likewise.
        * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
        * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
        * testsuite/25_algorithms/set_difference/constrained.cc:
        Likewise.
        * testsuite/25_algorithms/set_intersection/constexpr.cc:
        Likewise.
        * testsuite/25_algorithms/set_intersection/constrained.cc:
        Likewise.
        * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
        Likewise.
        * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
        * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
        * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
        * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
        * testsuite/25_algorithms/transform/constrained.cc: Likewise.
        * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
        * testsuite/25_algorithms/unique/constrained.cc: Likewise.
        * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
        * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
        * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
        * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
        * testsuite/std/ranges/adaptors/split.cc: Likewise.

2022-03-17  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/92546
        * include/bits/fs_path.h (path::make_preferred): Use
        handwritten loop instead of std::replace.

2022-03-17  Jonathan Wakely  <jwakely@redhat.com>

        PR middle-end/104966
        * include/bits/locale_facets_nonio.tcc
        (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
        make all string copies before any stores to *this.

2022-03-17  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/util/testsuite_character.h: Fix comment.

2022-03-16  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103407
        * config/abi/pre/gnu.ver: Make version for std::from_chars
        depend on HAVE_USELOCALE macro.
        * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
        std::from_chars for floating-point types as undesignated if
        not found in the baseline symbols file.

2022-03-16  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/charconv (__cpp_lib_to_chars): Only define when
        both from_chars and to_chars are supported for floating-point
        types.
        (from_chars, to_chars): Adjust preprocessor conditions guarding
        declarations.
        * include/std/version (__cpp_lib_to_chars): Adjust condition to
        match <charconv> definition.
        * src/c++17/floating_from_chars.cc (from_chars_strtod): New
        function template.
        (from_chars): Simplify preprocessor checks and use
        from_chars_strtod when appropriate.

2022-03-14  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104875
        * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
        hold octets that will be left-shifted.

2022-03-10  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104870
        * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
        before using fast_float.

2022-03-10  Detlef Vollmann  <dv@vollmann.ch>

        PR libstdc++/104866
        * include/bits/this_thread_sleep.h: Fix order of #endif and
        closing brace of namespace.

2022-03-10  Jonathan Wakely  <jwakely@redhat.com>

        * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
        Handle NaN.

2022-03-10  Jonathan Wakely  <jwakely@redhat.com>

        * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
        <=> comparison.

2022-03-09  Patrick Palka  <ppalka@redhat.com>

        PR libstdc++/104859
        * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
        Be explicit when narrowing the shifted effective_mantissa,
        since it may have an integer-class type.

2022-03-08  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/uses_allocator_args.h: Remove incorrect copyright
        notice.

2022-03-07  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104807
        * include/bits/c++config (__terminate, __glibcxx_assert_fail):
        Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
        (__is_constant_evaluated): Add visibility pragma.

2022-03-07  Rasmus Villemoes  <rasmus.villemoes@prevas.dk>

        * config/locale/vxworks/ctype_members.cc: Remove <iostream>
          include.

2022-03-05  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/c++config (__glibcxx_assert_fail): Add visibility
        attribute.
        (__terminate): Likewise.

2022-03-04  Jonathan Wakely  <jwakely@redhat.com>

        * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
        inside #if condition.

2022-03-03  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104748
        * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
        constexpr test.

2022-03-03  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/17_intro/names.cc (func): Undef on AIX.

2022-03-03  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/96526
        * libsupc++/compare (strong_order): Add missing support for
        floating-point types.
        * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
        New test.

2022-03-01  Jonathan Wakely  <jwakely@redhat.com>

        PR middle-end/103984
        * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
        default member initializer.

2022-02-24  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104602
        * include/std/source_location (source_location::current): Use
        deduced type of __builtin_source_location().

2022-02-22  Patrick Palka  <ppalka@redhat.com>

        * include/bits/ranges_base.h (__detail::__is_initializer_list):
        Define.
        (viewable_range): Adjust as per P2415R2.
        * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
        * include/std/ranges (owning_view): Define as per P2415R2.
        (enable_borrowed_range<owning_view>): Likewise.
        (views::__detail::__can_subrange): Replace with ...
        (views::__detail::__can_owning_view): ... this.
        (views::_All::_S_noexcept): Sync with operator().
        (views::_All::operator()): Use owning_view instead of subrange
        as per P2415R2.
        * include/std/version (__cpp_lib_ranges): Adjust value.
        * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
        views::all uses owning_view instead of subrange.
        (test08): New test.
        * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
        now that rvalue non-view non-borrowed ranges are viewable.
        * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.

2022-02-17  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104559
        * doc/xml/manual/evolution.xml: Document deprecation.
        * doc/html/manual/api.html: Regenerate.
        * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
        Remove default argument.
        (insert(const_iterator)): New overload with deprecated attribute.
        * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
        New test.

2022-02-17  Jonathan Wakely  <jwakely@redhat.com>

        * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
        code that call cat->name() on std::error_category objects.
        Identify known categories by symbol name and use a hardcoded
        name. Print error code values as enumerators where appopriate.
        * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
        name of custom category. Check io_errc and future_errc errors.

2022-02-15  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104542
        * include/bits/uses_allocator_args.h (make_obj_using_allocator)
        (uninitialized_construct_using_allocator): Add constexpr.
        * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
        * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.

2022-02-14  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/100912
        * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
        namespace for IEEE128 long double mode.
        * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
        version and export __gnu_cxx_ieee128::__convert_from_v.
        * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
        Make __ibm128 overload use snprintf directly
        * testsuite/util/testsuite_abi.cc: Add new symbol version.
        Remove stable IEEE128/LDBL versions.

2022-02-14  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103891
        * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
        Remove.
        * include/std/variant: Check feature test macros instead.
        * include/std/version: Likewise.

2022-02-14  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
        Fix typo.

2022-02-14  Jonathan Wakely  <jwakely@redhat.com>

        * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
        LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.

2022-02-11  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
        selector.

2022-02-11  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
        Ignore -Walloc-larger-than warning.
        * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
        Likewise.
        * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
        to avoid linker error for __atomic_is_lock_free.

2022-02-10  Thomas Rodgers  <rodgert@appliantology.com>

        * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
        __waiter_base::_S_do_spin_v): Change memory order from relaxed
        to acquire.

2022-02-10  Jonathan Wakely  <jwakely@redhat.com>

        * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
        using-declaration.
        (atomic_fetch_xor_explicit): Likewise.
        * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
        arithmetic and logical operations for atomic_int.

2022-02-10  Jonathan Wakely  <jwakely@redhat.com>

        * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
        when <dirent.h> is not available.
        (_GLIBCXX_HAVE_UNLINKAT):  Likewise.

2022-02-09  Thomas Rodgers  <rodgert@appliantology.com>

        PR libstdc++/104442
        * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
         loop inside do loop so that threads failing the wait, reload
         _M_ver.

2022-02-08  Jonathan Wakely  <jwakely@redhat.com>

        * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
        parameter to _Dir_base&&.
        * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
        * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
        parameter to _Dir_base&&.

2022-02-08  Jonathan Wakely  <jwakely@redhat.com>

        * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
        checking for CAS on correct word size.

2022-02-08  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/experimental/filesystem/operations/create_directories.cc:
        Adjust expected results for Windows.

2022-02-08  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104161
        * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
        [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
        instead of checking for errno values indicating a directory.
        * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
        logic to non-throwing overload.
        (fs::remove_all(const path&, error_code&)): Add comments.
        * src/filesystem/ops-common.h: Likewise.

2022-02-04  Jonathan Wakely  <jwakely@redhat.com>

        * src/filesystem/dir-common.h (_Dir_base::openat): Change return
        type to use portable posix::DIR alias.

2022-02-04  Jonathan Wakely  <jwakely@redhat.com>

        * include/c_compatibility/stdatomic.h [__clang__]: Use
        #include_next <stdatomic.h>.

2022-02-04  Jonathan Wakely  <jwakely@redhat.com>

        * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
        noexcept.
        (fs::create_directories): Likewise.
        (fs::remove_all): Likewise.
        * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
        (fs::create_directories): Likewise.
        (fs::remove_all): Likewise.

2022-02-04  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104161
        * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
        and unlinkat.
        * config.h.in: Regenerate.
        * configure: Regenerate.
        * include/bits/fs_dir.h (recursive_directory_iterator): Declare
        remove_all overloads as friends.
        (recursive_directory_iterator::__erase): Declare new member
        function.
        * include/bits/fs_fwd.h (remove, remove_all): Declare.
        * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
        constructor. Pass file descriptor argument to base constructor.
        (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
        (_Dir::unlink, _Dir::rmdir): Define new member functions.
        (directory_iterator): Pass filename_only argument to _Dir
        constructor.
        (recursive_directory_iterator::_Dir_stack): Adjust constructor
        parameters to take a _Dir rvalue instead of creating one.
        (_Dir_stack::orig): Add data member for storing original path.
        (_Dir_stack::report_error): Define new member function.
        (__directory_iterator_nofollow): Move here from dir-common.h and
        fix value to be a power of two.
        (__directory_iterator_filename_only): Define new constant.
        (recursive_directory_iterator): Construct _Dir object and move
        into _M_dirs stack. Pass skip_permission_denied argument to first
        advance call.
        (recursive_directory_iterator::increment): Use _Dir::open_subdir.
        (recursive_directory_iterator::__erase): Define new member
        function.
        * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
        (fs::remove_all): Use new recursive_directory_iterator::__erase
        member function.
        * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
        constructor and use openat to implement nofollow semantics.
        (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
        Define new member functions.
        (__directory_iterator_nofollow): Move to fs_dir.cc.
        * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
        base constructor.
        (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
        functions.
        (recursive_directory_iterator::_Dir_stack): Adjust constructor
        parameters to take a _Dir rvalue instead of creating one.
        (recursive_directory_iterator): Check for new nofollow option.
        Construct _Dir object and move into _M_dirs stack. Pass
        skip_permission_denied argument to first advance call.
        (recursive_directory_iterator::increment): Use _Dir::open_subdir.
        * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.

2022-02-04  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/allocator.h: Qualify std::allocator_traits in
        deprecated warnings.
        * libsupc++/exception (uncaught_exception): Add suggestion to
        deprecated warning.

2022-02-02  Jonathan Wakely  <jwakely@redhat.com>

        * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
        Add [[maybe_unused]] attribute.
        * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
        Likewise.

2022-02-02  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
        custom comparison function for multiset.
        * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
        comparison function for set.

2022-02-02  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/boost_concept_check.h (_OutputIteratorConcept):
        Change member function to data member of function pointer type.

2022-02-02  Martin Sebor  <msebor@redhat.com>

        PR libstdc++/101831
        * include/std/array (begin): Declare const member function attribute
        const.
        (end, rbegin, rend, size, max_size, empty, data): Same.
        * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
        * testsuite/23_containers/array/capacity/max_size.cc: Same.
        * testsuite/23_containers/array/capacity/size.cc: Same.
        * testsuite/23_containers/array/iterators/begin_end.cc: New test.

2022-02-02  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
        autoconf macro to check whether d_type is present.
        * testsuite/experimental/filesystem/iterators/error_reporting.cc:
        Likewise.

2022-02-01  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/27_io/filesystem/iterators/97731.cc: New test.
        * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
        Check follow_directory_symlink option.
        * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
        Likewise.

2022-02-01  Jonathan Wakely  <jwakely@redhat.com>

        * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
        Reset state to past-the-end iterator on error.
        (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
        (fs::recursive_directory_iterator::pop()): Check _M_dirs before
        it might get reset.
        * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
        for the TS implementation.
        * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
        * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.

2022-02-01  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/fs_fwd.h (filesystem::perms): Fix comment.

2022-02-01  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104301
        * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
        for stdio_pure and stdio_posix options.
        * configure: Regenerate.

2022-02-01  Thomas Rodgers  <rodgert@appliantology.com>

        * include/bits/atomic_wait.h: Change memory order from
        Acquire/Release with relaxed loads to SeqCst+Release for
        accesses to the waiter's count.

2022-01-31  Martin Liska  <mliska@suse.cz>

        * acinclude.m4: Detect *_ld_is_mold and use it.
        * configure: Regenerate.

2022-01-30  Hans-Peter Nilsson  <hp@axis.com>

        * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
        simulator targets.
        * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.

2022-01-27  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/100516
        * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
        Add __builtin_unreachable to loop.
        * testsuite/23_containers/deque/100516.cc: New test.

2022-01-27  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/ranges_base.h (ranges::advance): Avoid signed
        overflow. Do nothing if already equal to desired result.
        * testsuite/24_iterators/range_operations/advance_overflow.cc:
        New test.

2022-01-27  Martin Liska  <mliska@suse.cz>

        PR libstdc++/104259
        * acinclude.m4: Fix typo.
        * configure: Regenerate.

2022-01-25  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104019
        * include/bits/istream.tcc (basic_istream::sentry): Add braces
        around try-block.
        * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
        Add pragmas to disable bogus warnings from PR 61596.

2022-01-25  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104217
        * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
        * src/filesystem/dir.cc (_GNU_SOURCE): Define.
        * src/filesystem/ops.cc (_GNU_SOURCE): Define.

2022-01-25  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104161
        * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
        fdopendir.
        * config.h.in: Regenerate.
        * configure: Regenerate.
        * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
        and pass it to base class constructor.
        (directory_iterator): Pass nofollow flag to _Dir constructor.
        (fs::recursive_directory_iterator::increment): Likewise.
        * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
        directory_iterator constructor. Move error check outside loop.
        * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
        constructor and when it's set use ::open with O_NOFOLLOW and
        O_DIRECTORY.
        * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
        and pass it to base class constructor.
        (directory_iterator): Pass nofollow flag to _Dir constructor.
        (fs::recursive_directory_iterator::increment): Likewise.
        * src/filesystem/ops.cc (remove_all): Use nofollow option for
        directory_iterator constructor. Move error check outside loop.

2022-01-23  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104032
        * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
        mem-initializer for _M_buf.
        (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
        member access.
        * testsuite/27_io/spanstream/2.cc: New test.

2022-01-23  Jonathan Wakely  <jwakely@redhat.com>

        * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
        Define macro for case where std::from_chars is implemented in
        terms of strtod, strtof or strtold.
        (buffer_resource, valid_fmt, find_end_of_float, pattern)
        (from_chars_impl, make_result, reserve_string): Do not define
        unless USE_STRTOD_FOR_FROM_CHARS is defined.
        (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
        USE_STRTOD_FOR_FROM_CHARS is defined, instead of
        _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
        is binary64.

2022-01-23  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104174
        * include/bits/hashtable_policy.h (_Map_base): Add partial
        specialization for maps with const key types.
        * testsuite/23_containers/unordered_map/104174.cc: New test.

2022-01-23  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104019
        * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
        Set members to zero without type punning.

2022-01-21  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.

2022-01-21  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/87193
        PR libstdc++/104019
        * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
        Define as type long.
        * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
        Likewise.
        * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
        * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
        (__cpp_lib_chrono_udls): Likewise.
        * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
        * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
        * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
        Likewise.
        * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
        Likewise.
        * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
        (__cpp_lib_sample): Likewise.
        * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
        Likewise.
        * include/bits/stl_function.h (__cpp_lib_transparent_operators):
        Likewise.
        * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
        Likewise.
        * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
        Likewise.
        * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
        Likewise.
        * include/bits/unique_ptr.h (__cpp_lib_make_unique):
        Likewise.
        * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
        Likewise.
        * include/c_global/cmath (__cpp_lib_hypot): Likewise.
        * include/c_global/cstddef (__cpp_lib_byte): Likewise.
        * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
        Likewise.
        * include/std/complex (__cpp_lib_complex_udls): Likewise.
        * include/std/filesystem (__cpp_lib_filesystem): Likewise.
        * include/std/functional (__cpp_lib_not_fn): Likewise.
        (__cpp_lib_boyer_moore_searcher): Likewise.
        * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
        * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
        * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
        (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
        * include/std/tuple (__cpp_lib_apply): Likewise.
        (__cpp_lib_make_from_tuple): Likewise.
        * include/std/type_traits (__cpp_lib_integral_constant_callable)
        (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
        (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
        (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
        (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
        (__cpp_lib_has_unique_object_representations)
        (__cpp_lib_is_aggregate): Likewise.
        * include/std/version: Likewise.
        * libsupc++/new (__cpp_lib_launder): Likewise.

2022-01-21  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
        condition for C++17 definition.

2022-01-21  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
        Add constexpr.
        (_Sp_atomic::_M_ptr): Add default member-initializer.
        * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
        Check constant initialization.
        * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.

2022-01-20  Jonathan Wakely  <jwakely@redhat.com>

        * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
        equivalent attribute for Clang.
        * src/c++11/future.cc (__constinit): Likewise.
        * src/c++11/system_error.cc (__constinit): Likewise.
        * src/c++17/memory_resource.cc (__constinit): Likewise.

2022-01-20  Jonathan Wakely  <jwakely@redhat.com>

        * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
        src/libbacktrace/.libs to LDFLAGS if those directories exist.

2022-01-19  Jonathan Wakely  <jwakely@redhat.com>

        * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
        from default flags.
        * configure: Regenerate.

2022-01-19  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104123
        * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
        <stddef.h>.

2022-01-19  Jonathan Wakely  <jwakely@redhat.com>

        * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
        linker search paths.
        * src/Makefile.am: Fix src/debug/libbacktrace build.
        * src/Makefile.in: Regenerate.
        * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
        variable. Use symlinks for the source files.
        * src/libbacktrace/Makefile.in: Regenerate.

2022-01-19  Matthias Kretz  <m.kretz@gsi.de>

        * include/experimental/bits/simd.h (__floating_point_flags): Do
        not rely on math_errhandling to expand to a constant expression.

2022-01-19  Jonathan Wakely  <jwakely@redhat.com>

        * doc/xml/manual/evolution.xml: Document deprecations.
        * doc/xml/manual/status_cxx2017.xml: Update status.
        * doc/html/*: Regenerate.

2022-01-19  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
        _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.

2022-01-19  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
        function.

2022-01-19  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104101
        * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
        Only use __thread_relax if __cpp_lib_atomic_wait is defined.

2022-01-18  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104099
        * include/bits/basic_string.h (basic_string(nullptr_t)): Only
        define for C++23.
        (operator=(nullptr_t)): Likewise.
        * include/bits/cow_string.h: Likewise.
        * include/std/string_view (basic_string_view(nullptr_t)):
        Likewise.
        * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
        expected error. Add examples that become ill-formed in C++23.
        * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
        Adjust expected errors.
        * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
        Likewise.

2022-01-18  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104098
        * include/bits/stl_iterator.h (reverse_iterator): Check
        __cpp_lib_concepts instead of __cplusplus.

2022-01-18  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/101124
        * include/bits/stl_pair.h (pair): Adjust constraints on
        deprecated constructors accepting literal zero as null pointer
        constant. Improve wording of deprecated attribute.
        * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
        constructors do not cause ambiguities for copyable types.

2022-01-18  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/stl_function.h (ptr_fun): Fix suggestion for
        non-deprecated alternative.

2022-01-18  Tom Honermann  <tom@honermann.net>

        * acinclude.m4: Define config macros if uchar.h provides
        c8rtomb() and mbrtoc8().
        * config.h.in: Regenerate.
        * configure: Regenerate.
        * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
        * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
        * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
        * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
        New test.
        * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
        New test.

2022-01-18  Jonathan Wakely  <jwakely@redhat.com>

        * include/Makefile.am: Install new header.
        * include/Makefile.in: Regenerate.
        * include/c_compatibility/stdatomic.h: New file.
        * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.

2022-01-18  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104080
        * src/c++17/fast_float/LOCAL_PATCHES: Update.
        * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
        Define in terms of __BYTE_ORDER__.

2022-01-18  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/104080
        * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
        * src/c++17/fast_float/fast_float.h (round): Use explicit
        template argument list for std::min.

2022-01-18  Jonathan Wakely  <jwakely@redhat.com>

        * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
        * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
        upcoming release.
        * doc/html/manual/status.html: Regenerate.

2022-01-18  Jonathan Wakely  <jwakely@redhat.com>

        * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
        comments.
        * configure: Regenerate.

2022-01-17  Patrick Palka  <ppalka@redhat.com>

        * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
        Conditionally define, and use it to conditionally include
        fast_float.
        (from_chars): Use fast_float for float and double when
        USE_LIB_FAST_FLOAT.

2022-01-17  Patrick Palka  <ppalka@redhat.com>

        * src/c++17/fast_float/LOCAL_PATCHES: Update.
        * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
        case of over/underflow, return errc::result_out_of_range and don't
        modify 'value'.

2022-01-17  Patrick Palka  <ppalka@redhat.com>

        * src/c++17/fast_float/LOCAL_PATCHES: Update.
        * src/c++17/fast_float/fast_float.h: Apply local modifications.

2022-01-17  Patrick Palka  <ppalka@redhat.com>

        * src/c++17/fast_float/LOCAL_PATCHES: New file.
        * src/c++17/fast_float/MERGE: New file.
        * src/c++17/fast_float/README.md: New file, copied from the
        fast_float repository.
        * src/c++17/fast_float/fast_float.h: New file, an amalgamation
        of the fast_float library.

2022-01-17  Patrick Palka  <ppalka@redhat.com>

        * src/c++17/floating_from_chars.cc: Include <bit>.
        (ascii_to_hexit, starts_with_ci): Conditionally define.
        (__floating_from_chars_hex):  Conditionally define.
        (from_chars): Use __floating_from_chars_hex for
        chars_format::hex parsing of binary32/64 float/double.
        (testsuite/20_util/from_chars/7.cc): New test.
        * testsuite/20_util/from_chars/7.cc: New file.

2022-01-17  Jonathan Wakely  <jwakely@redhat.com>

        * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
        * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
        * include/Makefile.am: Add new header.
        * include/Makefile.in: Regenerate.
        * include/std/stacktrace: New header.
        * include/std/version (__cpp_lib_stacktrace): Define.
        * Makefile.in: Regenerate.
        * config.h.in: Regenerate.
        * configure: Regenerate.
        * doc/Makefile.in: Regenerate.
        * libsupc++/Makefile.in: Regenerate.
        * po/Makefile.in: Regenerate.
        * python/Makefile.in: Regenerate.
        * src/Makefile.am: Regenerate.
        * src/Makefile.in: Regenerate.
        * src/c++11/Makefile.in: Regenerate.
        * src/c++17/Makefile.in: Regenerate.
        * src/c++20/Makefile.in: Regenerate.
        * src/c++98/Makefile.in: Regenerate.
        * src/filesystem/Makefile.in: Regenerate.
        * testsuite/Makefile.in: Regenerate.
        * src/libbacktrace/Makefile.am: New file.
        * src/libbacktrace/Makefile.in: New file.
        * src/libbacktrace/backtrace-rename.h: New file.
        * src/libbacktrace/backtrace-supported.h.in: New file.
        * src/libbacktrace/config.h.in: New file.
        * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
        New proc.
        * testsuite/20_util/stacktrace/entry.cc: New test.
        * testsuite/20_util/stacktrace/synopsis.cc: New test.
        * testsuite/20_util/stacktrace/version.cc: New test.

2022-01-17  Jonathan Wakely  <jwakely@redhat.com>

        * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
        names.
        * doc/html/manual/status.html: Regenerate.

2022-01-17  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103650
        * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
        * include/Makefile.in: Regenerate.
        * testsuite/17_intro/headers/c++1998/103650.cc: New test.

2022-01-17  Matthias Kretz  <m.kretz@gsi.de>

        * include/experimental/bits/simd.h (__floating_point_flags): Do
        not rely on the presence of the math_errhandling macro.

2022-01-17  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
        to qualified-id for dependent type.

2022-01-17  Jonathan Wakely  <jwakely@redhat.com>

        * doc/xml/manual/status_cxx2020.xml: Update.
        * doc/html/manual/status.html: Regenerate.

2022-01-17  Jonathan Wakely  <jwakely@redhat.com>
            Thomas Rodgers  <trodgers@redhat.com>

        * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
        New macro.
        (_Sp_atomic): New class template.
        (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
        specializations.
        * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
        (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
        * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
        * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
        test.
        * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.

2022-01-15  Matthias Kretz  <m.kretz@gsi.de>

        * include/experimental/bits/simd.h: Move feature detection bools
        and add __have_avx512bitalg, __have_avx512vbmi2,
        __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
        __have_avx512vnni, __have_avx512vpopcntdq.
        (__detail::__machine_flags): New function which returns a unique
        uint64 depending on relevant -m and -f flags.
        (__detail::__odr_helper): New type alias for either an anonymous
        type or a type specialized with the __machine_flags number.
        (_SimdIntOperators): Change template parameters from _Impl to
        _Tp, _Abi because _Impl now has an __odr_helper parameter which
        may be _OdrEnforcer from the anonymous namespace, which makes
        for a bad base class.
        (many): Either add __odr_helper template parameter or mark as
        always_inline.
        * include/experimental/bits/simd_detail.h: Add defines for
        AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
        AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
        * include/experimental/bits/simd_builtin.h: Add __odr_helper
        template parameter or mark as always_inline.
        * include/experimental/bits/simd_fixed_size.h: Ditto.
        * include/experimental/bits/simd_math.h: Ditto.
        * include/experimental/bits/simd_scalar.h: Ditto.
        * include/experimental/bits/simd_neon.h: Add __odr_helper
        template parameter.
        * include/experimental/bits/simd_ppc.h: Ditto.
        * include/experimental/bits/simd_x86.h: Ditto.

2022-01-14  Uroš Bizjak  <ubizjak@gmail.com>

        * testsuite/22_locale/numpunct/members/char/3.cc:
        Require pt_PT locale instead of nl_NL.
        (test02): Use pt_PT locale instead of nl_NL.

2022-01-14  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/91260
        PR libstdc++/91383
        PR libstdc++/95065
        * include/backward/binders.h (bind1st, bind2nd): Add deprecated
        attribute.
        * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
        Disable deprecated warnings for base classes.
        (_Reference_wrapper_base): Likewise.
        * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
        * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
        * include/bits/stl_function.h (unary_function, binary_function):
        Add deprecated attribute.
        (unary_negate, not1, binary_negate, not2, ptr_fun)
        (pointer_to_unary_function, pointer_to_binary_function)
        (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
        (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
        (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
        attributes.
        * include/bits/stl_iterator.h: Disable deprecated warnings for
        std::iterator base classes.
        * include/bits/stl_iterator_base_types.h (iterator): Add
        deprecated attribute.
        * include/bits/stl_map.h (map::value_compare): Disable
        deprecated warnings for base class.
        * include/bits/stl_multimap.h (multimap::value_compare):
        Likewise.
        * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
        Add deprecated attribute.
        * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
        * include/bits/stream_iterator.h: Disable deprecated warnings.
        * include/bits/streambuf_iterator.h: Likewise.
        * include/ext/bitmap_allocator.h: Remove unary_function base
        classes.
        * include/ext/functional: Disable deprecated warnings.
        * include/ext/rope: Likewise.
        * include/ext/throw_allocator.h: Likewise.
        * include/std/type_traits (result_of): Add deprecated attribute.
        * include/tr1/functional: Disable deprecated warnings.
        * include/tr1/functional_hash.h: Likewise.
        * testsuite/20_util/function_objects/binders/1.cc: Add
        -Wno-disable-deprecations.
        * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
        * testsuite/20_util/function_objects/constexpr.cc: Add
        dg-warning.
        * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
        * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
        * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
        Likewise.
        * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
        Likewise.
        * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
        Likewise.
        * testsuite/20_util/reference_wrapper/24803.cc:
        Likewise.
        * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
        C++20 and check for absence of nested types.
        * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
        std::binary_function base class.
        * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
        * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
        std::iterator base class.
        * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
        Likewise.
        * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
        Likewise.
        * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
        Likewise.
        * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
        Likewise.
        * testsuite/24_iterators/istreambuf_iterator/92285.cc:
        Likewise.
        * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
        Likewise.
        * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
        Likewise.
        * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
        Likewise.
        * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
        Likewise.
        * testsuite/25_algorithms/copy/34595.cc:
        Likewise.
        * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
        base class.
        * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
        Disable deprecated warnings.
        * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
        Likewise.
        * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
        Likewise.
        * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
        dg-warning.
        * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
        Likewise.
        * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
        Likewise.
        * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
        Disable deprecated warnings.
        * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
        Likewise.
        * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
        std::unary_function base classes.
        * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
        Remove std::iterator base classes.

2022-01-14  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
        Correct type of macro value.
        (shared_ptr): Add additional friend declarations.
        (make_shared, allocate_shared): Constrain existing overloads and
        remove static_assert.
        * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
        New macro.
        (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
        specialization for use with make_shared_for_overwrite.
        (__cpp_lib_shared_ptr_arrays): Update value for C++20.
        (_Sp_counted_array_base): New class template.
        (_Sp_counted_array): New class template.
        (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
        New constructor for allocating shared arrays.
        (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
        * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
        type.
        (__cpp_lib_shared_ptr_arrays): Update value for C++20.
        (__cpp_lib_smart_ptr_for_overwrite): New macro.
        * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
        expected errors.
        * testsuite/20_util/shared_ptr/creation/array.cc: New test.
        * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
        * testsuite/20_util/shared_ptr/creation/version.cc: New test.
        * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
        feature test macro. Test non-trivial default-initialization.

2022-01-14  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/stl_construct.h (_Construct, _Construct_novalue):
        Also cast away cv-qualifiers when converting pointer to void.
        * testsuite/20_util/allocator/void.cc: Test construct function
        with cv-qualified types.

2022-01-14  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103992
        * include/bits/stl_iterator.h (common_iterator): Use
        std::construct_at instead of placement new.
        * testsuite/24_iterators/common_iterator/1.cc: Check copy
        construction is usable in constant expressions.

2022-01-14  Jonathan Wakely  <jwakely@redhat.com>

        * doc/xml/manual/status_cxx2011.xml: Document new tokens
        accepted by std::random_device constructor.
        * doc/html/manual/status.html: Regenerate.

2022-01-12  Patrick Palka  <ppalka@redhat.com>

        * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
        directive.

2022-01-12  Patrick Palka  <ppalka@redhat.com>

        PR libstdc++/103955
        * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
        Track the excess precision separately from the effective
        precision.  Avoid overflow in bounds check by splitting it into
        two checks.
        (__floating_to_chars_precision): Avoid overflow in bounds checks
        similarly.
        * testsuite/20_util/to_chars/103955.cc: New test.

2022-01-11  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103726
        * include/Makefile.am: Install <source_location> for
        freestanding.
        * include/Makefile.in: Regenerate.
        * include/std/version (__cpp_lib_source_location): Define for
        freestanding.

2022-01-11  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
        Add neoxcept (LWG 3593).

2022-01-11  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/ranges (ranges::__detail::__box): Add constexpr to
        assignment operators (LWG 3572).
        * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
        view that uses copyable-box.

2022-01-11  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103726
        * include/Makefile.am: Install <coroutine> for freestanding.
        * include/Makefile.in: Regenerate.
        * include/std/coroutine: Adjust headers and preprocessor
        conditions.
        (__coroutine_traits_impl): Use concepts when available.
        [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.

2022-01-11  Jonathan Wakely  <jwakely@redhat.com>

        * include/std/ostream (operator<<(basic_ostream&, charT)):
        Use unformatted input if no padding is needed.
        (operator<<(basic_ostream<char>&, char)): Likewise.

2022-01-11  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103891
        * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
        Define.
        * include/std/variant (__cpp_lib_variant): Only define C++20
        value when the compiler is known to support conditionally
        trivial destructors.
        * include/std/version (__cpp_lib_variant): Likewise.

2022-01-11  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/stl_iterator.h (common_iterator): Add constexpr
        to all member functions (LWG 3574).
        * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
        tests as constant expressions.
        * testsuite/24_iterators/common_iterator/2.cc: Likewise.

2022-01-10  Jakub Jelinek  <jakub@redhat.com>

        PR libstdc++/77760
        * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
        (time_get::_M_extract_via_format): Declare new method with
        __time_get_state& as an extra argument.
        * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
        __state argument, set various fields in it while parsing.  Handle %j,
        %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
        for %p immediately.  Add a wrapper around the method without the
        __state argument for backwards compatibility.
        (_M_extract_num): Remove all __len == 4 special cases.
        (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
        initialize __state, pass it to _M_extract_via_format and finalize it
        at the end.
        (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
        69-99 to 1969-1999.  For 3-4 digit parsed years use that as year.
        (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
        version, don't call do_get but call _M_extract_via_format instead to
        pass around state.
        * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
        with extra __time_get_state and __time_get_state::_M_finalize_state.
        * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
        day_of_the_year): New functions in anon namespace.
        (mon_yday): New var in anon namespace.
        (__time_get_state::_M_finalize_state): Define.
        * testsuite/22_locale/time_get/get/char/4.cc: New test.
        * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
        * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
        as year 197AD instead of error.
        * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
        year 2001 instead of error.
        * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
        * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
        197 as year 197AD instead of error.
        * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
        1 as year 2001 instead of error.
        * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.

2022-01-10  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103866
        * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
        nothing for freestanding builds.
        (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
        * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
        with --without-headers.  Do not use GCC_HEADER_STDINT for
        freestanding builds.
        * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
        for freestanding builds.
        * configure: Regenerate.
        * Makefile.in: Regenerate.
        * doc/Makefile.in: Regenerate.
        * include/Makefile.in: Regenerate.
        * libsupc++/Makefile.in: Regenerate.
        * po/Makefile.in: Regenerate.
        * python/Makefile.in: Regenerate.
        * src/Makefile.in: Regenerate.
        * src/c++11/Makefile.in: Regenerate.
        * src/c++17/Makefile.in: Regenerate.
        * src/c++20/Makefile.in: Regenerate.
        * src/c++98/Makefile.in: Regenerate.
        * src/filesystem/Makefile.in: Regenerate.
        * testsuite/Makefile.in: Regenerate.

2022-01-10  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
        Add dg-timeout-factor directive.
        * testsuite/28_regex/basic_regex/84110.cc: Likewise.
        * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
        * testsuite/28_regex/match_results/102667.cc: Likewise.

2022-01-10  Jonathan Wakely  <jwakely@redhat.com>

        * doc/xml/manual/using.xml: Update documentation around default
        -std option.
        * doc/html/*: Regenerate.

2022-01-10  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/100017
        * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
        * src/c++17/Makefile.in: Regenerate.

2022-01-09  Sandra Loosemore  <sandra@codesourcery.com>

        * testsuite/18_support/type_info/constexpr.cc: Add explicit
        -fdelete-null-pointer-checks option.

2022-01-06  Pavel I. Kryukov  <pavel.kryukov@phystech.edu>
            Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103853
        * include/bits/forward_list.tcc (forward_list::merge): Check for
        self-merge.
        * testsuite/23_containers/forward_list/operations/merge.cc: New test.

2022-01-06  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/regex.h (basic_regex, match_results): Qualify
        name in friend declaration, to work around Clang bug.

2022-01-06  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.

2022-01-06  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103911
        * include/std/charconv (__from_chars_alpha_to_num): Return
        char instead of unsigned char. Change invalid return value to
        127 instead of using numeric trait.
        (__from_chars_alnum): Fix comment. Do not use std::isdigit.
        Change type of variable to char.

2022-01-05  François Dumont  <fdumont@gcc.gnu.org>

        PR libstdc++/68303
        * include/bits/hashtable_policy.h
        (_Hashtable_hash_traits<_Hash>): New.
        (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
        (_Hashtable_base<>::_M_key_equals): New.
        (_Hashtable_base<>::_M_equals): Use latter.
        (_Hashtable_base<>::_M_key_equals_tr): New.
        (_Hashtable_base<>::_M_equals_tr): Use latter.
        * include/bits/hashtable.h
        (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
        (_Hashtable<>::find): Loop through elements to look for key if size is lower
        than __small_size_threshold().
        (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
        (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
        (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
        (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
        (_Hashtable<>::_M_find_before_node(const key_type&)): New.
        (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
        (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
        * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
        * testsuite/util/testsuite_performance.h
        (report_performance): Use 9 width to display memory.
        * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
        New performance test case.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103919
        * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
        Relax constraints on string_view parameter.
        * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
        Likewise.
        * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
        ARM EABI.
        * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
        * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
        * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
        is emitted.
        (type_info::__equal): Define alias symbol.
        * libsupc++/typeinfo (type_info::before): Combine different
        implementations into one.
        (type_info::operator==): Likewise. Use address equality for
        constant evaluation. Call __equal for targets that require the
        definition to be non-inline.
        * testsuite/18_support/type_info/constexpr.cc: New test.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
        class and virtual functions as 'final'.
        (io_category_instance): Use constinit union to make the object
        immortal.
        * src/c++11/future.cc (future_error_category): Define class and
        virtual functions as 'final'.
        (future_category_instance): Use constinit union.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
        versioned namespace from the type name that is printed.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
        printer for std::regex NFA states.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/23_containers/forward_list/operations/1.cc: Fill in
        placeholders in comments.
        * testsuite/23_containers/forward_list/operations/2.cc:
        Likewise.
        * testsuite/23_containers/forward_list/operations/3.cc:
        Likewise.
        * testsuite/23_containers/forward_list/operations/4.cc:
        Likewise.
        * testsuite/23_containers/forward_list/operations/5.cc:
        Likewise.
        * testsuite/23_containers/forward_list/operations/6.cc:
        Likewise.
        * testsuite/23_containers/forward_list/operations/7.cc:
        Likewise.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103848
        * include/bits/stl_deque.h (operator-): Do not use 0 as null
        pointer constant.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
        Use std::_Construct for construct.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        PR libstdc++/103877
        * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
        * doc/html/faq.html: Regenerate.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/regex.h (__regex_algo_impl): Change __policy and
        __match_mode template parameters to be function parameters.
        (regex_match, regex_search): Pass policy and match mode as
        function arguments.
        * include/bits/regex.tcc (__regex_algo_impl): Change template
        parameters to function parameters.
        * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
        'if constexpr' for conditions using template parameters.
        (_RegexTranslator): Likewise.
        * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
        Likewise.
        * testsuite/util/testsuite_regex.h (regex_match_debug)
        (regex_search_debug): Move template arguments to function
        arguments.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
        results even if the match failed.

2022-01-05  Jonathan Wakely  <jwakely@redhat.com>

        * include/bits/regex_compiler.tcc: Adjust all calls to
        __throw_regex_error.
        * include/bits/regex_error.h (__throw_regex_error): Add noreturn
        attribute.
        * include/bits/regex_scanner.tcc: Likewise.
        * src/c++11/regex.cc (desc): New helper function.
        (regex_error::regex_error(error_type)): Use desc to get a string
        corresponding to the error code.


Copyright (C) 2022 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Generated by dwww version 1.15 on Sun Jun 16 14:32:27 CEST 2024.