2022-12-24  Iain Sandoe  <iain@sandoe.co.uk>

	* src/c++20/tzdb.cc (remote_version): Look for the tzdata.zi
	file before falling back to system-specific ones on Darwin and
	BSD.

2022-12-24  Iain Sandoe  <iain@sandoe.co.uk>

	* testsuite/std/time/tzdb/leap_seconds.cc: Initialize the
	override_used test var to false.

2022-12-23  Eric Botcazou  <ebotcazou@adacore.com>

	* acinclude.m4 (GLIBCXX_EXPORT_FLAGS): Substitute CPPFLAGS.
	(GLIBCXX_ENABLE_LIBSTDCXX_TIME): Set ac_has_sched_yield and
	ac_has_win32_sleep to yes for MinGW.  Change HAVE_WIN32_SLEEP
	into _GLIBCXX_USE_WIN32_SLEEP.
	(GLIBCXX_CHECK_GTHREADS): Add _WIN32_THREADS to compilation flags for
	Win32 threads and force _GTHREAD_USE_MUTEX_TIMEDLOCK to 0 for them.
	Add -D_WIN32_WINNT=0x0600 to compilation flags if yes was configured
	and add it to CPPFLAGS on success.
	* config.h.in: Regenerate.
	* configure: Likewise.
	* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_GET_NPROCS_WIN32):
	Define to 1.
	* config/os/mingw32/os_defines.h (_GLIBCXX_USE_GET_NPROCS_WIN32): Ditto
	* src/c++11/thread.cc (get_nprocs): Provide Win32 implementation if
	_GLIBCXX_USE_GET_NPROCS_WIN32 is defined.  Replace HAVE_WIN32_SLEEP
	with USE_WIN32_SLEEP.
	* testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: Add
	missing conditional compilation.
	* testsuite/lib/libstdc++.exp (check_v3_target_sleep): Add support for
	_GLIBCXX_USE_WIN32_SLEEP.
	(check_v3_target_nprocs): Likewise for _GLIBCXX_USE_GET_NPROCS_WIN32.

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

	* src/c++20/tzdb.cc [__APPLE__] (zoneinfo_dir_override): Add
	definition.

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

	* src/c++20/tzdb.cc: Remove static_assert.

2022-12-23  Arsen Arsenović  <arsen@aarsen.me>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/107792
	PR libstdc++/107778
	* src/experimental/contract.cc (handle_contract_violation): Make
	output more readable.

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

	PR libstdc++/105730
	* src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
	Access private data member of base class and call its wait
	member.

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

	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/std/chrono (operator<<): Move to new header.
	(nonexistent_local_time::_M_make_what_str): Define correctly.
	(ambiguous_local_time::_M_make_what_str): Likewise.
	* include/bits/chrono_io.h: New file.
	* src/c++20/tzdb.cc (operator<<(ostream&, const Rule&)): Use
	new ostream output for month and weekday types.
	* testsuite/20_util/duration/io.cc: Test std::format support.
	* testsuite/std/time/exceptions.cc: Check what() strings.
	* testsuite/std/time/syn_c++20.cc: Uncomment local_time_format.
	* testsuite/std/time/time_zone/get_info_local.cc: Enable check
	for formatted output of local_info objects.
	* testsuite/std/time/clock/file/io.cc: New test.
	* testsuite/std/time/clock/gps/io.cc: New test.
	* testsuite/std/time/clock/system/io.cc: New test.
	* testsuite/std/time/clock/tai/io.cc: New test.
	* testsuite/std/time/clock/utc/io.cc: New test.
	* testsuite/std/time/day/io.cc: New test.
	* testsuite/std/time/format.cc: New test.
	* testsuite/std/time/hh_mm_ss/io.cc: New test.
	* testsuite/std/time/month/io.cc: New test.
	* testsuite/std/time/weekday/io.cc: New test.
	* testsuite/std/time/year/io.cc: New test.
	* testsuite/std/time/year_month_day/io.cc: New test.

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

	* include/std/format (__format::__write_padded_as_spec): New
	function.
	(__format::__formatter_str, __format::__formatter_int::format)
	(formatter<const void*, charT>): Use it.

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

	* python/libstdcxx/v6/printers.py (StdChronoDurationPrinter)
	(StdChronoTimePointPrinter, StdChronoZonedTimePrinter)
	(StdChronoCalendarPrinter, StdChronoTimeZonePrinter)
	(StdChronoLeapSecondPrinter, StdChronoTzdbPrinter)
	(StdChronoTimeZoneRulePrinter): New printers.

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

	* acinclude.m4 (GLIBCXX_ZONEINFO_DIR): New macro.
	* config.h.in: Regenerate.
	* config/abi/pre/gnu.ver: Export new symbols.
	* configure: Regenerate.
	* configure.ac (GLIBCXX_ZONEINFO_DIR): Use new macro.
	* include/std/chrono (utc_clock::from_sys): Correct handling
	of leap seconds.
	(nonexistent_local_time::_M_make_what_str): Define.
	(ambiguous_local_time::_M_make_what_str): Define.
	(__throw_bad_local_time): Define new function.
	(time_zone, tzdb_list, tzdb): Implement all members.
	(remote_version, zoned_time, get_leap_second_info): Define.
	* include/std/version: Add comment for __cpp_lib_chrono.
	* src/c++20/Makefile.am: Add new file.
	* src/c++20/Makefile.in: Regenerate.
	* src/c++20/tzdb.cc: New file.
	* testsuite/lib/libstdc++.exp: Define effective target tzdb.
	* testsuite/std/time/clock/file/members.cc: Check file_time
	alias and file_clock::now() member.
	* testsuite/std/time/clock/gps/1.cc: Likewise for gps_clock.
	* testsuite/std/time/clock/tai/1.cc: Likewise for tai_clock.
	* testsuite/std/time/syn_c++20.cc: Uncomment everything except
	parse.
	* testsuite/std/time/clock/utc/leap_second_info.cc: New test.
	* testsuite/std/time/exceptions.cc: New test.
	* testsuite/std/time/time_zone/get_info_local.cc: New test.
	* testsuite/std/time/time_zone/get_info_sys.cc: New test.
	* testsuite/std/time/time_zone/requirements.cc: New test.
	* testsuite/std/time/tzdb/1.cc: New test.
	* testsuite/std/time/tzdb/leap_seconds.cc: New test.
	* testsuite/std/time/tzdb_list/1.cc: New test.
	* testsuite/std/time/tzdb_list/requirements.cc: New test.
	* testsuite/std/time/zoned_time/1.cc: New test.
	* testsuite/std/time/zoned_time/custom.cc: New test.
	* testsuite/std/time/zoned_time/deduction.cc: New test.
	* testsuite/std/time/zoned_time/req_neg.cc: New test.
	* testsuite/std/time/zoned_time/requirements.cc: New test.
	* testsuite/std/time/zoned_traits.cc: New test.

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

	* include/bits/chrono.h (__is_duration_v, __is_time_point_v):
	New variable templates.
	(duration_cast): Add simplified definition for noconv case.
	(treat_as_floating_point_v): Add explicit specializations.
	(duration::operator%=, floor, ceil, round): Simplify SFINAE
	constraints.

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

	* include/std/chrono: Use nodiscard attribute.

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

	* testsuite/20_util/to_chars/float16_c++23.cc (test): Use 3 argument
	std::to_chars if fmt is std::chars_format{}, rather than 4 argument.
	* testsuite/20_util/to_chars/float128_c++23.cc (test): Likewise, and
	skip second part of testing that requires 5 argument std::to_chars.

2022-12-19  Arsen Arsenović  <arsen@aarsen.me>

	* include/experimental/contract: Lowercase the constants in
	contract_violation_continuation_mode.

2022-12-16  John David Anglin  <danglin@gcc.gnu.org>

	* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.

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

	* include/std/expected (expected): Add monadic operations.
	(expected<void, E>): Likewise.
	* include/std/version (__cpp_lib_expected): Bump value.
	* testsuite/20_util/expected/synopsis.cc: Adjust expected macro
	value.
	* testsuite/20_util/expected/version.cc: Likewise.
	* testsuite/20_util/expected/illformed_neg.cc: Prune additional
	errors from ill-formed monadic operations.
	* testsuite/20_util/expected/observers.cc: Check error_or.
	* testsuite/20_util/expected/monadic.cc: New test.

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

	* include/std/expected (expected::_M_swap_val_unex): Guard the
	correct object.
	(expected::swap): Move is_swappable
	requirement from static_assert to constraint.
	(swap): Likewise.
	(operator==): Remove noexcept-specifier.
	* testsuite/20_util/expected/swap.cc: Check swapping of
	types without non-throwing move constructor. Check constraints
	on swap.
	* testsuite/20_util/expected/unexpected.cc: Check constraints on
	swap.
	* testsuite/20_util/expected/equality.cc: New test.

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

	* include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
	Add static assert for rebind requirement.
	* testsuite/20_util/allocator_traits/members/rebind_alloc.cc:
	Fix invalid rebind member in test allocator.
	* testsuite/20_util/allocator_traits/requirements/rebind_neg.cc:
	New test.
	* testsuite/20_util/scoped_allocator/outermost.cc: Add rebind to
	test allocator.
	* testsuite/23_containers/forward_list/48101_neg.cc: Prune new
	static assert error.
	* testsuite/23_containers/unordered_multiset/48101_neg.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/48101_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/52591.cc: Fix typo in rebind.

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

	PR libstdc++/108118
	* include/bits/shared_ptr_base.h (weak_ptr::operator=):
	Implement as move-and-swap exactly as specified in the standard.
	* testsuite/20_util/weak_ptr/cons/self_move.cc: New test.

2022-12-15  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/108075
	* config/abi/pre/gnu.ver (CXXABI_1.3.14): Export
	_ZTIDF[0-9]*[_bx], _ZTIPDF[0-9]*[_bx] and _ZTIPKDF[0-9]*[_bx].
	* testsuite/util/testsuite_abi.cc (check_version): Handle
	CXXABI_1.3.14.

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

	PR libstdc++/108097
	* include/std/stacktrace (basic_stracktrace::_Impl): Do not
	multiply N by sizeof(value_type) when allocating.

2022-12-13  Jakub Jelinek  <jakub@redhat.com>

	* src/libbacktrace/backtrace-rename.h (backtrace_uncompress_zstd):
	Define.

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

	* testsuite/20_util/duration/arithmetic/overflow_c++20.cc: New
	test.

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

	PR libstdc++/108024
	* include/std/format (basic_format_string): Fix constraint.
	* testsuite/std/format/format_string.cc: New test.

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

	* include/std/chrono (hh_mm_ss): Rename __is_unsigned member to
	_S_is_unsigned.
	* include/std/format (basic_format_context): Rename _Out_
	template parameter to _Out2.
	* testsuite/17_intro/names.cc: Add Windows SAL annotation
	macros.

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

	PR libstdc++/98034
	* include/std/atomic (__cpp_lib_atomic_lock_free_type_aliases):
	Define macro.
	(atomic_signed_lock_free, atomic_unsigned_lock_free): Define
	aliases.
	* include/std/version (__cpp_lib_atomic_lock_free_type_aliases):
	Define macro.
	* testsuite/29_atomics/atomic/lock_free_aliases.cc: New test.

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

	* include/std/stacktrace (operator<<): Only output to narrow
	ostreams (LWG 3515).
	* testsuite/19_diagnostics/stacktrace/synopsis.cc:

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

	PR libstdc++/108015
	* include/std/chrono (hh_mm_ss): Remove digit separators.

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

	* include/ext/pb_ds/detail/type_utils.hpp (PB_DS_STATIC_ASSERT):
	Add unused attribute to avoid -Wunused-local-typedef warnings.
	* testsuite/17_intro/tag_type_explicit_ctor.cc: Add pragma to
	ignore -Wunused-variable warnings

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

	* include/bits/chrono.h (duration_cast, floor, round, abs, ceil)
	(time_point_cast): Add [[nodiscard]] attribute and doxygen
	comments.
	(treat_as_floating_point): Add doxygen commen.

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

	* include/bits/chrono.h (duration, time_point): Change 'struct'
	to 'class'.

2022-12-07  Jonathan Wakely  <jwakely@redhat.com>
	    François Dumont  <frs.dumont@gmail.com>

	* include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
	(_Error_formatter::_Error_formatter): Pass error handler to
	__glibcxx_backtrace_create_state. Pass 1 for threaded argument.
	(_Error_formatter::_S_err): Define empty function.
	* src/c++11/debug.cc (_Error_formatter::_M_error): Pass error
	handler to __glibcxx_backtrace_full.

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

	PR libstdc++/107979
	* testsuite/17_intro/names.cc: Do not check __unused on old
	Glibc versions.

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

	PR libstdc++/107871
	* include/std/format (_Iter_sink::_M_overflow): Add cast to
	size_t.
	(_Iter_sink<CharT, contiguous_iterator auto>::_M_make_span): Use
	typedef instead of decltype.
	* testsuite/std/format/functions/107871.cc: New test.

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

	* include/std/chrono (chrono::hh_mm_ss): Do not use 64-bit
	representations for all four duration members. Reorder members.
	(hh_mm_ss::hh_mm_ss()): Define as defaulted.
	(hh_mm_ss::hh_mm_ss(Duration)): Delegate to a new private
	constructor, instead of calling chrono::abs repeatedly.
	* testsuite/std/time/hh_mm_ss/1.cc: Check floating-point
	representations. Check default constructor. Check sizes.

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

	PR c++/106434
	* include/bits/vector.tcc (insert(const_iterator, const T&)):
	Add assertion and optimization hint that the iterator for the
	insertion point must be non-null.

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

	* include/bits/std_mutex.h (mutex): Add nodiscard attribute to
	try_lock member function.
	* include/bits/unique_lock.h (unique_lock): Likewise for
	try_lock, try_lock_until, try_lock_for member functions, and
	owns_lock and mutex member functions.
	* include/std/mutex (recursive_mutex): Likewise for try_lock
	member function.
	(timed_mutex, recursive_timed_mutex, try_lock): Likewise for
	try_lock, try_lock_until, try_lock_for member functions.
	(try_lock): Likewise for non-member function.
	* include/std/shared_mutex (shared_mutex): Likewise for try_lock
	and try_lock_shared member functions.
	(shared_timed_mutex): Likewise for try_lock, try_lock_for,
	try_lock_shared, try_lock_shared_for, try_lock_until, and
	try_lock_shared_until member functions.
	(shared_lock): Likewise for try_lock, try_lock, try_lock_for,
	try_lock_until, owns_lock, and mutex member functions.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
	Cast discarded value expression to void.
	* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/clock_neg.cc:
	Likewise.
	* testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
	Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
	Likewise.
	* testsuite/30_threads/try_lock/4.cc: Likewise.
	* testsuite/30_threads/unique_lock/cons/60497.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/unique_lock/locking/clock_neg.cc:
	Likewise.

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

	* include/std/format (basic_format_parse_context::next_arg_id):
	Only check arg-id is in range during constant evaluation.
	* testsuite/std/format/functions/format.cc: Check "{:#Lx}".
	* testsuite/std/format/parse_ctx.cc: Adjust expected results for
	format-strings using an out-of-range arg-id.

2022-12-04  Iain Sandoe  <iain@sandoe.co.uk>

	* config/os/bsd/darwin/os_defines.h
	(_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC): Limit use of this macro
	to OS versions that need it.

2022-12-04  Iain Sandoe  <iain@sandoe.co.uk>

	* config/os/bsd/darwin/os_defines.h (_GLIBCXX_WEAK_DEFINITION): Use the
	implementation namespace for the weak attribute.

2022-12-02  Björn Schäpers  <bjoern@hazardy.de>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/std/stacktrace (stacktrace_entry::_S_err_handler): New
	static function.
	(stacktrace_entry, basic_stacktrace): Pass &_S_err_handler to
	all calls to libbacktrace.

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

	PR libstdc++/107852
	PR libstdc++/106199
	PR libstdc++/100366
	* include/bits/vector.tcc (vector::_M_fill_insert): Copy
	_M_start and _M_finish members before allocating.
	(vector::_M_default_append): Likewise.
	(vector::_M_range_insert): Likewise.

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

	* include/bits/stl_iterator_base_types.h (__iterator_category):
	Add always_inline attribute.
	* include/bits/stl_vector.h (assign(Iter, Iter)): Call
	_M_assign_aux directly, instead of _M_assign_dispatch.
	(insert(const_iterator, Iter, Iter)): Call _M_range_insert
	directly instead of _M_insert_dispatch.

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

	* include/std/format: Rename all variables called __used or
	__packed.
	* testsuite/17_intro/badnames.cc: Add no_pch options.
	* testsuite/17_intro/names.cc: Check __packed, __unused and
	__used.

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

	* testsuite/20_util/function/cons/70692.cc: Adapt dg-error message.

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

	PR libstdc++/107801
	* src/c++17/memory_resource.cc (chunk::_M_bytes): Change type
	from uint32_t to bitset::size_type. Adjust static assertion.
	(__pool_resource::_Pool::replenish): Cast to size_t after
	multiplication instead of before.
	(__pool_resource::_M_alloc_pools): Ensure both arguments to
	std::max have type size_t.

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

	* include/std/string_view (basic_string_view::copy) Use explicit
	template argument for call to std::min<size_t>.
	(basic_string_view::substr): Likewise.

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

	PR libstdc++/107885
	* libsupc++/hash_bytes.cc (_Hash_bytes): Convert to size_t
	instead of implicit integer promotion to 16 bits.

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

	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
	Replace non-ASCII character.

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

	* testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
	Simplify dg-prune-output pattern.
	* testsuite/lib/prune.exp (libstdc++-dg-prune): Prune "::__8".

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

	PR libstdc++/107466
	* include/bits/random.h (subtract_with_carry_engine): Use 32-bit
	type for default seed. Use 0u as default argument for
	subtract_with_carry_engine(result_type) constructor and
	seed(result_type) member function.
	* include/bits/random.tcc (subtract_with_carry_engine): Use
	32-bit type for default seed and engine used for initial state.
	* testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
	New test.

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

	* acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT
	unless the AC_MSG_CHECKING happened.
	* configure: Regenerate.

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

	PR libstdc++/107850
	* include/bits/erase_if.h (__erase_nodes_if): Use non-const
	reference to the container.
	* include/experimental/map (erase_if): Likewise.
	* include/experimental/set (erase_if): Likewise.
	* include/experimental/unordered_map (erase_if): Likewise.
	* include/experimental/unordered_set (erase_if): Likewise.
	* include/std/map (erase_if): Likewise.
	* include/std/set (erase_if): Likewise.
	* include/std/unordered_map (erase_if): Likewise.
	* include/std/unordered_set (erase_if): Likewise.
	* testsuite/23_containers/map/erasure.cc: Check with
	const-incorrect predicate.
	* testsuite/23_containers/set/erasure.cc: Likewise.
	* testsuite/23_containers/unordered_map/erasure.cc: Likewise.
	* testsuite/23_containers/unordered_set/erasure.cc: Likewise.
	* testsuite/experimental/map/erasure.cc: Likewise.
	* testsuite/experimental/set/erasure.cc: Likewise.
	* testsuite/experimental/unordered_map/erasure.cc: Likewise.
	* testsuite/experimental/unordered_set/erasure.cc: Likewise.

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

	* include/bits/random.h [three_way_comparison] (operator!=):
	Do not define inequality operators when C++20 three way
	comparisons are supported.
	* include/ext/random [three_way_comparison] (operator!=):
	Likewise.

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

	* include/bits/stl_iterator_base_funcs.h (__distance):
	Add always_inline attribute to overload for random
	access iterators.
	(advance, distance, next, prev): Add always_inline attribute to
	inline functions that just forward to another function.

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

	* doc/html/manual/bugs.html: Regenerate.
	* doc/xml/manual/intro.xml: Document LWG 3656 change.
	* include/std/bit (__bit_width, bit_width): Return int.
	* testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: New test.

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

	PR libstdc++/106201
	* testsuite/27_io/filesystem/iterators/106201.cc: Improve test.
	* testsuite/experimental/filesystem/iterators/106201.cc: New test.

2022-11-24  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/107468
	* src/c++17/fast_float/MERGE: Adjust for merge from upstream.
	* src/c++17/fast_float/fast_float.h: Merge from fast_float
	2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit.

2022-11-24  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/107815
	* testsuite/20_util/to_chars/float128_c++23.cc (test): Disable
	__FLT128_MAX__ test on Solaris.  Fix up commented out debugging
	printouts.

2022-11-23  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/107811
	* src/c++17/floating_from_chars.cc (__floating_from_chars_hex): Guard
	fast_float uses with #if USE_LIB_FAST_FLOAT and for mantissa_bits and
	exponent_bits provide a fallback.

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

	PR libstdc++/107814
	* testsuite/experimental/filesystem/iterators/error_reporting.cc:
	Use a static buffer with space after it.

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

	PR libstdc++/107817
	* include/std/charconv (__from_chars_alnum_to_val): Add
	constexpr for C++20.
	* include/std/format (__is_digit, __is_xdigit): New functions.
	(_Spec::_S_parse_width_or_precision): Use __is_digit.
	(__formatter_fp::parse): Use __is_xdigit.

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

	PR libstdc++/106201
	* testsuite/27_io/filesystem/iterators/106201.cc: New test.

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

	PR libstdc++/107801
	* src/c++17/memory_resource.cc (pool_sizes): Disable large pools
	for targets with 16-bit int.

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

	* include/std/functional (_Bind_front0): New class template.
	(_Bind_front_t): Use _Bind_front0 when there are no bound
	arguments.
	* testsuite/20_util/function_objects/bind_front/107784.cc:
	New test.

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

	* include/bits/chrono.h (duration): Check preconditions on
	template arguments before using them.

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

	* include/std/tuple: Add better Doxygen comments.

2022-11-21  Martin Liska  <mliska@suse.cz>

	* src/experimental/Makefile.in: Re-configure.

2022-11-20  François Dumont  <fdumont@gcc.gnu.org>

	* include/std/format: Add std qualification on isxdigit calls.

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

	* include/bits/range_access.h: Add always_inline attribute to
	trivial functions.

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

	* include/std/format: Fix -Wsign-compare warnings.

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

	* include/bits/ptr_traits.h (pointer_traits::pointer_to): Rename
	parameter.

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

	PR libstdc++/107649
	* include/std/complex (__complex_proj): Fix requires-clause.

2022-11-19  Jeff Chapman II  <jchapman@lock3software.com>
	    Andrew Marmaduke  <amarmaduke@lock3software.com>
	    Jason Merrill   <jason@redhat.com>

	* acinclude.m4 (glibcxx_SUBDIRS): Add src/experimental.
	* include/Makefile.am (experimental_headers): Add contract.
	* include/Makefile.in: Regenerate.
	* src/Makefile.am (SUBDIRS): Add experimental.
	* src/Makefile.in: Regenerate.
	* configure: Regenerate.
	* src/experimental/contract.cc: New file.
	* src/experimental/Makefile.am: New file.
	* src/experimental/Makefile.in: New file.
	* include/experimental/contract: New file.

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

	PR libstdc++/107720
	* include/std/format [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT]:
	Declare overloads of std::to_chars for the alternative long
	double type.

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

	PR libstdc++/107720
	* include/std/format (__format::_Arg_t): Fix typo in enumerator
	name.
	(_Arg_value::_S_get): Fix missing semi-colons.

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

	* include/std/chrono (get_leap_second_info): Optimize.

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

	PR libstdc++/107712
	* include/std/format (__format::__formatter_int::format): Use
	std::toupper when __builtin_toupper isn't available.
	(basic_format_arg::handle): Add 'typename'.
	* include/std/complex (complex<T>): Add 'typename'.

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

	* include/std/format [__FLT128_DIG__] (_GLIBCXX_FORMAT_F128):
	Only support formatting _Float128 when glibc provides the
	functionality needed for accurate std::to_chars.

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

	* testsuite/std/time/clock/utc/1.cc: Check handling across leap
	second insertion.

2022-11-16  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/107701
	* include/std/iostream (__ioinit): Adjust comment.
	* src/c++98/globals_io.cc: Include "io_base_init.h" here
	instead of ...
	* src/c++98/ios_init.cc: ... here.
	* src/c++98/ios_base_init.h (__ioinit): More comments.
	* testsuite/17_intro/static.cc: dg-do run instead of just link.

2022-11-16  Jakub Jelinek  <jakub@redhat.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/107649
	* include/std/complex (__complex_abs, __complex_arg, __complex_cos,
	__complex_cosh, __complex_exp, __complex_log, __complex_sin,
	__complex_sinh, __complex_sqrt, __complex_tan, __complex_tanh,
	__complex_pow): Move __complex__ _Float{16,32,64,128} and
	__complex__ decltype(0.0bf16) overloads earlier in the file.
	(complex): Fix up requires on the partial specialization for extended
	float types.
	(__complex_acos, __complex_asin, __complex_atan, __complex_acosh,
	__complex_asinh, __complex_atanh): Move
	__complex__ _Float{16,32,64,128} and __complex__ decltype(0.0bf16)
	overloads earlier in the file.

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

	* python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Make
	expansion of std::string in manager name more robust.

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

	* python/libstdcxx/v6/printers.py (is_specialization_of): Fix
	incorrect terminology in docstring and describe arguments.
	(FilteringTypePrinter): Add default argument for new parameter,
	enhance docstring.

2022-11-16  François Dumont  <fdumont@gcc.gnu.org>

	* python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field
	'template'. Add self.targ1 to specify the first template parameter of the instantiation
	to match.
	(add_one_type_printer): Add targ1 optional parameter, default to None.
	Use gdb.types.get_basic_type to compare the type to recognize and the type
	returned from the typedef lookup.
	(register_type_printers): Adapt calls to add_one_type_printers.

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

	* testsuite/std/format/functions/format.cc: Do not use
	std::make_unsigned_t<__int128>.

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

	* include/std/format (formattable): Only define for C++23/
	* testsuite/std/format/formatter.cc: Moved to...
	* testsuite/std/format/formatter/requirements.cc: ...here.
	* testsuite/std/format/formatter/concept.cc: New test.
	* testsuite/std/format/functions/format.cc: Replace use of
	std::formattable in C++20.

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

	PR libstdc++/107693
	* include/std/format (_GLIBCXX_FORMAT_F128): Define to 2 when
	basic_format_arg needs to use its _M_f128 member.
	(__extended_floating_point, __floating_point): Replace with ...
	(__formattable_floating_point): New concept.
	* testsuite/std/format/functions/format.cc: Check whether
	__float128 is supported. Also test _Float128.

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

	* doc/xml/manual/documentation_hacking.xml: Document use of
	Markdown for Doxygen comments. Tweak formatting.
	* doc/html/manual/documentation_hacking.html: Regenerate.

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

	* python/Makefile.am (install-data-local): Use mkdirs_p for debug
	libdir.
	* python/Makefile.in: Regenerate.

2022-11-14  Bernhard Reutner-Fischer  <rep.dot.nop@gmail.com>

	* src/Makefile.am (install-debug): Remove use of $(debugdir).
	* src/Makefile.in: Regenerate.

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

	* include/std/chrono (utc_clock, tai_clock, gps_clock): Define.
	(clock_time_conversion, clock_cast): Define.
	(sys_info, local_info): Define structs for timezone information.
	(nonexistent_local_time, ambiguous_local_time): Define
	exceptions for invalid times.
	(time_zone, time_zone_link, leap_second, zoned_traits, tzdb)
	(tzdb_list): Define classes representing time zones.
	(get_leap_second_info): Define new function returning leap
	second offset for a given time point.
	* testsuite/std/time/clock/gps/1.cc: New test.
	* testsuite/std/time/clock/tai/1.cc: New test.
	* testsuite/std/time/clock/utc/1.cc: New test.

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

	PR libstdc++/104166
	* include/Makefile.am (std_headers): Add <format>.
	* include/Makefile.in: Regenerate.
	* include/precompiled/stdc++.h: Add <format>.
	* include/std/format: New file.
	* python/libstdcxx/v6/printers.py (StdFormatArgsPrinter): New
	printer for std::format_args.
	* testsuite/std/format/arguments/args.cc: New test.
	* testsuite/std/format/error.cc: New test.
	* testsuite/std/format/formatter.cc: New test.
	* testsuite/std/format/functions/format.cc: New test.
	* testsuite/std/format/functions/format_to_n.cc: New test.
	* testsuite/std/format/functions/size.cc: New test.
	* testsuite/std/format/functions/vformat_to.cc: New test.
	* testsuite/std/format/parse_ctx.cc: New test.
	* testsuite/std/format/string.cc: New test.
	* testsuite/std/format/string_neg.cc: New test.

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

	* include/bits/charconv.h (__integer_to_chars_is_unsigned):
	New variable template.
	(__to_chars_len, __to_chars_10_impl): Use variable template in
	assertions to allow unsigned __int128 in strict mode.
	* include/std/charconv (__to_chars, __to_chars_16)
	(__to_chars_10, __to_chars_8, __to_chars_2): Likewise.

2022-11-12  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/107636
	* include/std/charconv (to_chars): Fix up powerpc64le _Float128
	overload __extension__ placement.

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

	* src/Makefile.am: Simplify debug build targets.
	* src/Makefile.in: Regenerate.

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

	PR libstdc++/103755
	* src/c++11/locale-inst-monetary.h: Include new header.
	* src/c++11/locale-inst-numeric.h: Likewise.
	* src/c++11/locale-inst.cc: Likewise.
	(INSTANTIATE_USE_FACET, INSTANTIATE_FACET_ACCESSORS): Move
	macro definitions to ...
	* src/c++11/facet_inst_macros.h: New file.

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

	PR libstdc++/95048
	* include/experimental/bits/fs_path.h (path::_Cvt::_S_wconvert):
	Construct codecvt directly instead of getting it from the
	locale.

2022-11-11  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR libstdc++/103295
	* include/bits/basic_string.h (_M_use_local_data): Set active
	member to _M_local_buf.

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

	PR libstdc++/95048
	* include/bits/fs_path.h (path::_Codecvt): New class template
	that selects the kind of code conversion done.
	(path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t).
	(_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to
	be used for Windows and POSIX.
	(path::_S_convert(const EcharT*, const EcharT*)): Simplify by
	using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions.
	(path::_S_str_convert(basic_string_view<value_type>, const A&)):
	Simplify nested conditions.
	* include/experimental/bits/fs_path.h (path::_Cvt): Define
	nested typedef controlling type of code conversion done.
	(path::_Cvt::_S_wconvert): Use new typedef.
	(path::string(const A&)): Likewise.
	* testsuite/27_io/filesystem/path/construct/95048.cc: New test.
	* testsuite/experimental/filesystem/path/construct/95048.cc: New
	test.

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

	* testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add
	const qualifier.
	* testsuite/26_numerics/valarray/87641.cc (X::operator==):
	Likewise.

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

	* include/std/charconv (__from_chars_alnum_to_val_table::value):
	[!__cpp_inline_variables]: Add non-inline definition.

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

	* testsuite/experimental/propagate_const/observers/107525.cc:
	Use type trait instead of C++17 variable template.

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

	PR libstdc++/103755
	* config/abi/pre/gnu.ver: Tighten patterns for facets in the
	base version. Add exports for __try_use_facet.
	* include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
	__try_use_facet instead of has_facet and use_facet.
	* include/bits/fstream.tcc (basic_filebuf::basic_filebuf()):
	Likewise.
	(basic_filebuf::imbue): Likewise.
	* include/bits/locale_classes.h (locale, locale::id)
	(locale::_Impl): Declare __try_use_facet as a friend.
	* include/bits/locale_classes.tcc (__try_use_facet): Define new
	function template with special cases for default facets.
	(has_facet, use_facet): Call __try_use_facet.
	* include/bits/locale_facets.tcc (__try_use_facet): Declare
	explicit instantiations.
	* include/bits/locale_facets_nonio.tcc (__try_use_facet):
	Likewise.
	* src/c++11/locale-inst-monetary.h (INSTANTIATE_FACET_ACCESSORS):
	Use new macro for facet accessor instantiations.
	* src/c++11/locale-inst-numeric.h (INSTANTIATE_FACET_ACCESSORS):
	Likewise.
	* src/c++11/locale-inst.cc (INSTANTIATE_USE_FACET): Define new
	macro for instantiating __try_use_facet and use_facet.
	(INSTANTIATE_FACET_ACCESSORS): Define new macro for also
	defining has_facet.
	* src/c++98/compatibility-ldbl.cc (__try_use_facet):
	Instantiate.
	* testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust
	expected errors.

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

	* include/std/concepts (__detail::__destructible_impl)
	(__detail::__destructible): New variable templates.
	(destructible): Use __detail::__destructible.
	* testsuite/std/concepts/concepts.lang/concept.destructible/1.cc:
	Add more checks for array and reference types.

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

	* testsuite/18_support/new_nothrow.cc: Add missing noexcept
	to operator delete replacements.
	* testsuite/20_util/any/cons/92156.cc: Disable
	-Winit-list-lifetime warnings from instantiating invalid
	specialization of manager function.
	* testsuite/20_util/any/modifiers/92156.cc: Likewise.
	* testsuite/20_util/default_delete/void_neg.cc: Prune additional
	diagnostics.
	* testsuite/20_util/headers/memory/synopsis.cc: Add missing
	noexcept.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Prune
	additional diagnostic.
	* testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Add
	missing noexcept to operator delete replacements.
	* testsuite/21_strings/basic_string/cons/char/103919.cc:
	Likewise.
	* testsuite/23_containers/map/modifiers/emplace/92300.cc:
	Likewise.
	* testsuite/23_containers/map/modifiers/insert/92300.cc:
	Likewise.
	* testsuite/24_iterators/headers/iterator/range_access_c++11.cc:
	Add missing noexcept to synopsis declarations.
	* testsuite/24_iterators/headers/iterator/range_access_c++14.cc:
	Likewise.
	* testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
	Likewise.

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

	* include/bits/stl_tempbuf.h (_Temporary_buffer): Disable
	warnings about get_temporary_buffer being deprecated.
	* include/ext/functional (mem_fun1, mem_fun1_ref): Disable
	warnings about mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t and
	const_mem_fun1_ref_t being deprecated.
	* include/std/array (__array_traits<T, 0>): Remove artificial
	attributes which give warnings about being ignored.
	* include/std/spanstream (basic_spanbuf::setbuf): Add assertion
	and adjust to avoid narrowing warning.
	* libsupc++/exception_ptr.h [!__cpp_rtti && !__cpp_exceptions]
	(make_exception_ptr): Add missing inline specifier.

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

	* include/bits/alloc_traits.h (allocator_traits): Add
	always_inline attribute to all member functions.
	(__do_alloc_on_copy, __alloc_on_copy, __do_alloc_on_move)
	(__alloc_on_move, __do_alloc_on_swap, __alloc_on_swap)
	(_Destroy(FwdIter, FwdIter, allocator<T>&)): : Add
	always_inline attribute.
	* include/bits/allocator.h (allocator): Add always_inline
	attribute to all member functions and equality operators.
	* include/bits/new_allocator.h (__new_allocator): Likewise.
	* include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits):
	Likewise.

2022-11-08  Charles-François Natali  <cf.natali@gmail.com>

	PR libstdc++/63746
	* include/bits/fstream.tcc (basic_filbuf::xsputn): Remove
	1024-byte chunking that bypasses the buffer for large writes.
	* testsuite/27_io/basic_filebuf/sputn/char/63746.cc: New test.

2022-11-08  Will Hawkins  <whh8b@obs.cr>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (__str_cat): Add common function
	that performs single-allocation string concatenation.
	(operator+): Use __str_cat.
	* include/bits/basic_string.tcc (operator+): Move to .h and
	define inline using __str_cat.

2022-11-08  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/20_util/to_chars/float128_c++23.cc (test): Uncomment
	denorm_min test.

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

	* doc/xml/authors.xml: Update the blurb listing my doc
	contributions.

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

	* doc/xml/authors.xml: Remove empty author element.
	* doc/xml/manual/spine.xml: Likewise.
	* doc/html/manual/index.html: Regenerate.

2022-11-08  Joseph Myers  <joseph@codesourcery.com>

	PR libstdc++/107562
	* src/c++17/floating_from_chars.cc (from_chars_impl): Fix syntax
	error.

2022-11-08  Jason Merrill  <jason@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* testsuite/18_support/comparisons/algorithms/fallback.cc: Adjust
	asserts.

2022-11-07  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/107562
	* src/c++17/floating_from_chars.cc (__strtof128): Put __asm before
	__attribute__.
	* src/c++17/floating_to_chars.cc (__strfromf128): Likewise.

2022-11-07  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (as_rvalue_view): Define.
	(enable_borrowed_range<as_rvalue_view>): Define.
	(views::__detail::__can_as_rvalue_view): Define.
	(views::_AsRvalue, views::as_rvalue): Define.
	* testsuite/std/ranges/adaptors/as_rvalue/1.cc: New test.

2022-11-07  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (__maybe_const_t): New alias for
	__detail::__maybe_const_t.
	(__detail::__cartesian_product_is_random_access): Define.
	(__detail::__cartesian_product_common_arg): Define.
	(__detail::__cartesian_product_is_bidirectional): Define.
	(__detail::__cartesian_product_is_common): Define.
	(__detail::__cartesian_product_is_sized): Define.
	(__detail::__cartesian_is_sized_sentinel): Define.
	(__detail::__cartesian_common_arg_end): Define.
	(cartesian_product_view): Define.
	(cartesian_product_view::_Iterator): Define.
	(views::__detail::__can_cartesian_product_view): Define.
	(views::_CartesianProduct, views::cartesian_product): Define.
	* testsuite/std/ranges/cartesian_product/1.cc: New test.

2022-11-07  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/107468
	* src/c++17/fast_float/MERGE: Adjust for merge from upstream.
	* src/c++17/fast_float/LOCAL_PATCHES: Remove commits that were
	upstreamed.
	* src/c++17/fast_float/README.md: Merge from fast_float
	662497742fea7055f0e0ee27e5a7ddc382c2c38e commit.
	* src/c++17/fast_float/fast_float.h: Likewise.
	* testsuite/20_util/from_chars/pr107468.cc: New test.

2022-11-07  Jakub Jelinek  <jakub@redhat.com>

	* include/std/charconv (from_chars, to_chars): Add _Float128
	overfloads if _GLIBCXX_HAVE_FLOAT128_MATH is defined.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export
	_ZSt8to_charsPcS_DF128_, _ZSt8to_charsPcS_DF128_St12chars_format,
	_ZSt8to_charsPcS_DF128_St12chars_formati and
	_ZSt10from_charsPKcS0_RDF128_St12chars_format.
	* src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
	Define if needed.
	(__strtof128): Declare.
	(from_chars_impl): Handle _Float128.
	(from_chars): New _Float128 overload if USE_STRTOF128_FOR_FROM_CHARS
	is define.
	* src/c++17/floating_to_chars.cc (__strfromf128): Declare.
	(FLOAT128_TO_CHARS): Define even when _Float128 is supported and
	wider than long double.
	(F128_type): Use _Float128 for that case.
	(floating_type_traits): Specialize for F128_type rather than
	__float128.
	(sprintf_ld): Add length argument.  Handle _Float128.
	(__floating_to_chars_shortest, __floating_to_chars_precision):
	Pass length to sprintf_ld.
	(to_chars): Add _Float128 overloads for the F128_type being
	_Float128 cases.
	* testsuite/20_util/to_chars/float128_c++23.cc: New test.

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

	* include/bits/atomic_wait.h (_detail::__platform_wait_alignment):
	Declare inline.  Remove redundant static specifier.
	(__detail::__atomic_spin_count_relax): Declare inline.
	(__detail::__atomic_spin_count): Likewise.
	* include/bits/regex_automaton.h (__detail::_S_invalid_state_id):
	Declare inline for C++17.  Declare constexpr.  Remove
	redundant const and static specifiers.
	* include/bits/regex_error.h (regex_constants::error_collate):
	Declare inline for C++17 as per P0607R0.
	(regex_constants::error_ctype): Likewise.
	(regex_constants::error_escape): Likewise.
	(regex_constants::error_backref): Likewise.
	(regex_constants::error_brack): Likewise.
	(regex_constants::error_paren): Likewise.
	(regex_constants::error_brace): Likewise.
	(regex_constants::error_badbrace): Likewise.
	(regex_constants::error_range): Likewise.
	(regex_constants::error_space): Likewise.
	(regex_constants::error_badrepeat): Likewise.
	(regex_constants::error_complexity): Likewise.
	(regex_constants::error_stack): Likewise.
	* include/ext/concurrence.h (__gnu_cxx::__default_lock_policy):
	Likewise.  Remove redundant static specifier.
	* include/pstl/execution_defs.h (execution::seq): Declare inline
	for C++17 as per P0607R0.
	(execution::par): Likewise.
	(execution::par_unseq): Likewise.
	(execution::unseq): Likewise.

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

	PR libstdc++/44952
	PR libstdc++/39796
	PR libstdc++/98108
	* include/std/iostream (__ioinit): No longer define here if
	the init_priority attribute is usable.
	* src/c++98/ios_init.cc (__ioinit): Define here instead if
	init_priority is usable, via ...
	* src/c++98/ios_base_init.h: ... this new file.

2022-11-05  Jakob Hasse  <0xjakob@users.noreply.github.com>

	PR libstdc++/105387
	* libsupc++/pbase_type_info.cc (__do_catch) [!__cpp_rtti]: Add
	check that the thrown type is actually a pointer.
	* testsuite/18_support/105387.cc: New test.
	* testsuite/18_support/105387_memptr.cc: New test.

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

	PR libstdc++/107525
	* include/experimental/propagate_const (operator element_type*()):
	Move into base class that can be partially specilized to iompose
	constraints.
	(operator const element_type*()): Likewise.
	* testsuite/experimental/propagate_const/observers/107525.cc: New test.

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

	PR libstdc++/107500
	* libsupc++/eh_globals.cc (eh_globals): Remove immortalizing
	wrapper.
	(__cxxabiv1::__cxa_get_globals_fast): Adjust.
	(__cxxabiv1::__cxa_get_globals): Adjust.

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

	PR libstdc++/107511
	* libsupc++/eh_alloc.cc (_GNU_SOURCE): Define.

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

	* include/bits/ranges_algobase.h (__detail::__copy_or_move):
	Move output iterator.
	* testsuite/25_algorithms/copy/constrained.cc: Check copying to
	move-only output iterator.

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

	* libsupc++/eh_globals.cc (constant_init::unused): Remove.
	* src/c++11/system_error.cc (constant_init::unused): Remove.
	* src/c++17/memory_resource.cc (constant_init::unused): Remove.

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

	* src/c++17/floating_from_chars.cc (from_chars_impl): In the
	ERANGE case, distinguish between a denormal result and true
	underflow by checking if the return value is 0.

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

	* include/std/expected (expected::_M_invalid): Remove.

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

	* include/std/variant (__variant::_Multi_array::__untag_result):
	Use pragma to suppress warning.

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

	* libsupc++/compare (_Strong_order::_Fp_fmt): Add _Bfloat16.
	(_Strong_order::_Bfloat16): New static data member.
	(_Strong_order::_S_fp_fmt): Return _Bfloat16 for std::bfloat16_t.

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

	* src/c++17/floating_to_chars.cc (__floating_to_chars_hex): Drop const
	from unbiased_exponent.  Canonicalize denormals such that they have
	the leading bit set by shifting effective mantissa up and decreasing
	unbiased_exponent.
	(__floating_to_chars_shortest): Don't instantiate
	__floating_to_chars_hex for float16_t either and use float instead.
	* testsuite/20_util/to_chars/float.cc (float_to_chars_test_cases):
	Adjust testcases for shortest hex denormals.
	* testsuite/20_util/to_chars/double.cc (double_to_chars_test_cases):
	Likewise.

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

	* include/std/charconv (__from_chars_float16_t,
	__from_chars_bfloat16_t): Declare.
	(from_chars): Add _Float16 and __gnu_cxx::__bfloat16_t overloads.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export
	_ZSt22__from_chars_float16_tPKcS0_RfSt12chars_format and
	_ZSt23__from_chars_bfloat16_tPKcS0_RfSt12chars_format.
	* src/c++17/floating_from_chars.cc
	(fast_float::floating_type_float16_t,
	fast_float::floating_type_bfloat16_t): New classes.
	(fast_float::binary_format<floating_type_float16_t>,
	fast_float::binary_format<floating_type_bfloat16_t>): New
	specializations.
	(fast_float::to_float<floating_type_float16_t>,
	fast_float::to_float<floating_type_bfloat16_t>,
	fast_float::to_extended<floating_type_float16_t>,
	fast_float::to_extended<floating_type_bfloat16_t>): Likewise.
	(fast_float::from_chars_16): New template function.
	(__floating_from_chars_hex): Allow instantiation with
	fast_float::floating_type_{,b}float16_t.
	(from_chars): Formatting fixes for float/double/long double overloads.
	(__from_chars_float16_t, __from_chars_bfloat16_t): New functions.
	* testsuite/20_util/to_chars/float16_c++23.cc: New test.

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

	* include/std/charconv (__to_chars_float16_t, __to_chars_bfloat16_t):
	Declare.
	(to_chars): Add _Float16 and __gnu_cxx::__bfloat16_t overloads.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export
	_ZSt20__to_chars_float16_tPcS_fSt12chars_format and
	_ZSt21__to_chars_bfloat16_tPcS_fSt12chars_format.
	* src/c++17/floating_to_chars.cc (floating_type_float16_t,
	floating_type_bfloat16_t): New types.
	(floating_type_traits<floating_type_float16_t>,
	floating_type_traits<floating_type_bfloat16_t>,
	get_ieee_repr<floating_type_float16_t>,
	get_ieee_repr<floating_type_bfloat16_t>,
	__handle_special_value<floating_type_float16_t>,
	__handle_special_value<floating_type_bfloat16_t>): New specializations.
	(floating_to_shortest_scientific): Handle floating_type_float16_t
	and floating_type_bfloat16_t like IEEE quad.
	(__floating_to_chars_shortest): For floating_type_bfloat16_t call
	__floating_to_chars_hex<float> rather than
	__floating_to_chars_hex<floating_type_bfloat16_t> to avoid
	instantiating the latter.
	(__to_chars_float16_t, __to_chars_bfloat16_t): New functions.

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

	* include/std/charconv (from_chars, to_chars): Add _Float{32,64,128}
	overloads for cases where those types match {float,double,long double}.
	* include/std/istream (basic_istream::operator>>): Add
	_Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
	* include/std/ostream (basic_ostream::operator<<): Add
	_Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
	* testsuite/20_util/from_chars/8.cc: New test.
	* testsuite/26_numerics/headers/cmath/nextafter_c++23.cc (test):
	Formatting fixes.
	* testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: Add
	dg-options "-std=gnu++2b".
	(test_functions, main): Formatting fixes.
	* testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc:
	Add dg-options "-std=gnu++2b".

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

	* include/std/complex (complex::complex converting ctor): For C++23
	use explicit specifier with constant expression.  Explicitly cast
	both parts to _Tp.
	(__complex_abs, __complex_arg, __complex_cos, __complex_cosh,
	__complex_exp, __complex_log, __complex_sin, __complex_sinh,
	__complex_sqrt, __complex_tan, __complex_tanh, __complex_pow): Add
	__complex__ _Float{16,32,64,128} and __complex__ decltype(0.0bf16)
	overloads.
	(complex<float>::complex converting ctor,
	complex<double>::complex converting ctor,
	complex<long double>::complex converting ctor): For C++23 implement
	as template with explicit specifier with constant expression
	and explicit casts.
	(__complex_type): New template.
	(complex): New partial specialization for types with extended floating
	point types.
	(__complex_acos, __complex_asin, __complex_atan, __complex_acosh,
	__complex_asinh, __complex_atanh): Add __complex__ _Float{16,32,64,128}
	and __complex__ decltype(0.0bf16) overloads.
	(__complex_proj): Likewise.  Add template for complex of extended
	floating point types.
	* include/bits/cpp_type_traits.h (__is_floating): Specialize for
	_Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
	* testsuite/26_numerics/complex/ext_c++23.cc: New test.

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

	* config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH):
	Uncomment.
	* include/c_global/cmath (nextafter(_Float16, _Float16)): Make it constexpr.
	If std::__is_constant_evaluated() call __builtin_nextafterf16.
	(nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)): Similarly
	but call __builtin_nextafterf16b.
	* testsuite/26_numerics/headers/cmath/nextafter_c++23.cc (test): Add
	static assertions to test constexpr nextafter.

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

	* include/bits/fs_path.h (path::filename()): Fix dangling
	reference.

2022-10-28  Arsen Arsenović  <arsen@aarsen.me>

	* include/std/functional: Make placeholders inline, if possible.

2022-10-28  Arsen Arsenović  <arsen@aarsen.me>

	* configure.ac: Stop generating gstdint.h.
	* src/c++11/compatibility-atomic-c++0x.cc: Stop using gstdint.h.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: 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.
	* src/libbacktrace/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

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

	PR libstdc++/107376
	* include/bits/regex_executor.h (_Executor::_Executor): Use same
	allocator for _M_cur_results and _M_results.
	* include/bits/regex_executor.tcc (_Executor::_M_main_dispatch):
	Prevent possibly incorrect allocator propagating to
	_M_cur_results.
	* testsuite/28_regex/algorithms/regex_match/107376.cc: New test.

2022-10-26  Marek Polacek  <polacek@redhat.com>

	PR c++/106393
	* include/bits/locale_classes.tcc: Add #pragma to disable
	-Wdangling-reference with std::use_facet.

2022-10-21  Arsen Arsenović  <arsen@aarsen.me>

	* acinclude.m4: Default hosted to off if building without
	headers and without newlib.
	* configure: Regenerate.

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

	* include/bits/mofunc_impl.h (move_only_function::__param_t):
	Use __is_scalar instead of is_trivially_copyable.
	* testsuite/20_util/move_only_function/call.cc: Check parameters
	involving incomplete types.

2022-10-20  Patrick Palka  <ppalka@redhat.com>

	* include/std/charconv (__detail::__from_chars_alnum_to_val_table):
	Redefine as a class template containing the members type, value and
	_S_make_table.  Don't use a local class as the table type.
	(__detail::__table): Remove.
	(__detail::__from_chars_alnum_to_val): Adjust after the above.

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

	* include/std/ranges (views::__detail::__is_repeat_view): Define
	and later define a partial specialization.
	(views::__detail::__take_of_repeat_view): Declare and later define.
	(views::__detail::__drop_of_repeat_view): Likewise.
	(views::_Take::operator()): Return a repeat_view if the argument
	is a repeat_view as per P2474R2.
	(views::_Drop::operator()): Likewise.
	(repeat_view): Befriend __take/drop_of_repeat_view.
	* testsuite/std/ranges/repeat/1.cc (test04): New test.

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

	PR libstdc++/107313
	* include/std/ranges (stride_view::_Iterator::operator-): Fix typo.
	* testsuite/std/ranges/adaptors/stride/1.cc (test03): New test.

2022-10-19  LIU Hao  <lh_mouse@126.com>

	* src/c++11/thread.cc (get_nprocs): Add new implementation
	for native Windows targets

2022-10-19  LIU Hao  <lh_mouse@126.com>

	* libsupc++/atexit_thread.cc (__cxa_thread_atexit): Use
	implementation from mcfgthread if available
	* libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_release,
	__cxa_guard_abort): Use implementations from mcfgthread if
	available
	* configure: Regenerate

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

	PR c++/106652
	* include/std/limits: Fix a typo, 202202L -> 202002L.
	(numeric_limits::<_Float16>::radix, numeric_limits::<_Float32>::radix,
	numeric_limits::<_Float64>::radix, numeric_limits::<_Float128>::radix,
	numeric_limits::<__gnu_cxx::__bfloat16_t>::radix): Use __FLT_RADIX__
	macro instead of type specific macros.
	* include/c_global/cmath (nextafter(_Float16, _Float16)): New
	overload.
	(nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)):
	Likewise.
	* testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
	(test_functions): Uncomment nextafter test.  Fix up sph_neumann call.
	* testsuite/26_numerics/headers/cmath/nextafter_c++23.cc: New test.

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

	* include/std/ranges (stride_view): Define.
	(stride_view::_Iterator): Define.
	(views::__detail::__can_stride_view): Define.
	(views::_Stride, views::stride): Define.
	* testsuite/std/ranges/adaptors/stride/1.cc: New test.

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

	PR c++/106652
	* include/std/stdfloat: New file.
	* include/std/numbers (__glibcxx_numbers): Define and use it
	for __float128 explicit instantiations as well as
	_Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
	* include/std/atomic (atomic<_Float16>, atomic<_Float32>,
	atomic<_Float64>, atomic<_Float128>, atomic<__gnu_cxx::__bfloat16_t>):
	New explicit instantiations.
	* include/std/type_traits (__is_floating_point_helper<_Float16>,
	__is_floating_point_helper<_Float32>,
	__is_floating_point_helper<_Float64>,
	__is_floating_point_helper<_Float128>,
	__is_floating_point_helper<__gnu_cxx::__bfloat16_t>): Likewise.
	* include/std/limits (__glibcxx_concat3_, __glibcxx_concat3,
	__glibcxx_float_n): Define.
	(numeric_limits<_Float16>, numeric_limits<_Float32>,
	numeric_limits<_Float64>, numeric_limits<_Float128>,
	numeric_limits<__gnu_cxx::__bfloat16_t>): New explicit instantiations.
	* include/bits/std_abs.h (abs): New overloads for
	_Float{16,32,64,128} and __gnu_cxx::__bfloat16_t.
	* include/bits/c++config (_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128): Define
	if long double is IEEE quad.
	(__gnu_cxx::__bfloat16_t): New using.
	* include/c_global/cmath (acos, asin, atan, atan2, ceil, cos, cosh,
	exp, fabs, floor, fmod, frexp, ldexp, log, log10, modf, pow, sin,
	sinh, sqrt, tan, tanh, fpclassify, isfinite, isinf, isnan, isnormal,
	signbit, isgreater, isgreaterequal, isless, islessequal,
	islessgreater, isunordered, acosh, asinh, atanh, cbrt, copysign, erf,
	erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma,
	llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
	nextafter, remainder, rint, round, scalbln, scalbn, tgamma, trunc,
	lerp): New overloads with _Float{16,32,64,128} or
	__gnu_cxx::__bfloat16_t types.
	* config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH):
	Prepare for definition if glibc 2.26 and later implements *f128 APIs
	but comment out the actual definition for now.
	* include/ext/type_traits.h (__promote<_Float16>, __promote<_Float32>,
	__promote<_Float64>, __promote<_Float128>,
	__promote<__gnu_cxx::__bfloat16_t>): New specializations.
	* include/Makefile.am (std_headers): Add stdfloat.
	* include/Makefile.in: Regenerated.
	* include/precompiled/stdc++.h: Include stdfloat.
	* testsuite/18_support/headers/stdfloat/types_std.cc: New test.
	* testsuite/18_support/headers/limits/synopsis_cxx23.cc: New test.
	* testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc:
	New test.
	* testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: New test.
	* testsuite/26_numerics/numbers/4.cc: New test.
	* testsuite/29_atomics/atomic_float/requirements_cxx23.cc: New test.

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

	* include/std/charconv (__cpp_lib_constexpr_charconv): Define to
	correct value.
	* include/std/version (__cpp_lib_constexpr_charconv): Likewise.
	* testsuite/20_util/to_chars/constexpr.cc: Check correct value.
	* testsuite/20_util/to_chars/version.cc: Likewise.

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

	* src/c++11/debug.cc (print_raw): Move inside #if block.

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

	* include/bits/charconv.h (__to_chars_10_impl): Add constexpr
	for C++23. Remove 'static' from array.
	* include/std/charconv (__cpp_lib_constexpr_charconv): Define.
	(__to_chars, __to_chars_16): Remove 'static' from array, add
	constexpr.
	(__to_chars_10, __to_chars_8, __to_chars_2, __to_chars_i)
	(to_chars, __raise_and_add, __from_chars_pow2_base)
	(__from_chars_alnum, from_chars): Add constexpr.
	(__from_chars_alnum_to_val): Avoid local static during constant
	evaluation. Add constexpr.
	* include/std/version (__cpp_lib_constexpr_charconv): Define.
	* testsuite/20_util/from_chars/constexpr.cc: New test.
	* testsuite/20_util/to_chars/constexpr.cc: New test.
	* testsuite/20_util/to_chars/version.cc: New test.

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

	* include/bits/stl_map.h (map::insert(Pair&&)): Use
	remove_const_t on argument to __is_pair.
	* include/bits/stl_pair.h (__is_pair<const pair<T,U>>): Remove
	partial specialization.
	* include/bits/uses_allocator_args.h (_Std_pair): Use
	remove_cv_t as per LWG 3677.
	* testsuite/20_util/uses_allocator/lwg3677.cc: New test.

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

	* libsupc++/eh_alloc.cc [USE_POOL]: New macro.
	[!USE_POOL] (__gnu_cxx::__freeres, pool): Do not define.
	[_GLIBCXX_EH_POOL_STATIC] (pool::arena): Do not use std::max.
	(__cxxabiv1::__cxa_allocate_exception) [!USE_POOL]: Do not use
	pool.
	(__cxxabiv1::__cxa_free_exception) [!USE_POOL]: Likewise.
	(__cxxabiv1::__cxa_allocate_dependent_exception) [!USE_POOL]:
	Likewise.
	(__cxxabiv1::__cxa_free_dependent_exception) [!USE_POOL]:
	Likewise.

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

	* src/c++11/debug.cc (print_raw): Simplify.
	(print_word): Print indentation by calling fprintf directly.
	(_Error_formatter::_M_error): Print unindented string by calling
	fprintf directly.

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

	* include/std/iostream: Use markdown in Doxygen comment.

2022-10-12  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/string: Add using _Base::compare.
	(__gnu_debug::basic_string<>::compare(const basic_string<>&)): Remove.
	(__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&)):
	Remove.
	(__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&,
	size_type, size_type)): Remove.
	* testsuite/util/testsuite_string.h [_GLIBCXX_TEST_DEBUG_STRING]: Include <debug/string>.
	* testsuite/21_strings/basic_string/operations/compare/char/1.cc: Include testsuite_string.h
	and use __gnu_test::string.
	* testsuite/21_strings/basic_string/operations/compare/char/13650.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/compare/char/2.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/rfind/char/1.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/rfind/char/2.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/rfind/char/3.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
	Include testsuite_string.h
	and use __gnu_test::wstring.
	* testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: Likewise.

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

	* include/std/ranges (repeat_view): Define.
	(repeat_view::_Iterator): Define.
	(views::__detail::__can_repeat_view): Define.
	(views::__detail::__can_bounded_repeat_view): Define.
	(views::_Repeat, views::repeat): Define.
	* testsuite/std/ranges/repeat/1.cc: New test.

2022-10-12  Martin Liska  <mliska@suse.cz>

	* configure: Regenerate.

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

	PR bootstrap/107221
	* libsupc++/eh_alloc.cc (pool): Change preprocessor condition
	for using __mutex from __GTHREADS to _GLIBCXX_HOSTED.
	(pool::allocate): Remove namespace qualification to use
	pool::__scoped_lock instead of __gnu_cxx::__scoped_lock.

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

	PR libstdc++/68606
	* Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCXX_EMERGENCY_EH_ALLOC): New macro.
	* configure: Regenerate.
	* configure.ac: Use GLIBCXX_EMERGENCY_EH_ALLOC.
	* crossconfig.m4: Check for secure_getenv.
	* doc/Makefile.in: Regenerate.
	* doc/xml/manual/configure.xml: Document new configure options.
	* doc/xml/manual/evolution.xml: Document addition of tunables.
	* doc/xml/manual/using_exceptions.xml: Document emergency
	buffer and tunables.
	* doc/html/*: Regenerate.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Use EH_POOL_FLAGS.
	* libsupc++/Makefile.in: Regenerate.
	* libsupc++/eh_alloc.cc (EMERGENCY_OBJ_SIZE): Define in units
	of sizeof(void*) not including the ABI's exception header.
	(EMERGENCY_OBJ_COUNT): Define as target-independent calculation
	based on word size.
	(MAX_OBJ_COUNT): Define macro for upper limit on pool size.
	(pool) [_GLIBCXX_EH_POOL_STATIC]: Use fixed-size buffer.
	(pool::buffer_size_in_bytes): New static member function.
	(pool::pool): Parse GLIBCXX_TUNABLES environment variable to set
	pool size at runtime.
	(pool::in_pool): Use std::less<void*> for total order.
	(__freeres) [_GLIBCXX_EH_POOL_STATIC]: Do nothing.
	(__cxa_free_exception, __cxa_free_dependent_exception): Add
	[[unlikely]] attributes.
	* 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.
	* src/libbacktrace/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2022-10-11  Olivier Hainque  <hainque@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* configure: Regenerate.

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

	* include/std/type_traits (make_signed, make_unsigned): Remove
	constraints on primary template.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Undo changes to expected error in C++20 mode.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
	Likewise.
	* testsuite/20_util/make_signed/requirements/uninstantiated.cc:
	New test.
	* testsuite/20_util/make_unsigned/requirements/uninstantiated.cc:
	New test.

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

	* include/std/type_traits (make_signed, make_unsigned): Add
	specializations for cv bool. Add requires-clause for C++20 to
	improve diagnostics for non-integral, non-enum cases.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Check cv bool.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
	Adjust expected errors for C++20 and later.
	* testsuite/lib/prune.exp: Prune "in requirements  [with ...]"
	lines from diagnostics.

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

	* acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Add libstdcxx-hosted
	enable arg as an alias for hosted-libstdcxx enable arg.
	* configure: Regenerate.

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

	* include/bits/std_function.h: Include <new> but do not include
	<bits/stl_function.h>.
	* include/std/functional: Do not include <new>.

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

	* doc/xml/manual/intro.xml: Add role="bold" attribute to
	emphasis elements for issue titles.
	* doc/html/manual/bugs.html: Regenerate.

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

	* include/Makefile.in: Regenerate.

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

	* include/bits/invoke.h (__invoke_r): Check
	__has_builtin(__reference_converts_from_temporary) before using
	built-in.

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

	* testsuite/std/ranges/adaptors/join_with/1.cc: Remove unused
	<sstream header.
	(test04): Remove constexpr for old std::string ABI and test at
	runtime.

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

	* include/std/type_traits (remove_cv): Use __remove_cv built-in.
	(remove_reference): Use __remove_reference built-in.
	(remove_cvref): Use __remove_cvref built-in. Remove inheritance
	for fallback implementation.

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

	* include/bits/random.h (__is_seed_seq): Replace with ...
	(_If_seed_seq_for): ... this.
	* include/ext/random: Adjust to use _If_seed_seq_for.

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

	* include/std/ranges (join_with_view::_Iterator::operator*):
	Replace use of std::visit with manual visitation.
	(join_with_view::_Iterator::operator++): Likewise.
	(join_with_view::_Iterator::operator--): Likewise.
	(join_with_view::_Iterator::iter_move): Likewise.
	(join_with_view::_Iterator::iter_swap): Likewise.

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

	* testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run
	for freestanding.

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

	PR libstdc++/107139
	* include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
	conditionals.

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

	PR libstdc++/107134
	* include/c_global/cstdint [!_GLIBCXX_HOSTED]: Include
	<stdint-gcc.h> directly.

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

	PR libstdc++/107135
	* include/bits/functexcept.h [!_GLIBCXX_HOSTED]
	(__throw_invalid_argument, __throw_out_of_range)
	(__throw_out_of_range_fmt, __throw_runtime_error)
	(__throw_overflow_error): Define inline.
	* include/std/bitset (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]:
	Replace __builtin_abort with __throw_invalid_argument.

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

	* include/std/ranges: Include <variant> for C++23.
	(__detail::__compatible_joinable_ranges): Define.
	(__detail::__bidirectional_common): Define.
	(join_with_view): Define.
	(join_with_view::_Iterator): Define.
	(join_with_view::_Sentinel): Define.
	(views::__detail::__can_join_with_view): Define.
	(views::_JoinWith, views::join_with): Define.
	* testsuite/std/ranges/adaptors/join_with/1.cc: New test.

2022-10-04  Arsen Arsenović  <arsen@aarsen.me>

	* include/std/iostream: Use ///< for inline documentation.
	* include/std/limits: Likewise.
	* include/experimental/internet: Likewise.

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

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

2022-10-03  Arsen Arsenović  <arsen@aarsen.me>

	PR libstdc++/103626
	* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
	Require ET hosted.
	* testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
	* testsuite/18_support/new_nothrow.cc: Likewise.
	* testsuite/20_util/allocator/105975.cc: Likewise.
	* testsuite/20_util/allocator/14176.cc: Likewise.
	* testsuite/20_util/allocator/64135.cc: Likewise.
	* testsuite/20_util/allocator/89510.cc: Likewise.
	* testsuite/20_util/allocator/lwg3190.cc: Likewise.
	* testsuite/20_util/allocator/overaligned.cc: Likewise.
	* testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
	* testsuite/20_util/allocator/requirements/constexpr.cc:
	Likewise.
	* testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc:
	Likewise.
	* testsuite/20_util/allocator/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
	Likewise.
	* testsuite/20_util/allocator/void.cc: Likewise.
	* testsuite/20_util/allocator_traits/header-2.cc: Likewise.
	* testsuite/20_util/allocator_traits/header.cc: Likewise.
	* testsuite/20_util/allocator_traits/members/92878_92947.cc:
	Likewise.
	* testsuite/20_util/allocator_traits/members/pointers.cc:
	Likewise.
	* testsuite/20_util/allocator_traits/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/bad_function_call/cons_virtual_derivation.cc:
	Likewise.
	* testsuite/20_util/bind/42593.cc: Likewise.
	* testsuite/20_util/bitset/access/dr396.cc: Likewise.
	* testsuite/20_util/bitset/access/to_string.cc: Likewise.
	* testsuite/20_util/bitset/cons/16020.cc: Likewise.
	* testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise.
	* testsuite/20_util/bitset/cons/dr396.cc: Likewise.
	* testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise.
	* testsuite/20_util/bitset/ext/15361.cc: Likewise.
	* testsuite/20_util/bitset/operations/13838.cc: Likewise.
	* testsuite/20_util/bitset/operations/96303.cc: Likewise.
	* testsuite/20_util/bitset/version.cc: Likewise.
	* testsuite/20_util/enable_shared_from_this/56383.cc: Likewise.
	* testsuite/20_util/enable_shared_from_this/89303.cc: Likewise.
	* testsuite/20_util/enable_shared_from_this/members/assign.cc:
	Likewise.
	* testsuite/20_util/enable_shared_from_this/members/const.cc:
	Likewise.
	* testsuite/20_util/enable_shared_from_this/members/reinit.cc:
	Likewise.
	* testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc:
	Likewise.
	* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
	Likewise.
	* testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/forward/1.cc: Likewise.
	* testsuite/20_util/forward/1_neg.cc: Likewise.
	* testsuite/20_util/function/1.cc: Likewise.
	* testsuite/20_util/function/10.cc: Likewise.
	* testsuite/20_util/function/2.cc: Likewise.
	* testsuite/20_util/function/3.cc: Likewise.
	* testsuite/20_util/function/4.cc: Likewise.
	* testsuite/20_util/function/43397.cc: Likewise.
	* testsuite/20_util/function/48541.cc: Likewise.
	* testsuite/20_util/function/5.cc: Likewise.
	* testsuite/20_util/function/58569.cc: Likewise.
	* testsuite/20_util/function/6.cc: Likewise.
	* testsuite/20_util/function/60594.cc: Likewise.
	* testsuite/20_util/function/65760.cc: Likewise.
	* testsuite/20_util/function/69222.cc: Likewise.
	* testsuite/20_util/function/7.cc: Likewise.
	* testsuite/20_util/function/77322.cc: Likewise.
	* testsuite/20_util/function/8.cc: Likewise.
	* testsuite/20_util/function/9.cc: Likewise.
	* testsuite/20_util/function/91456.cc: Likewise.
	* testsuite/20_util/function/assign/move.cc: Likewise.
	* testsuite/20_util/function/assign/move_target.cc: Likewise.
	* testsuite/20_util/function/cmp/cmp_neg.cc: Likewise.
	* testsuite/20_util/function/cons/55320.cc: Likewise.
	* testsuite/20_util/function/cons/57465.cc: Likewise.
	* testsuite/20_util/function/cons/72820.cc: Likewise.
	* testsuite/20_util/function/cons/addressof.cc: Likewise.
	* testsuite/20_util/function/cons/callable.cc: Likewise.
	* testsuite/20_util/function/cons/deduction.cc: Likewise.
	* testsuite/20_util/function/cons/lwg2774.cc: Likewise.
	* testsuite/20_util/function/cons/move.cc: Likewise.
	* testsuite/20_util/function/cons/move_target.cc: Likewise.
	* testsuite/20_util/function/cons/noexcept.cc: Likewise.
	* testsuite/20_util/function/cons/non_copyconstructible.cc:
	Likewise.
	* testsuite/20_util/function/cons/refqual.cc: Likewise.
	* testsuite/20_util/function/cons/70692.cc: Likewise.
	* testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
	* testsuite/20_util/function/invoke/forwarding.cc: Likewise.
	* testsuite/20_util/function/invoke/move_only.cc: Likewise.
	* testsuite/20_util/function/null_pointer_comparisons.cc:
	Likewise.
	* testsuite/20_util/function/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/function/target_no_rtti.cc: Likewise.
	* testsuite/20_util/function_objects/83607.cc: Likewise.
	* testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise.
	* testsuite/20_util/headers/cstdlib/functions_std.cc: Likewise.
	* testsuite/20_util/headers/functional/types_std_c++0x.cc:
	Likewise.
	* testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise.
	* testsuite/20_util/is_function/35637.cc: Likewise.
	* testsuite/20_util/move/1.cc: Likewise.
	* testsuite/20_util/move_only_function/call.cc: Likewise.
	* testsuite/20_util/move_only_function/cons.cc: Likewise.
	* testsuite/20_util/move_only_function/move.cc: Likewise.
	* testsuite/20_util/move_only_function/version.cc: Likewise.
	* testsuite/20_util/owner_less/cmp.cc: Likewise.
	* testsuite/20_util/owner_less/noexcept.cc: Likewise.
	* testsuite/20_util/owner_less/void.cc: Likewise.
	* testsuite/20_util/pointer_safety/1.cc: Likewise.
	* testsuite/20_util/scoped_allocator/65279.cc: Likewise.
	* testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
	* testsuite/20_util/scoped_allocator/construct_pair.cc:
	Likewise.
	* testsuite/20_util/scoped_allocator/dr2586.cc: Likewise.
	* testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/sfinae.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/atomic/1.cc: Likewise.
	* testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/86537.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise.
	* testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/39405.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/46910.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/51365.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/52924.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/55123.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/58659.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/58839.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/61036.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/79467.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/80229.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/lwg2802.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/lwg3548.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/36949.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/creation/58594.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/87278.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/92878_92947.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/creation/99006.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/no_rtti.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/private.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/single_allocation.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
	* testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
	* testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
	* testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
	* testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/array.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/owner_before.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
	* testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
	* testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/requirements/weak_type.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
	Likewise.
	* testsuite/20_util/temporary_buffer.cc: Likewise.
	* testsuite/20_util/tuple/48476.cc: Likewise.
	* testsuite/20_util/tuple/cons/90700.cc: Likewise.
	* testsuite/20_util/tuple/cons/96803.cc: Likewise.
	* testsuite/20_util/tuple/cons/allocator_with_any.cc: Likewise.
	* testsuite/20_util/tuple/cons/allocators.cc: Likewise.
	* testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
	Likewise.
	* testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
	* testsuite/20_util/tuple/p2321r2.cc: Likewise.
	* testsuite/20_util/unique_ptr/creation/92878_92947.cc:
	Likewise.
	* testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
	* testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
	* testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
	Likewise.
	* testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
	Likewise.
	* testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
	* testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
	* testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
	* testsuite/20_util/uses_allocator/uninitialized_construct.cc:
	Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
	* testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
	* testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
	Likewise.
	* testsuite/20_util/weak_ptr/lock/1.cc: Likewise.
	* testsuite/20_util/weak_ptr/observers/owner_before.cc:
	Likewise.
	* testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
	Likewise.
	* testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string/version.cc: Likewise.
	* testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
	Likewise.
	* testsuite/21_strings/c_strings/char/69626.cc: Likewise.
	* testsuite/21_strings/char_traits/requirements/version.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/version.cc:
	Likewise.
	* 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/cons/sentinel.cc:
	Likewise.
	* testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
	Likewise.
	* testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
	Likewise.
	* testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
	Likewise.
	* testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
	Likewise.
	* testsuite/25_algorithms/constexpr_macro.cc: Likewise.
	* testsuite/25_algorithms/equal/constrained.cc: Likewise.
	* testsuite/25_algorithms/headers/cstdlib/functions_std.cc:
	Likewise.
	* testsuite/25_algorithms/inplace_merge/1.cc: Likewise.
	* testsuite/25_algorithms/lexicographical_compare/constrained.cc:
	Likewise.
	* testsuite/25_algorithms/make_heap/movable.cc: Likewise.
	* testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
	* testsuite/25_algorithms/random_shuffle/1.cc: Likewise.
	* testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
	* testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
	Likewise.
	* testsuite/25_algorithms/sort/35588.cc: Likewise.
	* testsuite/25_algorithms/stable_partition/1.cc: Likewise.
	* testsuite/25_algorithms/stable_partition/constrained.cc:
	Likewise.
	* testsuite/25_algorithms/stable_partition/mem_check.cc:
	Likewise.
	* testsuite/25_algorithms/stable_partition/moveable.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/stable_sort/1.cc: Likewise.
	* testsuite/26_numerics/complex/2.cc: Likewise.
	* testsuite/26_numerics/headers/cstdlib/13943.cc: Likewise.
	* testsuite/26_numerics/headers/cstdlib/2190.cc: Likewise.
	* testsuite/26_numerics/headers/cstdlib/60401.cc: Likewise.
	* testsuite/26_numerics/headers/cstdlib/dr2192.cc: Likewise.
	* testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: Likewise.
	* testsuite/26_numerics/headers/cstdlib/dr2735.cc: Likewise.
	* testsuite/26_numerics/headers/cstdlib/functions_std.cc:
	Likewise.
	* testsuite/26_numerics/headers/cstdlib/macros.cc: Likewise.
	* testsuite/26_numerics/headers/cstdlib/types_std.cc: Likewise.
	* testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc:
	Likewise.
	* testsuite/26_numerics/lerp/version.cc: Likewise.
	* testsuite/26_numerics/midpoint/version.cc: Likewise.
	* testsuite/27_io/basic_syncbuf/2.cc: Likewise.
	* testsuite/27_io/basic_syncstream/2.cc: Likewise.
	* testsuite/27_io/fpos/14320-1.cc: Likewise.
	* testsuite/27_io/fpos/14320-2.cc: Likewise.
	* testsuite/27_io/fpos/14320-3.cc: Likewise.
	* testsuite/27_io/fpos/14320-4.cc: Likewise.
	* testsuite/27_io/spanstream/version.cc: Likewise.
	* testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
	* testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
	* testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
	* testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
	* testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
	* testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
	* testsuite/30_threads/barrier/2.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/stop_token/2.cc:
	Likewise.
	* testsuite/30_threads/jthread/version.cc: Likewise.
	* testsuite/30_threads/latch/2.cc: Likewise.
	* testsuite/30_threads/semaphore/2.cc: Likewise.
	* testsuite/30_threads/stop_token/2.cc: Likewise.
	* testsuite/abi/pr42230.cc: Likewise.
	* testsuite/ext/shared_ptr/1.cc: Likewise.
	* testsuite/libstdc++-xmethods/shared_ptr.cc: Likewise.
	* testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
	* testsuite/std/ranges/adaptors/p1739.cc: Likewise.
	* testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
	* testsuite/std/ranges/p2325.cc: Likewise.

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

	* include/std/bitset (bitset(const C*, size_type n, C, C))
	[!_GLIBCXX_HOSTED]: Remove std::basic_string dependency.
	(_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: Abort instead of
	throwing.

2022-10-03  Arsen Arsenović  <arsen@aarsen.me>

	PR libstdc++/103626
	* include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
	* testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
	hosted.
	* testsuite/20_util/bitset/ext/constexpr.cc: Likewise.

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

	PR libstdc++/103626
	* testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
	Also require hosted.
	(check_effective_target_hosted): New proc.

2022-10-03  Arsen Arsenović  <arsen@aarsen.me>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103626
	* testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]:
	Do not include C headers that aren't valid for freestanding.
	* testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]:
	Do not test tag types that aren't defined for freestanding.
	* testsuite/18_support/headers/cstdlib/functions_std.cc: Do not
	check for std::getenv and std::system for freestanding.
	* testsuite/17_intro/using_namespace_std_exp_neg.cc [!__STDC_HOSTED__]:
	Do not test hosted parts of the standard library.
	* testsuite/17_intro/using_namespace_std_tr1_neg.cc [!__STDC_HOSTED__]:
	Likewise.
	* testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]:
	Likewise.
	* testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]:
	Likewise.
	* testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]:
	Likewise.
	* testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]:
	Likewise.
	* testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]: Likewise.
	* testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]: Likewise.
	* testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]: Likewise.

2022-10-03  Arsen Arsenović  <arsen@aarsen.me>

	PR libstdc++/106953
	* include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
	install-freestanding-headers, unifying it with the usual
	install-headers
	* include/Makefile.in: Regenerate.

2022-10-03  Arsen Arsenović  <arsen@aarsen.me>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103626
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/requires_hosted.h: New header.
	* include/experimental/algorithm: Include
	<bits/requires_hosted.h>.
	* include/experimental/any: Likewise.
	* include/experimental/array: Likewise.
	* include/experimental/buffer: Likewise.
	* include/experimental/chrono: Likewise.
	* include/experimental/deque: Likewise.
	* include/experimental/executor: Likewise.
	* include/experimental/filesystem: Likewise.
	* include/experimental/forward_list: Likewise.
	* include/experimental/functional: Likewise.
	* include/experimental/internet: Likewise.
	* include/experimental/io_context: Likewise.
	* include/experimental/iterator: Likewise.
	* include/experimental/list: Likewise.
	* include/experimental/map: Likewise.
	* include/experimental/memory: Likewise.
	* include/experimental/memory_resource: Likewise.
	* include/experimental/net: Likewise.
	* include/experimental/netfwd: Likewise.
	* include/experimental/numeric: Likewise.
	* include/experimental/optional: Likewise.
	* include/experimental/propagate_const: Likewise.
	* include/experimental/random: Likewise.
	* include/experimental/ratio: Likewise.
	* include/experimental/regex: Likewise.
	* include/experimental/scope: Likewise.
	* include/experimental/set: Likewise.
	* include/experimental/simd: Likewise.
	* include/experimental/socket: Likewise.
	* include/experimental/source_location: Likewise.
	* include/experimental/string: Likewise.
	* include/experimental/string_view: Likewise.
	* include/experimental/system_error: Likewise.
	* include/experimental/timer: Likewise.
	* include/experimental/tuple: Likewise.
	* include/experimental/unordered_map: Likewise.
	* include/experimental/unordered_set: Likewise.
	* include/experimental/utility: Likewise.
	* include/experimental/vector: Likewise.
	* include/std/barrier: Likewise.
	* include/std/chrono: Likewise.
	* include/std/condition_variable: Likewise.
	* include/std/deque: Likewise.
	* include/std/execution: Likewise.
	* include/std/filesystem: Likewise.
	* include/std/forward_list: Likewise.
	* include/std/fstream: Likewise.
	* include/std/future: Likewise.
	* include/std/iomanip: Likewise.
	* include/std/ios: Likewise.
	* include/std/iosfwd: Likewise.
	* include/std/iostream: Likewise.
	* include/std/istream: Likewise.
	* include/std/latch: Likewise.
	* include/std/list: Likewise.
	* include/std/locale: Likewise.
	* include/std/map: Likewise.
	* include/std/memory_resource: Likewise.
	* include/std/mutex: Likewise.
	* include/std/ostream: Likewise.
	* include/std/queue: Likewise.
	* include/std/random: Likewise.
	* include/std/regex: Likewise.
	* include/std/semaphore: Likewise.
	* include/std/set: Likewise.
	* include/std/shared_mutex: Likewise.
	* include/std/spanstream: Likewise.
	* include/std/sstream: Likewise.
	* include/std/stack: Likewise.
	* include/std/stacktrace: Likewise.
	* include/std/stop_token: Likewise.
	* include/std/streambuf: Likewise.
	* include/std/string: Likewise.
	* include/std/syncstream: Likewise.
	* include/std/system_error: Likewise.
	* include/std/thread: Likewise.
	* include/std/unordered_map: Likewise.
	* include/std/unordered_set: Likewise.
	* include/std/valarray: Likewise.
	* include/std/vector: Likewise.
	* include/tr1/array: Likewise.
	* include/tr1/ccomplex: Likewise.
	* include/tr1/cctype: Likewise.
	* include/tr1/cfenv: Likewise.
	* include/tr1/cfloat: Likewise.
	* include/tr1/cinttypes: Likewise.
	* include/tr1/climits: Likewise.
	* include/tr1/cmath: Likewise.
	* include/tr1/complex: Likewise.
	* include/tr1/complex.h: Likewise.
	* include/tr1/cstdarg: Likewise.
	* include/tr1/cstdbool: Likewise.
	* include/tr1/cstdint: Likewise.
	* include/tr1/cstdio: Likewise.
	* include/tr1/cstdlib: Likewise.
	* include/tr1/ctgmath: Likewise.
	* include/tr1/ctime: Likewise.
	* include/tr1/ctype.h: Likewise.
	* include/tr1/cwchar: Likewise.
	* include/tr1/cwctype: Likewise.
	* include/tr1/fenv.h: Likewise.
	* include/tr1/float.h: Likewise.
	* include/tr1/functional: Likewise.
	* include/tr1/inttypes.h: Likewise.
	* include/tr1/limits.h: Likewise.
	* include/tr1/math.h: Likewise.
	* include/tr1/memory: Likewise.
	* include/tr1/random: Likewise.
	* include/tr1/regex: Likewise.
	* include/tr1/stdarg.h: Likewise.
	* include/tr1/stdbool.h: Likewise.
	* include/tr1/stdint.h: Likewise.
	* include/tr1/stdio.h: Likewise.
	* include/tr1/stdlib.h: Likewise.
	* include/tr1/tgmath.h: Likewise.
	* include/tr1/tuple: Likewise.
	* include/tr1/type_traits: Likewise.
	* include/tr1/unordered_map: Likewise.
	* include/tr1/unordered_set: Likewise.
	* include/tr1/utility: Likewise.
	* include/tr1/wchar.h: Likewise.
	* include/tr1/wctype.h: Likewise.
	* include/c_global/cmath: Likewise.
	* include/ext/algorithm: Include <bits/requires_hosted.h>.
	* include/ext/bitmap_allocator.h: Likewise.
	* include/ext/cmath: Likewise.
	* include/ext/codecvt_specializations.h: Likewise.
	* include/ext/debug_allocator.h: Likewise.
	* include/ext/enc_filebuf.h: Likewise.
	* include/ext/extptr_allocator.h: Likewise.
	* include/ext/functional: Likewise.
	* include/ext/malloc_allocator.h: Likewise.
	* include/ext/memory: Likewise.
	* include/ext/mt_allocator.h: Likewise.
	* include/ext/new_allocator.h: Likewise.
	* include/ext/numeric: Likewise.
	* include/ext/pod_char_traits.h: Likewise.
	* include/ext/pool_allocator.h: Likewise.
	* include/ext/random: Likewise.
	* include/ext/random.tcc: Likewise.
	* include/ext/rb_tree: Likewise.
	* include/ext/rc_string_base.h: Likewise.
	* include/ext/rope: Likewise.
	* include/ext/ropeimpl.h: Likewise.
	* include/ext/slist: Likewise.
	* include/ext/sso_string_base.h: Likewise.
	* include/ext/stdio_filebuf.h: Likewise.
	* include/ext/stdio_sync_filebuf.h: Likewise.
	* include/ext/string_conversions.h: Likewise.
	* include/ext/throw_allocator.h: Likewise.
	* include/ext/vstring.h: Likewise.
	* include/ext/vstring.tcc: Likewise.
	* include/ext/vstring_fwd.h: Likewise.
	* include/ext/vstring_util.h: Likewise.
	* include/std/charconv: Likewise.
	(__cpp_lib_to_chars): Do not define for freestanding.
	* include/std/version: Adjust which macros get defined in
	freestanding.
	* include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream
	functionality from freestanding.
	* include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos.
	* include/std/memory [!_GLIBCXX_HOSTED]: Omit
	<bits/stl_tempbuf.h> in freestanding
	* include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover
	random_shuffle and stable_partition definition.
	* include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit
	random_shuffle and stable_partition from freestanding.
	* include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit
	stable_partition from freestanding.
	* include/bits/concept_check.h: Remove needless HOSTED check.
	* include/std/iterator: Include <bits/ranges_base.h>.
	* include/std/numeric (__cpp_lib_parallel_algorithms): Do not
	define for freestanding.
	* include/std/functional (__cpp_lib_boyer_moore_searcher):
	Likewise.
	* testsuite/lib/prune.exp: Match error for hosted-only libstdc++
	tests.

2022-10-03  Jonathan Wakely  <jwakely@redhat.com>
	    Arsen Arsenović  <arsen@aarsen.me>

	* include/precompiled/extc++.h [!_GLIBCXX_HOSTED]: Do not
	include headers that aren't valid for freestanding.
	* include/precompiled/stdc++.h [!_GLIBCXX_HOSTED]: Likewise.

2022-10-03  Arsen Arsenović  <arsen@aarsen.me>

	* configure.ac: Remove any lines that unconditionally include
	<stdio.h> from ac_includes_default, when running Autoconf <2.70.
	* configure: Regenerate.

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

	PR libstdc++/103626
	* acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED
	to __STDC_HOSTED__ for non-freestanding installations.
	* configure: Regenerate.
	* include/Makefile.am (${host_builddir}/c++config.h): Adjust
	grep pattern.
	* include/Makefile.in: Regenerate.
	* testsuite/lib/libstdc++.exp (v3-build_support): Use
	-fno-freestanding.
	* testsuite/libstdc++-abi/abi.exp: Likewise.

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

	* testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
	Change body of unused operator<< overload to throw if called.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
	Likewise.

2022-10-03  François Dumont  <fdumont@gcc.gnu.org>

	* python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
	namespace for __cxx11 symbols.
	(add_one_template_type_printer): Likewise.
	(add_one_type_printer): Likewise.
	(FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
	ambiguous typedef matching both std:: and std::__cxx11:: symbols.
	* testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
	\#define _GLIBCXX_USE_CXX11_ABI 0.
	* testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
	std::__cxx11::list.
	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
	and debug mode.
	* testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.

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

	* testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset
	from binary literal instead of using stringstream.

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

	* include/std/bitset (operator>>): Use a simple buffer instead
	of std::basic_string.

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

	* include/std/bitset (_M_copy_from_ptr, _M_copy_from_string)
	(_M_copy_to_string): Change access to private.
	(_M_copy_from_string(const basic_string&, size_t, size_t)):
	Remove.
	(_M_copy_to_string(const basic_string&)): Remove.

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

	* testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output
	directive.

2022-09-30  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
	    Yvan ROUX   <yvan.roux@foss.st.com>

	* testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too.

2022-09-30  Arsen Arsenović  <arsen@aarsen.me>

	* include/std/bitset: Include <bits/stl_algobase.h>.

2022-09-29  François Dumont  <fdumont@gcc.gnu.org>

	* python/libstdcxx/v6/printers.py (add_one_template_type_printer): Register
	printer for types in std::__debug namespace with template parameters in std::__8
	namespace.

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

	* include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove
	__remove_cv and use __remove_cv_t instead.

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

	* include/std/type_traits (__is_invocable_impl): Check
	__has_builtin(__reference_converts_from_temporary) before using
	built-in.

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

	* doc/xml/manual/evolution.xml: Document std::bind API
	changes.
	* doc/xml/manual/intro.xml: Document LWG 2487 status.
	* doc/xml/manual/using.xml: Clarify default value of
	_GLIBCXX_USE_DEPRECATED.
	* doc/html/*: Regenerate.
	* include/std/functional (_Bind::operator()(Args&&...) volatile)
	(_Bind::operator()(Args&&...) const volatile)
	(_Bind_result::operator()(Args&&...) volatile)
	(_Bind_result::operator()(Args&&...) const volatile): Replace
	with deleted overload for C++20 and later.
	* testsuite/20_util/bind/cv_quals.cc: Check for deprecated
	warnings in C++17.
	* testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
	ill-formed in C++20.

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

	PR libstdc++/70692
	* include/bits/invoke.h [__cplusplus < 201703] (__invoke_r):
	Remove is_invocable and is_convertible constraints.
	* include/std/type_traits (__is_invocable_impl::_S_conv): Use
	non-deduced context for parameter.
	(__is_invocable_impl::_S_test): Remove _Check_noex template
	parameter and use deduced noexcept value in its place. Add bool
	parameter to detect dangling references.
	(__is_invocable_impl::type): Adjust call to _S_test to avoid
	deducing unnecessary noexcept property..
	(__is_invocable_impl::__nothrow_type): Rename to ...
	(__is_invocable_impl::__nothrow_conv): ... this. Adjust call
	to _S_test to deduce noexcept property.
	* testsuite/20_util/bind/dangling_ref.cc: New test.
	* testsuite/20_util/function/cons/70692.cc: New test.
	* testsuite/20_util/function_objects/invoke/dangling_ref.cc:
	New test.
	* testsuite/20_util/is_invocable/dangling_ref.cc: New test.
	* testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
	New test.

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

	PR c++/107049
	* testsuite/20_util/is_convertible/requirements/access.cc: New
	test.

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

	PR c++/106651
	* include/bits/std_function.h (__function_guide_t): New alias
	template.
	[__cpp_static_call_operator] (__function_guide_static_helper):
	New class template.
	(function): Use __function_guide_t in deduction guide.
	* include/std/future (packaged_task): Use __function_guide_t in
	deduction guide.
	* testsuite/20_util/function/cons/deduction_c++23.cc: New test.
	* testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
	New test.

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

	* include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
	Also define the __ptr_traits_elem class template for the
	concepts case.
	(pointer_traits<Ptr>): Remove constrained partial
	specialization.
	* testsuite/20_util/pointer_traits/lwg3545.cc: Check for
	ambiguitiy with program-defined partial specialization.

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

	* include/std/type_traits (is_convertible, is_convertible_v):
	Define using new built-in.
	(is_nothrow_convertible is_nothrow_convertible_v): Likewise.

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

	PR libstdc++/107037
	* include/std/bitset (_Base_bitset::_M_do_reset): Use
	preprocessor conditional around non-C++03 code.
	* testsuite/20_util/bitset/107037.cc: New test.

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

	* include/bits/alloc_traits.h (allocator_traits::is_always_equal):
	Only instantiate is_empty if needed.
	* include/bits/ptr_traits.h (__ptr_traits_impl::difference_type)
	(__ptr_traits_impl::rebind): Use __detected_or.
	* include/experimental/type_traits (is_same_v): Add a partial
	specialization instead of instantiating the std::is_same class
	template.
	(detected_t): Redefine in terms of detected_or_t.
	(is_detected, is_detected_v): Redefine in terms of detected_t.
	* include/std/type_traits [__cpp_concepts] (__detected_or): Add
	new definition using concepts.
	(__detector::value_t): Rename to __is_detected.
	* testsuite/17_intro/names.cc: Check value_t isn't used.

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

	* testsuite/20_util/is_assignable/requirements/access.cc:
	New test.

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

	PR libstdc++/91456
	* include/std/type_traits (__is_nothrow_invocable_lib): Remove.
	(__is_invocable_impl::__nothrow_type): New member type which
	checks if the conversion can throw.
	(__is_nt_invocable_impl): Replace class template with alias
	template to __is_nt_invocable_impl::__nothrow_type.
	* testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
	* testsuite/20_util/is_nothrow_convertible/value.cc: Remove
	macro used by value_ext.cc test.
	* testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
	test for non-standard __is_nothrow_invocable_lib trait.

2022-09-23  Marek Polacek  <polacek@redhat.com>

	PR c++/106784
	* include/std/type_traits: Rename __is_nothrow_convertible to
	__is_nothrow_convertible_lib.
	* testsuite/20_util/is_nothrow_convertible/value_ext.cc: Likewise.

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

	* include/std/bitset (operator>>): Do not copy for N==0.
	* testsuite/20_util/bitset/io/input.cc: Add comment.

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

	* include/debug/bitset (__debug::bitset): Add constexpr to all
	member functions.
	(operator&, operator|, operator^): Add inline and constexpr.
	(operator>>, operator<<): Add inline.
	* testsuite/20_util/bitset/access/constexpr.cc: Only check using
	constexpr std::string for the cxx11 ABI.
	* testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
	* testsuite/20_util/headers/bitset/synopsis.cc: Check constexpr
	for C++23.

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

	* include/std/bitset (bitset::_M_copy_to_string): Find set bits
	instead of iterating over individual bits.

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

	* include/std/bitset (bitset): Add constexpr for C++23. Guard
	members using std::string with _GLIBCXX_HOSTED.
	* include/std/version (__cpp_lib_constexpr_bitset): Define.
	* testsuite/20_util/bitset/access/constexpr.cc: New test.
	* testsuite/20_util/bitset/cons/constexpr_c++23.cc: New test.
	* testsuite/20_util/bitset/count/constexpr.cc: New test.
	* testsuite/20_util/bitset/ext/constexpr.cc: New test.
	* testsuite/20_util/bitset/operations/constexpr_c++23.cc: New test.
	* testsuite/20_util/bitset/version.cc: New test.

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

	* testsuite/23_containers/bitset/18604.cc: Moved to...
	* testsuite/20_util/bitset/18604.cc: ...here.
	* testsuite/23_containers/bitset/45713.cc: Moved to...
	* testsuite/20_util/bitset/45713.cc: ...here.
	* testsuite/23_containers/bitset/to_string/dr396.cc: Moved to...
	* testsuite/20_util/bitset/access/dr396.cc: ...here.
	* testsuite/23_containers/bitset/to_string/1.cc: Moved to...
	* testsuite/20_util/bitset/access/to_string.cc: ...here.
	* testsuite/23_containers/bitset/to_ullong/1.cc: Moved to...
	* testsuite/20_util/bitset/access/to_ullong.cc: ...here.
	* testsuite/23_containers/bitset/to_ulong/1.cc: Moved to...
	* testsuite/20_util/bitset/access/to_ulong.cc: ...here.
	* testsuite/23_containers/bitset/cons/1.cc: Moved to...
	* testsuite/20_util/bitset/cons/1.cc: ...here.
	* testsuite/23_containers/bitset/cons/16020.cc: Moved to...
	* testsuite/20_util/bitset/cons/16020.cc: ...here.
	* testsuite/23_containers/bitset/cons/2.cc: Moved to...
	* testsuite/20_util/bitset/cons/2.cc: ...here.
	* testsuite/23_containers/bitset/cons/3.cc: Moved to...
	* testsuite/20_util/bitset/cons/3.cc: ...here.
	* testsuite/23_containers/bitset/cons/38244.cc: Moved to...
	* testsuite/20_util/bitset/cons/38244.cc: ...here.
	* testsuite/23_containers/bitset/cons/50268.cc: Moved to...
	* testsuite/20_util/bitset/cons/50268.cc: ...here.
	* testsuite/23_containers/bitset/cons/6282.cc: Moved to...
	* testsuite/20_util/bitset/cons/6282.cc: ...here.
	* testsuite/23_containers/bitset/cons/constexpr.cc: Moved to...
	* testsuite/20_util/bitset/cons/constexpr.cc: ...here.
	* testsuite/23_containers/bitset/cons/dr1325-1.cc: Moved to...
	* testsuite/20_util/bitset/cons/dr1325-1.cc: ...here.
	* testsuite/23_containers/bitset/cons/dr1325-2.cc: Moved to...
	* testsuite/20_util/bitset/cons/dr1325-2.cc: ...here.
	* testsuite/23_containers/bitset/cons/dr396.cc: Moved to...
	* testsuite/20_util/bitset/cons/dr396.cc: ...here.
	* testsuite/23_containers/bitset/debug/invalidation/1.cc: Moved to...
	* testsuite/20_util/bitset/debug/invalidation/1.cc: ...here.
	* testsuite/23_containers/bitset/ext/15361.cc: Moved to...
	* testsuite/20_util/bitset/ext/15361.cc: ...here.
	* testsuite/23_containers/bitset/hash/1.cc: Moved to...
	* testsuite/20_util/bitset/hash/1.cc: ...here.
	* testsuite/23_containers/bitset/input/1.cc: Moved to...
	* testsuite/20_util/bitset/io/input.cc: ...here.
	* testsuite/23_containers/bitset/count/6124.cc: Moved to...
	* testsuite/20_util/bitset/observers/6124.cc: ...here.
	* testsuite/23_containers/bitset/all/1.cc: Moved to...
	* testsuite/20_util/bitset/observers/all.cc: ...here.
	* testsuite/23_containers/bitset/test/1.cc: Moved to...
	* testsuite/20_util/bitset/observers/test.cc: ...here.
	* testsuite/23_containers/bitset/operations/1.cc: Moved to...
	* testsuite/20_util/bitset/operations/1.cc: ...here.
	* testsuite/23_containers/bitset/operations/13838.cc: Moved to...
	* testsuite/20_util/bitset/operations/13838.cc: ...here.
	* testsuite/23_containers/bitset/operations/2.cc: Moved to...
	* testsuite/20_util/bitset/operations/2.cc: ...here.
	* testsuite/23_containers/bitset/operations/96303.cc: Moved to...
	* testsuite/20_util/bitset/operations/96303.cc: ...here.
	* testsuite/23_containers/bitset/operations/constexpr-2.cc: Moved to...
	* testsuite/20_util/bitset/operations/constexpr-2.cc: ...here.
	* testsuite/23_containers/bitset/operations/constexpr.cc: Moved to...
	* testsuite/20_util/bitset/operations/constexpr.cc: ...here.
	* testsuite/23_containers/bitset/requirements/constexpr_functions.cc: Moved to...
	* testsuite/20_util/bitset/requirements/constexpr_functions.cc: ...here.
	* testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc: Moved to...
	* testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc: ...here.
	* testsuite/23_containers/bitset/requirements/explicit_instantiation/1_c++0x.cc: Moved to...
	* testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc: ...here.
	* testsuite/23_containers/headers/bitset/synopsis.cc: Moved to...
	* testsuite/20_util/headers/bitset/synopsis.cc: ...here.

2022-09-22  François Dumont  <fdumont@gcc.gnu.org>

	* python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
	types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
	std::__debug::priority_queue.

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

	PR libstdc++/91456
	* testsuite/20_util/function/91456.cc: Add comment with PR
	number.
	* testsuite/20_util/is_invocable/91456.cc: Likewise. Replace
	std::function checks with std::is_invocable_r checks.

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

	* testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
	unnecessary main function.
	* testsuite/17_intro/headers/c++2011/all_attributes.cc:
	Likewise.
	* testsuite/17_intro/headers/c++2014/all_attributes.cc:
	Likewise.
	* testsuite/17_intro/headers/c++2017/all_attributes.cc:
	Likewise.
	* testsuite/17_intro/headers/c++2020/all_attributes.cc:
	Likewise.

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

	* testsuite/20_util/headers/memory/synopsis.cc: Add declarations
	from C++11 and later.

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

	* doc/xml/manual/documentation_hacking.xml: Remove trailing
	whitespace.
	* doc/xml/manual/policy_data_structures.xml: Likewise.

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

	* include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add
	using-declaration for _Exit.

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

	* testsuite/18_support/uncaught_exception/14026.cc: Qualify
	call to std::abort.

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

	* include/bits/ranges_base.h: Include <initializer_list>.

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

	* include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix
	missing space.

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

	PR libstdc++/106953
	* include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define
	shared_ptr members.
	* include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare
	std::allocator_traits<std::allocator<T>> specializations for
	freestanding.
	* include/bits/memoryfwd.h [!_GLIBCXX_HOSTED] (allocator): Do
	not declare for freestanding.
	* include/bits/stl_algo.h [!_GLIBCXX_HOSTED] (stable_partition):
	Do not define for freestanding.
	[!_GLIBCXX_HOSTED] (merge, stable_sort): Do not use temporary
	buffers for freestanding.
	* include/bits/stl_algobase.h [!_GLIBCXX_HOSTED]: Do not declare
	streambuf iterators and overloaded algorithms using them.
	* include/bits/stl_uninitialized.h [!_GLIBCXX_HOSTED]: Do not
	define specialized overloads for std::allocator.
	* include/bits/unique_ptr.h [!_GLIBCXX_HOSTED] (make_unique)
	(make_unique_for_overwrite, operator<<): Do not define for
	freestanding.
	* include/c_global/cstdlib [!_GLIBCXX_HOSTED] (_Exit): Declare.
	Use _GLIBCXX_NOTHROW instead of throw().
	* include/debug/assertions.h [!_GLIBCXX_HOSTED]: Ignore
	_GLIBCXX_DEBUG for freestanding.
	* include/debug/debug.h [!_GLIBCXX_DEBUG]: Likewise.
	* include/std/bit [!_GLIBCXX_HOSTED]: Do not use the custom
	__int_traits if <ext/numeric_traits.h> is available.
	* include/std/functional [!_GLIBCXX_HOSTED]: Do not include
	headers that aren't valid for freestanding.
	(boyer_moore_searcher, boyer_moore_horspool_searcher): Do not
	define for freestanding.
	* include/std/iterator [!_GLIBCXX_HOSTED]: Do not include
	headers that aren't valid for freestanding.
	* include/std/memory [!_GLIBCXX_HOSTED]: Likewise.
	* include/std/ranges [!_GLIBCXX_HOSTED] (istream_view): Do not
	define for freestanding.
	(views::__detail::__is_basic_string_view) [!_GLIBCXX_HOSTED]:
	Do not define partial specialization for freestanding.

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

	* include/bits/alloc_traits.h (__alloc_swap)
	(__shrink_to_fit_aux): Move here, from ...
	* include/bits/allocator.h: ... here.
	* include/ext/alloc_traits.h: Do not include allocator.h.

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

	* include/bits/stl_algo.h: Include <bits/stl_algobase.h>.
	* include/bits/stl_tempbuf.h: Include headers for __try and
	__catch macros, std::pair, and __gnu_cxx::__numeric_traits.
	* include/bits/stream_iterator.h: Include <iosfwd> and headers
	for std::addressof and std::iterator.
	* include/bits/streambuf_iterator.h: Include header for
	std::iterator.
	* include/std/iterator: Do not include <iosfwd>.

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

	* testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
	Store value with non-zero padding bits after construction.

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

	* include/tr1/random.h (__detail::_Adaptor::_BEngine): Remove.
	(__detail::_Adaptor::_M_g): Make public.
	(__detail::_Adaptor<_Engine*, _Dist>): Remove partial
	specialization.
	(variate_generate::_Value): New helper to simplify handling of
	_Engine* and _Engine& template arguments.
	(variate_generate::engine_value_type): Define to underlying
	engine type, not adapted type.
	(variate_generate::engine()): Return underlying engine instead
	of adaptor.
	* testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc:
	Fix comment.
	* testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc:
	Check member typedefs have the correct types.

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

	* include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
	(_Error_formatter): Use 0 as null pointer constant.

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

	* include/bits/allocator.h (__alloc_neq): Remove.
	* include/bits/stl_list.h (list::_M_check_equal_allocators):
	Compare allocators directly, without __alloc_neq.

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

	* doc/doxygen/user.cfg.in (PREDEFINED): Remove __allocator_base.
	* include/bits/allocator.h: Fix nesting of Doxygen commands.

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

	* doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 and
	GLIBCXX_3.4.31 versions.
	* doc/html/manual/abi.html: Regenerate.

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

	* include/std/memory: Do not include <bits/stl_algobase.h>.

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

	* include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
	Replace with ...
	(_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
	(_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
	try_lock_failed flag
	(_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
	(_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
	(_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
	(_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
	(_Sp_atomic::_Atomic_count::lock): Use new macros.

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

	* include/bits/ranges_algo.h (__adjacent_find_fn, adjacent_find):
	Move to ...
	* include/bits/ranges_util.h: ... here.
	* include/std/ranges (chunk_by_view): Define.
	(chunk_by_view::_Iterator): Define.
	(__detail::__can_chunk_by_view): Define.
	(_ChunkBy, chunk_by): Define.
	* testsuite/std/ranges/adaptors/chunk_by/1.cc: New test.

2022-09-15  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
	Adapt dg-prune-output to _GLIBCXX_INLINE_VERSION mode.

2022-09-15  François Dumont  <fdumont@gcc.gnu.org>

	* config/abi/pre/gnu-versioned-namespace.ver: Remove obsolete std::__detail::__8
	symbols.

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

	* include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
	(_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
	(_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
	(_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
	Define macros for TSan annotation functions.
	(_Sp_atomic::_Atomic_count): Add annotations.

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

	* include/bits/stl_tempbuf.h: Include <new>.

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

	* testsuite/17_intro/names.cc: Explain why poison pragma can't
	be used.

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

	* include/std/future
	(_State_baseV2::__setter(exception_ptr&, promise&)): Add
	assertion for LWG 2276 precondition.
	* testsuite/30_threads/promise/members/set_exception_neg.cc:
	New test.

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

	* doc/xml/manual/intro.xml: Document LWG 1203.
	* doc/html/*: Regenerate.

2022-09-14  Philipp Fent  <fent@in.tum.de>

	* python/libstdcxx/v6/printers.py (access_streambuf_ptrs):
	New helper function.
	(StdStringBufPrinter, StdStringStreamPrinter): New printers.
	(build_libstdcxx_dictionary): Register stringstream printers.
	* testsuite/libstdc++-prettyprinters/debug.cc: Check string
	streams.
	* testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
	* testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.

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

	* include/std/ranges (__detail::__slide_caches_nothing): Define.
	(__detail::__slide_caches_last): Define.
	(__detail::__slide_caches_first): Define.
	(slide_view): Define.
	(enable_borrowed_range<slide_view>): Define.
	(slide_view::_Iterator): Define.
	(slide_view::_Sentinel): Define.
	(views::__detail::__can_slide_view): Define.
	(views::_Slide, views::slide): Define.
	* testsuite/std/ranges/adaptors/slide/1.cc: New test.

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

	* include/std/ranges (__detail::__div_ceil): Define.
	(chunk_view): Define.
	(chunk_view::_OuterIter): Define.
	(chunk_view::_OuterIter::value_type): Define.
	(chunk_view::_InnerIter): Define.
	(chunk_view<_Vp>): Define partial specialization for forward
	ranges.
	(enable_borrowed_range<chunk_view>): Define.
	(chunk_view<_Vp>::_Iterator): Define.
	(views::__detail::__can_chunk_view): Define.
	(views::_Chunk, views::chunk): Define.
	* testsuite/std/ranges/adaptors/chunk/1.cc: New test.

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

	* include/std/ranges (join_view::_Iterator::_M_satisfy):
	Adjust resetting _M_inner as per LWG 3569.
	(join_view::_Iterator::_M_inner): Wrap in std::optional
	as per LWG 3569.
	(join_view::_Iterator::_Iterator): Relax constraints as
	per LWG 3569.
	(join_view::_Iterator::operator*): Adjust as per LWG 3569.
	(join_view::_Iterator::operator->): Likewise.
	(join_view::_Iterator::operator++): Likewise.
	(join_view::_Iterator::operator--): Likewise.
	(join_view::_Iterator::iter_move): Likewise.
	(join_view::_Iterator::iter_swap): Likewise.
	* testsuite/std/ranges/adaptors/join.cc (test14): New test.

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

	* include/debug/safe_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
	Add parentheses to avoid -Wparentheses warning.

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

	PR libstdc++/106320
	* testsuite/std/ranges/adaptors/join.cc (test13): New test.

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

	* testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Fix
	comments.
	* testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
	Likewise.

2022-09-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/105329
	* acinclude.m4 (libtool_VERSION): Change to 6:31:0.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Don't export
	std::basic_string methods with name length of 15.
	(GLIBCXX_3.4.31): Export std::basic_string::_M_replace_cold.
	* testsuite/util/testsuite_abi.cc (check_version): Handle
	GLIBCXX_3.4.31.
	* include/bits/basic_string.h (std::basic_string::_M_replace_cold):
	Declare.
	* include/bits/basic_string.tcc (std::basic_string::_M_replace_cold):
	Define and export even for C++20.
	(std::basic_string::_M_replace): Use __builtin_expect, outline
	the overlapping case to _M_replace_cold.
	* configure: Regenerated.

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

	* include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
	Rename __weak to __is_weak.
	* testsuite/17_intro/names.cc: Add __weak and __strong.

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

	PR libstdc++/106803
	* include/std/ranges (views::_ZipTransform::operator()): Correct
	return type in the empty case.
	(views::_AdjacentTransform::operator()): Likewise.

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

	PR libstdc++/106798
	* include/std/ranges (adjacent_view::_Iterator::_Iterator): Fix
	typo.
	* testsuite/std/ranges/adaptors/adjacent/1.cc (test04): New test.

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

	PR libstdc++/106766
	* include/std/ranges (zip_view::_Iterator::operator-): Use
	__to_unsigned_like instead of make_unsigned_t.
	(zip_view::_Sentinel::operator-): Likewise.
	* testsuite/std/ranges/zip/1.cc (test04): New test.

2022-09-08  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/util/testsuite_performance.h (__gnu_test::MallocInfo): New.
	(__gnu_test::malloc_info): New, replace mallinfo on current platform
	supporting it and use mallinfo2 when glibc >= 2.33.

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

	PR c++/106838
	* testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
	Prune additional errors from front-end.
	* testsuite/20_util/is_move_constructible/incomplete_neg.cc:
	Likewise.
	* testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc:
	Likewise.
	* testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc:
	Likewise.
	* testsuite/20_util/is_swappable_with/incomplete_neg.cc:
	Likewise.

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

	* include/c_global/cstddef (byte): Add always_inline attribute
	to all operator overloads.
	(to_integer): Add always_inline attribute.

2022-09-08  Thomas Rodgers  <trodgers@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_base.h (__atomic_impl::__maybe_has_padding):
	New function.
	(__atomic_impl::clear_padding): Likewise.
	(__atomic_impl::__compare_exchange): Likewise.
	(__atomic_impl::compare_exchange_weak): Delegate to
	__compare_exchange.
	(__atomic_impl::compare_exchange_strong): Likewise.
	* include/std/atomic (atomic<T>::atomic(T)): Clear padding when
	possible in a constexpr function.
	(atomic::store): Clear padding.
	(atomic::exchange): Likewise.
	(atomic::compare_exchange_weak): Use __compare_exchange.
	(atomic::compare_exchange_strong): Likewise.
	* testsuite/29_atomics/atomic/compare_exchange_padding.cc: New
	test.
	* testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
	New test.

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

	* include/std/system_error (__adl_only::make_error_code): Add
	deleted function.
	(__adl_only::make_error_condition): Likewise.
	(error_code::error_code(ErrorCodeEnum)): Add using-declaration
	for deleted function.
	(error_condition::error_condition(ErrorConditionEnum)):
	Likewise.
	* testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
	* testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.

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

	* include/std/barrier: Add missing runtime exception.

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

	* include/std/type_traits (is_reference): Make the primary
	template derive from false_type.  Define two partial
	specializations that derive from true_type.

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

	* include/std/type_traits (__is_void_helper): Remove.
	(is_void): Make the primary template derive from false_type,
	and define four explicit specializations that derive from
	true_type.
	(__is_null_pointer_helper, is_null_pointer): Likewise.

2022-09-07  Jason Merrill  <jason@redhat.com>

	* libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
	call in simple success case.

2022-09-06  Philipp Fent  <fent@in.tum.de>

	* testsuite/libstdc++-prettyprinters/48362.cc: Fix expected
	tuple indices.
	* testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.

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

	* include/std/type_traits (__success_type, __failure_type): Move
	definitions later in the file.

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

	* include/std/type_traits (is_trivial_v, is_trivially_copyable_v)
	(is_standard_layout_v, is_pod_v, is_literal_type_v): Use
	built-in instead of class template.
	(is_same_v): Add partial specialization for true case.

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

	* include/std/tuple (tuple::_UseOtherCtor): Use ::type when
	deriving from __and_, __or_ or __not_.
	* include/std/type_traits (negation): Likewise.
	(is_unsigned): Likewise.
	(__is_implicitly_default_constructible): Likewise.
	(is_trivially_destructible): Likewise.
	(__is_nt_invocable_impl): Likewise.

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

	* include/std/type_traits (is_constructible_v)
	(is_default_constructible_v, is_copy_constructible_v)
	(is_move_constructible_v): Define using __is_constructible.
	(is_assignable_v, is_copy_assignable_v, is_move_assignable_v):
	Define using __is_assignable.
	(is_trivially_constructible_v)
	(is_trivially_default_constructible_v)
	(is_trivially_copy_constructible_v)
	(is_trivially_move_constructible_v): Define using
	__is_trivially_constructible.
	(is_trivially_assignable_v, is_trivially_copy_assignable_v)
	(is_trivially_move_assignable_v): Define using
	__is_trivially_assignable.
	(is_nothrow_constructible_v)
	(is_nothrow_default_constructible_v)
	(is_nothrow_copy_constructible_v)
	(is_nothrow_move_constructible_v): Define using
	__is_nothrow_constructible.
	(is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
	(is_nothrow_move_assignable_v): Define using
	__is_nothrow_assignable.

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

	* include/std/type_traits (__or_, __and_, __not_): Redefine as a
	class template instead of as an alias template.
	* testsuite/20_util/logical_traits/requirements/short_circuit.cc:
	Add more tests for conjunction and disjunction.  Add corresponding
	tests for __and_ and __or_.

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

	* include/std/ranges (adjacent_transform_view::_Iterator): Add
	typename keyword before dependent qualified-id.

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

	* include/std/type_traits (__is_referenceable): Remove.
	(__add_lvalue_reference_helper, __add_rvalue_reference_helper):
	Use __void_t instead of __is_referenceable.
	(__add_pointer_helper): Likewise.
	(add_pointer): Add partial specializations for reference types.

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

	* include/std/type_traits (__is_constructible_impl): Replace
	class template with alias template.
	(is_default_constructible, is_nothrow_constructible)
	(is_nothrow_constructible): Simplify base-specifier.
	(__is_copy_constructible_impl, __is_move_constructible_impl)
	(__is_nothrow_copy_constructible_impl)
	(__is_nothrow_move_constructible_impl): Remove class templates.
	(is_copy_constructible, is_move_constructible)
	(is_nothrow_constructible, is_nothrow_default_constructible)
	(is_nothrow_copy_constructible, is_nothrow_move_constructible):
	Adjust base-specifiers to use __is_constructible_impl.
	(__is_copy_assignable_impl, __is_move_assignable_impl)
	(__is_nt_copy_assignable_impl, __is_nt_move_assignable_impl):
	Remove class templates.
	(__is_assignable_impl): New alias template.
	(is_assignable, is_copy_assignable, is_move_assignable):
	Adjust base-specifiers to use new alias template.
	(is_nothrow_copy_assignable, is_nothrow_move_assignable):
	Adjust base-specifiers to use existing alias template.
	(__is_trivially_constructible_impl): New alias template.
	(is_trivially_constructible, is_trivially_default_constructible)
	(is_trivially_copy_constructible)
	(is_trivially_move_constructible): Adjust base-specifiers to use
	new alias template.
	(__is_trivially_assignable_impl): New alias template.
	(is_trivially_assignable, is_trivially_copy_assignable)
	(is_trivially_move_assignable): Adjust base-specifier to use
	new alias template.
	(__add_lval_ref_t, __add_rval_ref_t): New alias templates.
	(add_lvalue_reference, add_rvalue_reference): Use new alias
	templates.

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

	* include/std/type_traits (__decay_selector): Add partial
	specializations for array types. Only check for function types
	when not dealing with an array.
	(decay): Add partial specializations for reference types.

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

	* include/std/type_traits (is_lvalue_reference_v)
	(is_rvalue_reference_v, is_reference_v, is_const_v)
	(is_volatile_v): Define using partial specializations instead
	of instantiating class templates.

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

	* include/std/type_traits (is_enum_v, is_class_v, is_union_v)
	(is_empty_v, is_polymoprhic_v, is_abstract_v, is_final_v)
	(is_base_of_v, is_aggregate_v): Use built-in directly instead of
	instantiating class template.

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

	* include/std/type_traits (is_scoped_enum): Remove workaround.

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

	* include/std/ranges (__detail::__unarize): Define.
	(adjacent_view::_Iterator): Befriend adjacent_transform_view.
	(adjacent_transform_view): Define.
	(adjacent_transform_view::_Iterator): Define.
	(adjacent_transform_view::_Sentinel): Define.
	(views::__detail::__can_adjacent_transform_view): Define.
	(views::_AdjacentTransform): Define.
	(views::adjacent_transform): Define.
	(views::pairwise_transform): Define.
	* testsuite/std/ranges/adaptors/adjacent_transform/1.cc: New test.

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

	* include/std/type_traits (__is_array_known_bounds): Add partial
	specialization instead of using std::extent.
	(__is_array_unknown_bounds): Likewise.
	(extent): Add partial specializations to stop recursion after
	the result is found.
	(is_array_v): Add partial specializations instead of
	instantiating the class template.
	(rank_v, extent_v): Likewise.
	(is_bounded_array_v, is_unbounded_array_v): Likewise.
	(is_bounded_array, is_unbounded_array): Define in terms of the
	variable templates.

2022-08-31  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_base.h (__advance_fn::operator()): Add
	parentheses in assert condition to avoid -Wparentheses warning.
	* include/std/ranges: (take_view::take_view): Uglify 'base'.
	(take_while_view::take_while_view): Likewise.
	(elements_view::elements_view): Likewise.
	(views::_Zip::operator()): Adjust position of [[nodiscard]] for
	compatibility with -fconcepts-ts.
	(zip_transform_view::_Sentinel): Uglify 'OtherConst'.
	(views::_ZipTransform::operator()): Adjust position of
	[[nodiscard]] for compatibilty with -fconcepts-ts.

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

	* configure: Regenerate.
	* crossconfig.m4: Remove deprecated ports.

2022-08-31  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/debug.h: Use nullptr rather than '0' in checks in post-C++11.
	* include/debug/string: Likewise.
	* testsuite/21_strings/basic_string/operations/ends_with/char.cc: Use __gnu_test::string.
	* testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/starts_with/char.cc: Likewise..

2022-08-31  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (adjacent_view): Define.
	(enable_borrowed_range<adjacent_view>): Define.
	(__detail::__repeated_tuple): Define.
	(adjacent_view::_Iterator): Define.
	(adjacent_view::_Sentinel): Define.
	(views::__detail::__can_adjacent_view): Define.
	(views::_Adjacent): Define.
	(views::adjacent): Define.
	(views::pairwise): Define.
	* testsuite/std/ranges/adaptors/adjacent/1.cc: New test.

2022-08-31  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/formatter.h
	[_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare.
	[_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare.
	[_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define.
	[_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define.
	[_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define.
	[_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare.
	[_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New.
	[_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New.
	* src/c++11/debug.cc [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New.
	(_Error_formatter::_M_error()): Adapt.
	* src/libbacktrace/Makefile.am: Add backtrace.c.
	* src/libbacktrace/Makefile.in: Regenerate.
	* src/libbacktrace/backtrace-rename.h (backtrace_full): New.
	* testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: New test.
	* doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE.
	* doc/xml/manual/using.xml: Likewise.

2022-08-31  Patrick Palka  <ppalka@redhat.com>

	* testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test.

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

	* include/bits/refwrap.h (reference_wrapper::operator()): Add
	noexcept-specifier and use __invoke_result instead of result_of.
	* testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.

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

	* testsuite/20_util/reference_wrapper/invoke-2.cc: Improve
	comments.
	* testsuite/20_util/reference_wrapper/invoke-3.cc: Likewise.
	* testsuite/20_util/reference_wrapper/invoke.cc: Likewise.

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

	* include/bits/basic_string.h (basic_string): Add nodiscard
	attribute to all relevant functions.
	* include/std/string_view (basic_string_view): Likewise.
	* testsuite/21_strings/basic_string/capacity/1.cc: Cast unused
	results to void.
	* testsuite/21_strings/basic_string/capacity/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/cons/char/self_move.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/char/21674.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
	Likewise.
	* testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
	* testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/contains/nonnull.cc:
	Add -Wno-unused-result to options.
	* testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
	Likewise.
	* testsuite/21_strings/basic_string/operators/char/1.cc: Cast
	unused results to void.
	* testsuite/21_strings/basic_string/operators/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/capacity/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/char/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc:
	Likewise.
	Add -Wno-unused-result to options.
	* testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
	Likewise.
	* testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
	Likewise.
	* testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Cast
	unused results to void.
	* testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc:
	Likewise.
	* testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise.
	* testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc:
	Likewise.

2022-08-27  Patrick Palka  <ppalka@redhat.com>

	* testsuite/20_util/logical_traits/requirements/base_classes.cc: New test.

2022-08-26  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (zip_view::_Iterator::operator<): Remove
	as per LWG 3692.
	(zip_view::_Iterator::operator>): Likewise.
	(zip_view::_Iterator::operator<=): Likewise.
	(zip_view::_Iterator::operator>=): Likewise.
	(zip_view::_Iterator::operator<=>): Remove three_way_comparable
	constraint as per LWG 3692.
	(zip_transform_view::_Iterator): Ditto as per LWG 3702.

2022-08-26  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (zip_view::_Iterator): Befriend
	zip_transform_view.
	(__detail::__range_iter_cat): Define.
	(zip_transform_view): Define.
	(zip_transform_view::_Iterator): Define.
	(zip_transform_view::_Sentinel): Define.
	(views::__detail::__can_zip_transform_view): Define.
	(views::_ZipTransform): Define.
	(views::zip_transform): Define.
	* testsuite/std/ranges/zip_transform/1.cc: New test.

2022-08-26  Patrick Palka  <ppalka@redhat.com>

	* include/std/type_traits (enable_if, __enable_if_t): Define them
	earlier.
	(__detail::__first_t): Define.
	(__detail::__or_fn, __detail::__and_fn): Declare.
	(__or_, __and_): Redefine as alias templates in terms of __or_fn
	and __and_fn.
	(__not_): Redefine as an alias template.
	(__detail::__disjunction_impl, __detail::__conjunction_impl):
	Define.
	(conjuction, disjunction): Redefine in terms of __disjunction_impl
	and __conjunction_impl.

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

	* include/std/system_error (error_code::_Check): New alias
	template for constructor SFINAE constraint.
	(error_code::error_code(ErrorCodeEnum)): Use it.
	(error_code::operator=(ErrorCodeEnum)): Remove.
	(error_condition::_Check): New alias template for constraint.
	(error_condition::error_condition(ErrorConditionEnum)): Use it.
	(error_condition::operator=(ErrorConditionEnum)): Remove.
	* testsuite/19_diagnostics/error_code/cons/1.cc: Check
	constructor taking user-defined error enum.
	* testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise.

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

	* include/bits/basic_string.h (starts_with, ends_with, contains):
	Add nonnull attribute.
	* include/bits/cow_string.h (starts_with, ends_with, contains):
	Likewise.
	* include/std/string_view (starts_with, ends_with, contains):
	Likewise.
	* testsuite/21_strings/basic_string/operations/contains/nonnull.cc
	* testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
	* testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
	* testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
	* testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
	* testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc

2022-08-25  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (lazy_split_view::_OuterIter::_M_current):
	Remove redundant comment.
	(lazy_split_view::_M_current): Likewise.
	(common_view::common_view): Remove commented out view-converting
	constructor as per LWG3405.
	(elements_view::_Iterator::_Iterator): Uglify 'current' and 'i'.

2022-08-24  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_algo.h (__min_fn, min): Move to ...
	* include/bits/ranges_util.h: ... here, in order to avoid
	including all of ranges_algo.h from <ranges>.
	* include/std/ranges (__detail::__zip_is_common): Define for
	C++23 as per P2321R2.
	(__detail::__tuple_or_pair): Likewise.
	(__detail::__tuple_or_pair_t): Likewise.
	(__detail::__tuple_transform): Likewise.
	(__detail::__tuple_for_each): Likewise.
	(zip_view): Likewise.
	(enable_borrowed_range<zip_view>): Likewise.
	(__detail::__all_random_access): Likewise.
	(__detail::__all_bidirectional): Likewise.
	(__detail::__all_forward): Likewise.
	(__detail::__zip_view_iter_cat): Likewise.
	(zip_view::_Iterator): Likewise.
	(zip_view::_Sentinel): Likewise.
	* testsuite/std/ranges/zip/1.cc: New test.

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

	Revert:
	2022-08-24  Will Hawkins  <whh8b@obs.cr>

	* include/bits/basic_string.h (operator+(const string&, const char*)):
	Remove naive implementation.
	* include/bits/basic_string.tcc (operator+(const string&, const char*)):
	Add single-allocation implementation.

2022-08-24  Patrick Palka  <ppalka@redhat.com>

	* include/bits/stl_pair.h (pair::swap const): Add non-standard
	is_swappable_v constraints.
	* include/std/tuple (tuple::swap const): Likewise.
	* testsuite/20_util/tuple/cons/noexcept_specs.cc: Correct some
	asserts in C++23 mode.

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

	* include/bits/stl_algo.h (__stable_sort): Cast size to
	iterator's difference type.
	* testsuite/25_algorithms/stable_sort/4.cc: New test.

2022-08-24  Will Hawkins  <whh8b@obs.cr>

	* include/bits/basic_string.h (operator+(const string&, const char*)):
	Remove naive implementation.
	* include/bits/basic_string.tcc (operator+(const string&, const char*)):
	Add single-allocation implementation.

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

	* testsuite/20_util/duration_cast/rounding.cc: Check abs with
	non-reduced duration.

2022-08-23  Patrick Palka  <ppalka@redhat.com>

	* include/bits/stl_bvector.h (_Bit_reference::operator=): Define
	const overload for C++23 as per P2321R2.
	* include/bits/stl_pair.h (pair::swap): Likewise.
	(pair::pair): Define additional converting constructors for
	C++23 as per P2321R2.
	(pair::operator=): Define const overloads for C++23 as per
	P2321R2.
	(swap): Define overload taking const pair& for C++23 as per
	P2321R2.
	(basic_common_reference): Define partial specialization for
	pair for C++23 as per P2321R2.
	(common_type): Likewise.
	* include/bits/uses_allocator_args.h
	(uses_allocator_construction_args): Define additional pair
	overloads for C++23 as per P2321R2.
	* include/std/tuple (_Tuple_impl::_Tuple_impl): Define
	additional converting constructors for C++23 as per P2321R2.
	(_Tuple_impl::_M_assign): Define const overloads for C++23
	as per P2321R2.
	(_Tuple_impl::_M_swap): Likewise.
	(tuple::__constructible): Define as a convenient renaming of
	_TCC<true>::__constructible.
	(tuple::__convertible): As above but for _TCC<true>::__convertible.
	(tuple::tuple): Define additional converting constructors for
	C++23 as per P2321R2.
	(tuple::operator=): Define const overloads for C++23 as per
	P2321R2.
	(tuple::swap): Likewise.
	(basic_common_reference): Define partial specialization for
	tuple for C++23 as per P2321R2.
	(common_type): Likewise.
	* testsuite/20_util/pair/p2321r2.cc: New test.
	* testsuite/20_util/tuple/p2321r2.cc: New test.
	* testsuite/23_containers/vector/bool/element_access/1.cc: New test.

2022-08-23  Patrick Palka  <ppalka@redhat.com>

	* include/std/tuple (_TupleConstraints::__convertible): Define.
	(_TupleConstraints::__constructible): Define.
	(_TupleConstraints::__is_explicitly_constructible): Redefine this
	in terms of __convertible and __constructible.
	(_TupleConstraints::__is_implicitly_constructible): Likewise.

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

	PR libstdc++/106589
	* include/std/variant (__do_visit): Handle is_void<R> for zero
	argument case.
	* testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).

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

	PR libstdc++/105678
	* doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
	requirement for using std::stacktrace. Also adjust -frtti and
	-fexceptions to document non-default (i.e. negative) forms.
	* doc/html/*: Regenerate.

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

	PR libstdc++/106695
	* include/bits/std_thread.h (thread::_State_impl): Forward
	individual arguments to _Invoker constructor.
	(thread::_Invoker): Add constructor. Delete copies.
	* include/std/future (__future_base::_Deferred_state): Forward
	individual arguments to _Invoker constructor.
	(__future_base::_Async_state_impl): Likewise.
	* testsuite/30_threads/async/106695.cc: New test.
	* testsuite/30_threads/thread/106695.cc: New test.

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

	PR libstdc++/106607
	* include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
	Use built-ins to check for integer overflow in back-reference
	number.
	* testsuite/28_regex/basic_regex/106607.cc: New test.

2022-08-17  Keef Aragon  <keef.aragon@konscious.net>

	* libsupc++/eh_alloc.cc (pool::free): Inverse comparison.

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

	* include/debug/formatter.h (__singular_value_init): New _Iterator_state enum entry.
	(_Parameter<>(const _Safe_iterator<>&, const char*, _Is_iterator)): Check if iterator
	parameter is value-initialized.
	(_Parameter<>(const _Safe_local_iterator<>&, const char*, _Is_iterator)): Likewise.
	* include/debug/safe_iterator.h (_Safe_iterator<>::_M_value_initialized()): New. Adapt
	checks.
	* include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_M_value_initialized()): New.
	Adapt checks.
	* src/c++11/debug.cc (_Safe_iterator_base::_M_reset): Do not reset _M_version.
	(print_field(PrintContext&, const _Parameter&, const char*)): Adapt state_names.
	* testsuite/23_containers/deque/debug/iterator1_neg.cc: New test.
	* testsuite/23_containers/deque/debug/iterator2_neg.cc: New test.
	* testsuite/23_containers/forward_list/debug/iterator1_neg.cc: New test.
	* testsuite/23_containers/forward_list/debug/iterator2_neg.cc: New test.
	* testsuite/23_containers/forward_list/debug/iterator3_neg.cc: New test.

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

	* include/experimental/scope (__cpp_lib_experimental_scope):
	Define.
	* testsuite/experimental/scopeguard/uniqueres.cc: Check macro.

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

	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/experimental/scope: New file.
	* testsuite/experimental/scopeguard/uniqueres.cc: New test.
	* testsuite/experimental/scopeguard/exit.cc: New test.

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-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/fs_dir.h (directory_iterator): Add comparison
	with std::default_sentinel_t. Remove redundant operator!= for
	C++20.
	* (recursive_directory_iterator): Likewise.
	* include/bits/iterator_concepts.h [!__cpp_lib_concepts]
	(default_sentinel_t, default_sentinel): Define even if concepts
	are not supported.
	* include/bits/regex.h (regex_iterator): Add comparison with
	std::default_sentinel_t. Remove redundant operator!= for C++20.
	(regex_token_iterator): Likewise.
	(regex_token_iterator::_M_end_of_seq()): Add noexcept.
	* testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
	* testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
	New test.
	* testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
	New test.

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-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-04  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/106183
	* include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
	Move increment of _M_ver here.
	[!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
	Use relaxed memory order and always notify all waiters.
	(__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
	Check value again after locking mutex.
	(__waiter_base::_M_notify): Remove increment of _M_ver.

2022-08-04  Ulrich Drepper  <drepper@gmail.com>

	* python/libstdcxx/v6/printers.py (class StdTuplePrinter): Use
	zero-based indeces just like std:get takes.

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-07-26  Thomas Rodgers  <trodgers@redhat.com>

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

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

	PR libstdc++/100823
	* include/bits/stl_iterator.h (common_iterator): Define
	destructor, copy constructor and move constructor as trivial
	when the underlying types allow.
	* testsuite/24_iterators/common_iterator/100823.cc: Check
	triviality of special members.

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-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-19  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/debug.h [_GLIBCXX_DEBUG](__glibcxx_requires_string): Define
	using _GLIBCXX_DEBUG_PEDASSERT.
	[_GLIBCXX_DEBUG](__glibcxx_requires_string_len): Likewise.
	* include/debug/macros.h
	(__glibcxx_check_string, __glibcxx_check_string_len): Move...
	* include/debug/string
	(__glibcxx_check_string, __glibcxx_check_string_len): ...here. And define depending
	on _GLIBCXX_DEBUG_PEDANTIC no matter if _GLIBCXX_DEBUG is defined.
	Add using of std::string find, rfind, find_first_of, find_last_of, find_first_not_of
	and find_last_not_of. Remove debug implementations having no debug assertion.
	* testsuite/util/testsuite_string.h: New file. Provides __gnu_test::string and
	__gnu_test::wtring which definition depends on _GLIBCXX_DEBUG.
	* testsuite/21_strings/basic_string/debug/find1_neg.cc: New test case.
	* testsuite/21_strings/basic_string/debug/find2_neg.cc: New test case.
	* testsuite/21_strings/basic_string/operations/find/char/1.cc:
	Include <testsuite_string.h> and use __gnu_test::string.
	* testsuite/21_strings/basic_string/operations/find/char/2.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/find/char/3.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/find/char/4.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/find/char/6.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
	Include <testsuite_string.h> and use __gnu_test::wstring.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: Likewise.

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

	* include/std/type_traits (__cpp_lib_reference_from_temporary)
	(reference_constructs_from_temporary)
	(reference_converts_from_temporary): Only define when the
	built-ins are available.

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-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* configure: Regnerate.
	* configure.ac (newlib, *-rtems*): Remove HAVE_POLL.

2022-07-18  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_algo.h
	(__merge_adaptive): Adapt to merge only when buffer is large enough..
	(__merge_adaptive_resize): New, adapt merge when buffer is too small.
	(__inplace_merge): Adapt, use latter.
	(__stable_sort_adaptive): Adapt to sort only when buffer is large enough.
	(__stable_sort_adaptive_resize): New, adapt sort when buffer is too small.
	(__stable_sort): Adapt, use latter.

2022-07-15  Marek Polacek  <polacek@redhat.com>

	PR c++/104477
	* include/std/type_traits (reference_constructs_from_temporary,
	reference_converts_from_temporary): New class templates.
	(reference_constructs_from_temporary_v,
	reference_converts_from_temporary_v): New variable templates.
	(__cpp_lib_reference_from_temporary): Define for C++23.
	* include/std/version (__cpp_lib_reference_from_temporary): Define for
	C++23.
	* testsuite/20_util/variable_templates_for_traits.cc: Test
	reference_constructs_from_temporary_v and
	reference_converts_from_temporary_v.
	* testsuite/20_util/reference_from_temporary/value.cc: New test.
	* testsuite/20_util/reference_from_temporary/value2.cc: New test.
	* testsuite/20_util/reference_from_temporary/version.cc: New test.

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-07-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_iterator.h (__iter_to_alloc_t): Replace
	add_const_t with const-qualifier.
	* include/bits/utility.h (tuple_element<N, cv T>): Likewise for
	all cv-qualifiers.
	* include/std/type_traits (add_const, add_volatile): Replace
	typedef-declaration with using-declaration.
	(add_cv): Replace add_const and add_volatile with cv-qualifiers.
	* include/std/variant (variant_alternative<N, cv T>): Replace
	add_const_t, add_volatile_t and add_cv_t etc. with cv-qualifiers.

2022-07-09  François Dumont  <fdumont@gcc.gnu.org>

	* include/std/string: Remove obsolete comment about char_traits.h including
	stl_algobase.h.

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

	PR c++/89074
	* include/bits/char_traits.h (__gnu_cxx::char_traits::move):
	Remove workaround for front-end bug.

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

	* testsuite/util/testsuite_fs.h (nonexistent_path): Explain
	why we need the typecast.

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

	* testsuite/util/testsuite_fs.h (nonexistent_path): Convert
	the getpid result to an integral type.

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-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-07-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* configure: Regnerate.
	* configure.ac (newlib, *-rtems*): Enable TLS support for all RTEMS
	targets except bfin, lm32, mips, moxie, or1k, and v850.
	For all RTEMS targets, define HAVE_ALIGNED_ALLOC, HAVE_AT_QUICK_EXIT,
	HAVE_LINK, HAVE_POLL, HAVE_QUICK_EXIT, HAVE_READLINK, HAVE_SETENV,
	HAVE_SLEEP, HAVE_SOCKATMARK, HAVE_STRERROR_L, HAVE_SYMLINK,
	HAVE_TRUNCATE, and HAVE_USLEEP.
	* crossconfig.m4 (*-rtems*): Remove.

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

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

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

	* src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
	in exception.
	(fs::temp_directory_path(error_code&)): Rearrange to more
	closely match the structure of the first overload.
	* src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
	* testsuite/27_io/filesystem/operations/temp_directory_path.cc:
	Check that exception contains the path.
	* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
	Likewise.

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-06-28  Jonathan Wakely  <jwakely@redhat.com>

	* src/filesystem/dir-common.h (_Dir_base::_At_path):
	Use char_type consistently for paths.

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-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-06-28  Jonathan Wakely  <jwakely@redhat.com>

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

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

	* testsuite/20_util/to_chars/long_double.cc: Use cmath
	long double overloads for nexttoward and ldexp.

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

	* testsuite/experimental/simd/standard_abi_usable.cc: Require
	cmath support.
	* testsuite/experimental/simd/standard_abi_usable_2.cc:
	Likewise.

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

	* testsuite/26_numerics/complex/proj.cc: Skip test in the
	circumstances in which the implementation of proj is known to
	be broken.

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

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

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

	* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
	(test06): Don't create symlinks when NO_SYMLINKS is defined.

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

	* testsuite/lib/dg-options.exp (add_options_for_net_ts):
	Add -Wl,--gc-sections for RTEMS targets.
	* testsuite/experimental/net/timer/waitable/dest.cc: Link-time
	xfail on RTEMS.
	* testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
	* testsuite/experimental/net/internet/resolver/ops/lookup.cc:
	Execution-time xfail on RTEMS.
	* testsuite/experimental/net/internet/resolver/ops/reverse.cc:
	Likewise.

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

	* testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.

2022-06-27  Joel Brobecker  <brobecker@adacore.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
	Always include a counter in the filename returned.

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

	* include/bits/move_only_function.h (_Never_valueless_alt):
	Define partial specialization for std::move_only_function.

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

	* include/std/variant (_Build_FUN::_S_fun): Define fallback case
	as deleted.
	(__accepted_index, _Extra_visit_slot_needed): Replace class
	templates with variable templates.

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

	* include/bits/fs_path.h (__is_path_iter_src): Replace class
	template with variable template.

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

	* include/bits/chrono.h (is_clock_v): Define to false.
	(is_clock_v<T>): Define partial specialization for true cases.
	(is_clock): Define in terms of is_clock_v.

2022-06-24  Xi Ruoyao  <xry111@xry111.site>

	* scripts/extract_symvers.in: Use grep -E instead of egrep.
	* scripts/run_doxygen: Likewise.

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-06-24  Alexandre Oliva  <oliva@adacore.com>

	* testsuite/27_io/filesystem/operations/rename.cc: xfail on
	rtems.
	* testsuite/experimental/filesystem/operations/rename.cc:
	Likewise.

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

	* testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
	when appropriate.
	* testsuite/lib/libstdc++.exp
	(check_v3_target_fs_last_write_time): New.
	* testsuite/lib/dg-options.exp (dg-require-target-fs-lwt):
	New.
	* testsuite/27_io/filesystem/operations/last_write_time.cc:
	Skip the test if the features are unavailable.
	* testsuite/experimental/filesystem/operations/last_write_time.cc:
	Likewise.

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

	* testsuite/util/testsuite_fs.h (NO_SPACE): Define if
	appropriate.
	* testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
	* testsuite/lib/dg-options.exp (dg-require-target-fs-space):
	New.
	* testsuite/27_io/filesystem/operations/space.cc: Require
	target-fs-space.
	* testsuite/experimental/filesystem/operations/space.cc:
	Likewise.

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

	* testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on
	mingw and when create_symlink is a dummy.
	* testsuite/27_io/filesystem/operations/symlink_status.cc:
	Drop mingw xfail.
	(test01, test02): Don't create symlinks when NO_SYMLINKS is
	defined.
	* testsuite/27_io/filesystem/operations/canonical.cc (test03):
	Likewise.
	* testsuite/27_io/filesystem/operations/copy.cc (test02):
	Likewise.
	* testsuite/27_io/filesystem/operations/create_directories.cc
	(test04): Likewise.
	* testsuite/27_io/filesystem/operations/create_directory.cc
	(test01): Likewise.
	* testsuite/27_io/filesystem/operations/permissions.cc
	(test03, test04): Likewise.
	* testsuite/27_io/filesystem/operations/remove.cc (test01):
	Likewise.
	* testsuite/27_io/filesystem/operations/remove_all.cc (test01):
	Likewise.
	* testsuite/27_io/filesystem/operations/rename.cc
	(test_symlinks): Likewise.
	* testsuite/27_io/filesystem/operations/weakly_canonical.cc
	(test01): Likewise.
	* testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
	(test06): Likewise.
	* testsuite/experimental/filesystem/operations/copy.cc
	(test01): Likewise.
	* testsuite/experimental/filesystem/operations/create_directories.cc
	(test04): Likewise.
	* testsuite/experimental/filesystem/operations/create_directory.cc
	(test01): Likewise.
	* testsuite/experimental/filesystem/operations/permissions.cc
	(test03, test04): Likewise.
	* testsuite/experimental/filesystem/operations/remove.cc
	(test01): Likewise.
	* testsuite/experimental/filesystem/operations/remove_all.cc
	(test01): Likewise.
	* testsuite/experimental/filesystem/operations/rename.cc
	(test01): Likewise.
	* testsuite/lib/libstdc++.exp
	(v3_check_preprocessor_condition): Add optional inc parameter.
	Add it to the test program after include bits/c++config.h.
	(check_v3_target_fs_symlinks): New.
	* testsuite/lib/dg-options.exp
	(dg-require-target-fs-symlinks): New.
	* testsuite/27_io/filesystem/operations/read_symlink.cc:
	Replace mingw xfail with require target-fs-symlinks.
	* testsuite/experimental/filesystem/operations/read_symlink.cc:
	Likewise.

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

	* testsuite/27_io/filesystem/operations/copy.cc (test02):
	Select TO after creating FROM.
	(test03, test04): Likewise.
	* testsuite/experimental/filesystem/operations/copy.cc
	(test02, test03, test04): Likewise.

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

	* testsuite/30_threads/thread/native_handle/cancel.cc: Add an
	explicit cancellation point in case sleep_for lacks one.

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

	* testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
	-lbsd for RTEMS targets.

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-23  Jonathan Wakely  <jwakely@redhat.com>

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

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

	* libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
	(__eh_globals_init::~__eh_globals_init): Clear _S_init first.

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

	* testsuite/30_threads/this_thread/60421.cc (test02): Call
	sched_yield.

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

	* testsuite/20_util/to_chars/long_double.cc: Require cmath.

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

	* testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
	global struct bitset.
	* testsuite/23_containers/bitset/ext/15361.cc: Likewise.
	* testsuite/23_containers/bitset/input/1.cc: Likewise.
	* testsuite/23_containers/bitset/to_string/1.cc: Likewise.
	* testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.

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

	* testsuite/21_strings/basic_string/cons/char/105995.cc: Add
	missing #include.

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-06-16  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101482
	* include/ext/vstring.h (operator==): Always check lengths
	before comparing.

2022-06-15  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/105717
	* include/bits/hashtable_policy.h (_ConvertToValueType): New.
	* include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
	(_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
	(_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
	(_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
	const allocator_type&, true_type)): Use this.insert range.
	(_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
	const allocator_type&, false_type)): Use _M_insert.
	* testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
	is done.
	* testsuite/23_containers/unordered_map/insert/105717.cc: New test.
	* testsuite/23_containers/unordered_set/insert/105717.cc: New test.

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

	PR libstdc++/62187
	* include/bits/basic_string.h (operator==): Always compare
	lengths before checking string contents.
	[!__cpp_lib_three_way_comparison] (operator==, operator!=):
	Reorder arguments.

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

	PR libstdc++/59048
	* include/bits/basic_string.h (compare): Define inline.
	* include/bits/basic_string.tcc (compare): Remove out-of-line
	definitions.
	* include/bits/cow_string.h (compare): Define inline.
	* testsuite/21_strings/basic_string/operations/compare/char/3.cc:
	New test.

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

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

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-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-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-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-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-06-10  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (__hash_str_base): New class
	template.
	(hash<basic_string<C, char_traits<C>, A>>): Define partial
	specialization for each of the standard character types.
	(hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
	(hash<u32string>): Remove explicit specializations.
	* include/std/string (__hash_string_base): Remove class
	template.
	(hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
	(hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
	specializations.
	* testsuite/21_strings/basic_string/hash/hash.cc: Test with
	custom allocators.
	* testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
	Likewise.

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

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

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-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-26  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/Makefile.am: Add new source file.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++11/cxx11-ios_failure.cc (iostream_category):
	Move to ...
	* src/c++11/ios_errcat.cc: New file.
	* testsuite/27_io/ios_base/failure/error_code.cc: Check that
	std::iostream_category() is defined and used for std::io_errc.

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-26  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/functional_hash.h (__is_fast_hash): Add doxygen
	comment.
	* include/bits/hashtable.h: Do not include <bits/stl_function.h>
	here.
	* include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
	<bits/functional_hash.h>.
	* include/bits/unordered_map.h: Include required headers.
	* include/bits/unordered_set.h: Likewise.
	* include/std/unordered_map: Do not include headers for indirect
	dependencies.
	* include/std/unordered_set: Likewise.

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

	* include/bits/ranges_algobase.h: Do not include
	<bits/stl_iterator_base_types.h>.
	* include/std/string: Likewise.
	* include/std/variant: Likewise.

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-05-26  François Dumont  <fdumont@gcc.gnu.org>

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

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

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

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

	* testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
	...here.
	* testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
	Moved to...
	* testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
	Moved to...
	* testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
	...here.
	* testsuite/21_strings/basic_string/operations/contains/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/operations/contains/char.cc:
	...here.
	* testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string/operations/data/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/operations/data/char.cc:
	...here.
	* testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/operations/ends_with/char.cc:
	...here.
	* testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/operations/starts_with/char.cc:
	...here.
	* testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string/operations/substr/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/operations/substr/char.cc:
	...here.
	* testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string/range_access/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/range_access/char.cc:
	...here.
	* testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/range_access/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
	...here.
	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
	...here.
	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
	...here.
	* testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/operations/contains/char.cc:
	...here.
	* testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/operations/data/char.cc:
	...here.
	* testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
	...here.
	* testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
	...here.
	* testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/operations/substr/char.cc:
	...here.
	* testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/range_access/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/range_access/char.cc:
	...here.
	* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
	...here.
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
	...here.
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
	...here.
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
	...here.
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
	...here.
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
	...here.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
	...here.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
	...here.
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
	...here.
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
	Moved to...
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
	...here.
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
	Moved to...
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
	...here.
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
	Moved to...
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
	...here.
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
	Moved to...
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
	...here.
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
	Moved to...
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
	...here.
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
	Moved to...
	* testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
	...here.

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

	* testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
	Moved to...
	* testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
	* testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
	Moved to...
	* testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
	* testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
	Moved to...
	* testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.

2022-05-25  Jason Merrill  <jason@redhat.com>

	* testsuite/20_util/function_objects/constexpr_searcher.cc: Add
	constexpr.

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-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/char_traits.h: Only include <cstdint> when
	necessary.
	* include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
	uintptr_t.
	* src/c++11/cow-stdexcept.cc: Include <stdint.h>.
	* src/c++17/floating_to_chars.cc: Likewise.
	* testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
	* testsuite/20_util/assume_aligned/3.cc: Likewise.
	* testsuite/20_util/shared_ptr/creation/array.cc: Likewise.

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-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/memory_resource.h: New file.
	* include/std/deque: Include <bits/memory_resource.h>.
	* include/std/forward_list: Likewise.
	* include/std/list: Likewise.
	* include/std/map: Likewise.
	* include/std/memory_resource (pmr::memory_resource): Move to
	new <bits/memory_resource.h> header.
	(pmr::polymorphic_allocator): Likewise.
	* include/std/regex: Likewise.
	* include/std/set: Likewise.
	* include/std/stacktrace: Likewise.
	* include/std/string: Likewise.
	* include/std/unordered_map: Likewise.
	* include/std/unordered_set: Likewise.
	* include/std/vector: Likewise.
	* testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
	Remove <memory_resource> header and check construction.
	* testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/forward_list/pmr_typedefs.cc:
	Likewise.
	* testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
	* testsuite/23_containers/unordered_map/pmr_typedefs.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/pmr_typedefs.cc:
	Likewise.
	* testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
	* testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.

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-17  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++17/memory_resource.cc (set_default_resource): Use
	memory_order_acq_rel.
	(get_default_resource): Use memory_order_acquire.

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

	* include/std/memory_resource (new_delete_resource): Add
	nodiscard, returns_nonnull and const attributes.
	(null_memory_resource): Likewise.
	(set_default_resource, get_default_resource): Add returns_nonnull
	attribute.
	(memory_resource::is_equal): Add nodiscard attribute.
	(operator==, operator!=): Likewise.

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

	* include/bits/ios_base.h (io_category): Add const and nodiscard
	attributes.
	(make_error_code, make_error_condition): Add nodiscard.
	* include/std/future (future_category): Add const and nodiscard.
	(make_error_code, make_error_condition): Add nodiscard.
	* include/std/system_error (generic_category system_category):
	Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
	(error_code::value, error_code::category, error_code::operator bool)
	(error_condition::value, error_condition::category)
	(error_condition::operator bool, make_error_code)
	(make_error_condition, operator==, operator!=, operator<=>): Add
	nodiscard.

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-17  Jonathan Wakely  <jwakely@redhat.com>

	* src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
	Do not build the compatibility*-c++0x.cc objects.
	* src/Makefile.in: Regenerate.
	* src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
	Refuse to build for the versioned namespace.
	* src/c++11/compatibility-chrono.cc: Likewise.
	* src/c++11/compatibility-condvar.cc: Likewise.
	* src/c++11/compatibility-thread-c++0x.cc: Likewise.
	* src/c++11/chrono.cc (system_clock, steady_clock):
	Use macros to define in inline namespace _V2, matching the
	declarations in <system_error>.
	* src/c++11/system_error.cc (system_category, generic_category):
	Likewise.

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>

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

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>

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

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

	* include/bits/std_thread.h (thread::_State, thread::_State_ptr):
	Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
	* src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.

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

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

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

	* doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
	with "__unspecified__".
	* libsupc++/exception_ptr.h: Improve doxygen docs.
	(__exception_ptr::swap): Also declare in namespace std.

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

	* libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
	if-constexpr instead of tag dispatching.
	(rethrow_if_nested) [C++17]: Likewise.
	(rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
	would require RTTI.
	* testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
	New test.

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

	* doc/doxygen/user.cfg.in (PREDEFINED): Define
	_GTHREAD_USE_MUTEX_TIMEDLOCK macro.
	* include/bits/std_mutex.h (mutex, lock_guard): Use @since and
	@headerfile.
	* include/bits/unique_lock.h (unique_lock): Likewise.
	* include/std/mutex (recursive_mutex, timed_mutex)
	(recursive_timed_mutex, scoped_lock): Likewise.

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

	* doc/doxygen/user.cfg.in (PREDEFINED): Define
	_GLIBCXX23_CONSTEXPR macro.
	* include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
	* include/bits/unique_ptr.h (default_delete): Use @since and
	@headerfile.
	* include/std/scoped_allocator: Remove @ingroup from @file
	block.

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

	* include/bits/std_thread.h (thread, thread::id): Improve
	doxygen docs.
	* include/std/future: Likewise.
	* include/std/thread (jthread): Likewise.

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

	* include/bits/ostream_insert.h: Mark helper functions as
	undocumented by Doxygen.
	* include/bits/stl_algo.h: Use markdown for formatting and mark
	helper functions as undocumented.
	* include/bits/stl_numeric.h:  Likewise.
	* include/bits/stl_pair.h (pair): Add @headerfile.

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

	* doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
	so that Doxygen shows the right base-class for std::allocator.
	* include/bits/alloc_traits.h: Improve doxygen docs.
	* include/bits/allocator.h: Likewise.
	* include/bits/new_allocator.h: Likewise.
	* include/ext/new_allocator.h: Likewise.

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

	* doc/doxygen/user.cfg.in (PREDEFINED): Define macro
	_GLIBCXX_DOXYGEN_ONLY to expand its argument.
	* include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
	* include/bits/regex.h: Improve doxygen docs.
	* include/bits/regex_constants.h: Likewise.
	* include/bits/regex_error.h: Likewise.

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

	* include/std/atomic: Suppress doxygen docs for
	implementation details.
	* include/bits/atomic_base.h: Likewise.
	* include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
	so that std::atomic is not added to the pointer abstractions
	group.

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

	* include/std/system_error: Improve doxygen comments.

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

	* include/bits/ptr_traits.h: Add some doxygen comments.

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

	* doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
	nothing.
	* include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
	(_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
	* include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
	for the namespace.
	* include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
	* include/bits/stl_algo.h (_V2::__rotate): Likewise.
	* include/std/condition_variable (_V2::condition_variable_any):
	Likewise.
	* include/std/system_error (_V2::error_category): Likewise.

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

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

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

	* doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
	(CLASS_DIAGRAMS): Remove obsolete option.

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

	* config/locale/dragonfly/numeric_members.cc: Remove whitespace.
	* config/locale/gnu/numeric_members.cc: Likewise.
	* include/bits/locale_facets_nonio.h: Likewise.
	* libsupc++/typeinfo: Likewise.

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>

	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-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/random.tcc (operator==): Only check
	normal_distribution::_M_saved_available once.
	* testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
	Check equality after state changes.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	lineno.

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  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-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>

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

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

	PR libstdc++/99871
	* include/bits/specfun.h: Use visibility attribute on namespace,
	instead of pragma push/pop.
	* libsupc++/compare: Likewise.
	* libsupc++/exception: Likewise.
	* libsupc++/exception.h: Likewise.
	* libsupc++/exception_ptr.h: Likewise.
	* libsupc++/initializer_list: Likewise.
	* libsupc++/nested_exception.h: Likewise.

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

	* doc/xml/manual/test.xml: Remove requirement for copyright and
	GPL notice in tests.
	* doc/html/manual/test.html: Regenerate.

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

	* include/experimental/memory_resource [!__cpp_rtti]
	(__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
	when RTTI is disabled.
	* testsuite/17_intro/freestanding.cc: Require RTTI.
	* testsuite/18_support/exception/38732.cc: Likewise.
	* testsuite/18_support/exception_ptr/rethrow_exception.cc:
	Likewise.
	* testsuite/18_support/nested_exception/68139.cc: Likewise.
	* testsuite/18_support/nested_exception/rethrow_if_nested.cc:
	Likewise.
	* testsuite/18_support/type_info/103240.cc: Likewise.
	* testsuite/18_support/type_info/fundamental.cc: Likewise.
	* testsuite/18_support/type_info/hash_code.cc: Likewise.
	* testsuite/20_util/any/assign/emplace.cc: Likewise.
	* testsuite/20_util/any/cons/in_place.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast.cc: Likewise.
	* testsuite/20_util/any/observers/type.cc: Likewise.
	* testsuite/20_util/function/1.cc: Likewise.
	* testsuite/20_util/function/2.cc: Likewise.
	* testsuite/20_util/function/3.cc: Likewise.
	* testsuite/20_util/function/4.cc: Likewise.
	* testsuite/20_util/function/5.cc: Likewise.
	* testsuite/20_util/function/6.cc: Likewise.
	* testsuite/20_util/function/7.cc: Likewise.
	* testsuite/20_util/function/8.cc: Likewise.
	* testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
	* testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
	* testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
	* testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
	* testsuite/20_util/typeindex/comparison_operators_c++20.cc:
	Likewise.
	* testsuite/20_util/typeindex/hash.cc: Likewise.
	* testsuite/20_util/typeindex/hash_code.cc: Likewise.
	* testsuite/20_util/typeindex/name.cc: Likewise.
	* testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
	* testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
	Likewise.
	* testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
	Likewise.
	* testsuite/22_locale/locale/13630.cc: Check type without using
	RTTI.
	* testsuite/23_containers/array/requirements/non_default_constructible.cc:
	Require RTTI.
	* testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
	* testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
	* testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
	* testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
	* testsuite/experimental/any/misc/any_cast.cc: Likewise.
	* testsuite/experimental/any/observers/type.cc: Likewise.
	* testsuite/experimental/memory_resource/resource_adaptor.cc:
	Likewise.
	* testsuite/lib/libstdc++.exp (check_effective_target_rtti):
	Define new proc.
	* testsuite/tr1/3_function_objects/function/1.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/2.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/3.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/4.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/5.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/6.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/7.cc: Likewise.
	* testsuite/tr1/3_function_objects/function/8.cc: Likewise.
	* testsuite/tr2/bases/value.cc: Likewise.
	* testsuite/tr2/direct_bases/value.cc: Likewise.
	* testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
	types without RTTI.

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

	PR libstdc++/104719
	* include/std/array (array::size(), array::max_size())
	(array::empty(), array::data()): Add  always_inline attribute.

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

	PR libstdc++/104719
	* include/std/array (__array_traits::_S_ref): Remove.
	(__array_traits::_S_ptr): Remove.
	(__array_traits<T, 0>::_Type): Define operator[] and operator T*
	to provide an array-like API.
	(array::_AT_Type): Remove public typeef.
	(array::operator[], array::at, array::front, array::back): Use
	index operator to access _M_elems instead of _S_ref.
	(array::data): Use implicit conversion from _M_elems to pointer.
	(swap(array&, array&)): Use __enable_if_t helper.
	(get<I>): Use index operator to access _M_elems.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc:
	Adjust dg-error line numbers.

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-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-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>

	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>

	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.
