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>
