2023-06-23  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	2023-06-01  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/evolution.xml: Document removal of implicit
	allocator rebinding extensions in strict mode and for C++20.
	* doc/html/*: Regenerate.

2023-06-21  Jason Merrill  <jason@redhat.com>

	PR tree-optimization/105651
	* include/bits/basic_string.tcc (_M_replace): Add an assert
	to avoid -Wrestrict false positive.

2023-05-30  Alexandre Oliva  <oliva@adacore.com>

	Backported from master:
	2023-05-30  Alexandre Oliva  <oliva@adacore.com>

	* testsuite/20_util/from_chars/4.cc: Skip long double test06
	on x86_64-vxworks.
	* testsuite/20_util/to_chars/long_double.cc: Xfail run on
	x86_64-vxworks.

2023-05-30  Alexandre Oliva  <oliva@adacore.com>

	Backported from master:
	2023-05-25  Alexandre Oliva  <oliva@adacore.com>

	* testsuite/20_util/to_chars/long_double.cc: Expect execution
	fail on x86-vxworks.

2023-05-30  Alexandre Oliva  <oliva@adacore.com>

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

	* testsuite/20_util/from_chars/4.cc: Skip long double test06
	on aarch64-vxworks.
	* testsuite/20_util/to_chars/long_double.cc: Xfail run on
	aarch64-vxworks.

2023-05-30  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-05-30  Matthias Kretz  <m.kretz@gsi.de>

	PR libstdc++/109822
	* include/experimental/bits/simd.h (to_native): Use int NTTP
	as specified in PTS2.
	(to_compatible): Likewise. Add missing tag to call mask
	generator ctor.
	* testsuite/experimental/simd/pr109822_cast_functions.cc: New
	test.

2023-05-30  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-05-30  Matthias Kretz  <m.kretz@gsi.de>

	* testsuite/experimental/simd/tests/integer_operators.cc:
	Compute expected value differently to avoid getting turned into
	a vector shift.

2023-05-30  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-05-30  Matthias Kretz  <m.kretz@gsi.de>

	* testsuite/experimental/simd/tests/operator_cvt.cc: Make long
	double <-> (u)long conversion tests conditional on sizeof(long
	double) and sizeof(long).

2023-05-30  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-05-26  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
	Negative __y is UB, so prefer signed compare.

2023-05-24  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-05-24  Matthias Kretz  <m.kretz@gsi.de>

	PR libstdc++/109949
	* include/experimental/bits/simd.h (__intrinsic_type): If
	__ALTIVEC__ is defined, map gnu::vector_size types to their
	corresponding __vector T types without losing unsignedness of
	integer types. Also prefer long long over long.
	* include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
	object to the expected unsigned vector type.

2023-05-24  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-05-24  Matthias Kretz  <m.kretz@gsi.de>

	PR libstdc++/109261
	* include/experimental/bits/simd.h (__intrinsic_type):
	Specialize __intrinsic_type<double, 8> and
	__intrinsic_type<double, 16> in any case, but provide the member
	type only with __aarch64__.

2023-05-24  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-05-24  Matthias Kretz  <m.kretz@gsi.de>

	PR libstdc++/109261
	* include/experimental/bits/simd_neon.h (_S_reduce): Add
	constexpr and make NEON implementation conditional on
	not __builtin_is_constant_evaluated.

2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	PR libstdc++/109261
	* include/experimental/bits/simd.h (_SimdWrapper::_M_set):
	Avoid vector builtin subscripting in constant expressions.
	(resizing_simd_cast): Avoid memcpy if constant_evaluated.
	(const_where_expression, where_expression, where)
	(__extract_part, simd_mask, _SimdIntOperators, simd): Add either
	_GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
	internal APIs).
	* include/experimental/bits/simd_builtin.h (__vector_permute)
	(__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
	(_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
	(_MaskImplBuiltin::_S_store): Add constexpr.
	(_CommonImplBuiltin::_S_store_bool_array)
	(_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
	(_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
	constant_evaluated case.
	* include/experimental/bits/simd_fixed_size.h
	(_S_masked_load): Reword comment.
	(__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
	(_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
	(__make_simd_tuple, __optimize_simd_tuple, __extract_part)
	(__autocvt_to_simd, _Fixed::__traits::_SimdBase)
	(_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
	constexpr.
	(_SimdTuple::operator[], _M_set): Add constexpr and add
	constant_evaluated case.
	(_MaskImplFixedSize::_S_load): Add constant_evaluated case.
	* include/experimental/bits/simd_scalar.h: Add constexpr.
	* include/experimental/bits/simd_x86.h (_CommonImplX86): Add
	constexpr and add constant_evaluated case.
	(_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
	(_S_less_equal): Value-initialize to satisfy constexpr
	evaluation.
	(_MaskImplX86::_S_load): Add constant_evaluated case.
	(_MaskImplX86::_S_store): Add constexpr and constant_evaluated
	case. Value-initialize local variables.
	(_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
	(_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
	case.
	* testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
	test.

2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-05-22  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
	__infn into #ifdef'ed block.
	* testsuite/experimental/simd/tests/fpclassify.cc: Declare
	constants only when used.
	* testsuite/experimental/simd/tests/frexp.cc: Likewise.
	* testsuite/experimental/simd/tests/logarithm.cc: Likewise.
	* testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
	Likewise.
	* testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
	Move totest and expect1 into #ifdef'ed block.

2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-03-28  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd.h (is_simd_flag_type): New.
	(_IsSimdFlagType): New.
	(copy_from, copy_to, load ctors): Constrain _Flags using
	_IsSimdFlagType.

2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-03-28  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_x86.h (_SimdImplX86): Use
	_Base::_S_divides if the optimized _S_divides function is hidden
	via the preprocessor.

2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_detail.h: Don't declare the
	simd API as constexpr with Clang.
	* include/experimental/bits/simd_x86.h (__movm): New.
	(_S_blend_avx512): Resolve FIXME. Implement blend using __movm
	and ?:.
	(_SimdImplX86::_S_masked_unary): Clang does not implement the
	same builtins. Implement the function using __movm, ?:, and -
	operators on vector_size types instead.

2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-24  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd.h: Line breaks and indenting
	fixed to follow the libstdc++ standard.
	* include/experimental/bits/simd_builtin.h: Likewise.
	* include/experimental/bits/simd_fixed_size.h: Likewise.
	* include/experimental/bits/simd_neon.h: Likewise.
	* include/experimental/bits/simd_ppc.h: Likewise.
	* include/experimental/bits/simd_scalar.h: Likewise.
	* include/experimental/bits/simd_x86.h: Likewise.

2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-24  Matthias Kretz  <m.kretz@gsi.de>

	PR libstdc++/108030
	* include/experimental/bits/simd_fixed_size.h
	(_SimdImplFixedSize::_S_broadcast): Replace inline with
	_GLIBCXX_SIMD_INTRINSIC.
	(_SimdImplFixedSize::_S_generate): Likewise.
	(_SimdImplFixedSize::_S_load): Likewise.
	(_SimdImplFixedSize::_S_masked_load): Likewise.
	(_SimdImplFixedSize::_S_store): Likewise.
	(_SimdImplFixedSize::_S_masked_store): Likewise.
	(_SimdImplFixedSize::_S_min): Likewise.
	(_SimdImplFixedSize::_S_max): Likewise.
	(_SimdImplFixedSize::_S_complement): Likewise.
	(_SimdImplFixedSize::_S_unary_minus): Likewise.
	(_SimdImplFixedSize::_S_plus): Likewise.
	(_SimdImplFixedSize::_S_minus): Likewise.
	(_SimdImplFixedSize::_S_multiplies): Likewise.
	(_SimdImplFixedSize::_S_divides): Likewise.
	(_SimdImplFixedSize::_S_modulus): Likewise.
	(_SimdImplFixedSize::_S_bit_and): Likewise.
	(_SimdImplFixedSize::_S_bit_or): Likewise.
	(_SimdImplFixedSize::_S_bit_xor): Likewise.
	(_SimdImplFixedSize::_S_bit_shift_left): Likewise.
	(_SimdImplFixedSize::_S_bit_shift_right): Likewise.
	(_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
	explicit about not always-inline, yet).
	(_SimdImplFixedSize::_S_isinf): Likewise.
	(_SimdImplFixedSize::_S_isfinite): Likewise.
	(_SimdImplFixedSize::_S_isnan): Likewise.
	(_SimdImplFixedSize::_S_isnormal): Likewise.
	(_SimdImplFixedSize::_S_signbit): Likewise.

2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-24  Matthias Kretz  <m.kretz@gsi.de>

	PR libstdc++/108856
	* include/experimental/bits/simd_builtin.h
	(_SimdImplBuiltin::_S_masked_unary): More efficient
	implementation of masked inc-/decrement for integers and floats
	without AVX2.
	* include/experimental/bits/simd_x86.h
	(_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
	builtins for masked inc-/decrement.

2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>

	* testsuite/experimental/simd/tests/reductions.cc: Introduce
	max_distance as the type-dependent max error.

2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>

	PR libstdc++/108030
	* include/experimental/bits/simd_detail.h
	(_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
	__clang__.

2023-05-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>

	PR libstdc++/108030
	* include/experimental/bits/simd_detail.h: Define
	_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
	* include/experimental/bits/simd.h: Annotate lambdas with
	_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
	* include/experimental/bits/simd_builtin.h: Ditto.
	* include/experimental/bits/simd_converter.h: Ditto.
	* include/experimental/bits/simd_fixed_size.h: Ditto.
	* include/experimental/bits/simd_math.h: Ditto.
	* include/experimental/bits/simd_neon.h: Ditto.
	* include/experimental/bits/simd_x86.h: Ditto.

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

	Backported from master:
	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.

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

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

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

2023-05-08  Release Manager

	* GCC 12.3.0 released.

2023-05-03  Kefu Chai  <kefu.chai@scylladb.com>

	Backported from master:
	2023-05-03  Kefu Chai  <kefu.chai@scylladb.com>
		    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/109703
	* include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
	Initialize _M_string_length.

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

	Backported from master:
	2023-04-28  Jonathan Wakely  <jwakely@redhat.com>

	* doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
	from header paths.

2023-04-29  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2023-04-12  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
	Propagate _M_trailing_empty in the const-converting constructor
	as per LWG 3904.
	* testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.

2023-04-29  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2023-03-14  Patrick Palka  <ppalka@redhat.com>

	* include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
	Define.
	(__cpp_lib_move_iterator_concept): Define for C++20.
	(move_iterator::iterator_concept): Strengthen as per P2520R0.
	* include/std/version (__cpp_lib_move_iterator_concept): Define
	for C++20.
	* testsuite/24_iterators/move_iterator/p2520r0.cc: New test.

2023-04-29  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2023-03-09  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/108362
	* include/std/ranges (__detail::__can_single_view): New concept.
	(_Single::operator()): Constrain it.  Move [[nodiscard]] to the
	end of the function declarator.
	(__detail::__can_iota_view): New concept.
	(_Iota::operator()): Constrain it.  Move [[nodiscard]] to the
	end of the function declarator.
	(__detail::__can_istream_view): New concept.
	(_Istream::operator()): Constrain it.  Move [[nodiscard]] to the
	end of the function declarator.
	* testsuite/std/ranges/iota/lwg3292_neg.cc: Prune "in
	requirements" diagnostic.
	* testsuite/std/ranges/iota/iota_view.cc (test07): New test.
	* testsuite/std/ranges/istream_view.cc (test08): New test.
	* testsuite/std/ranges/single_view.cc (test07): New test.

2023-04-28  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2023-04-24  Patrick Palka  <ppalka@redhat.com>

	* include/bits/max_size_type.h (__max_diff_type::operator>>=):
	Fix propagation of sign bit.
	* testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
	non-standard 'signed typedef-name'.  Add some compile-time tests
	for right-shifting a negative __max_diff_type value by more than
	one.

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

	* include/std/atomic: Add missing @endcond doxygen comment.

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

	Backported from master:
	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.

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

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

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

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

	Backported from master:
	2023-02-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/108952
	* include/bits/uses_allocator_args.h
	(uses_allocator_construction_args): Implement LWG 3527.
	* testsuite/20_util/pair/astuple/get-2.cc: New test.
	* testsuite/20_util/scoped_allocator/108952.cc: New test.
	* testsuite/20_util/uses_allocator/lwg3527.cc: New test.

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

	Backported from master:
	2023-03-31  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/109339
	* include/std/stop_token (_Stop_state_ptr(const stop_source&)):
	Add attribute access with access-mode 'none'.
	* testsuite/30_threads/stop_token/stop_source/109339.cc: New test.

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

	Backported from master:
	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.

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

	Backported from master:
	2023-04-27  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/mofunc_impl.h: Fix typo in doxygen comment.

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

	Backported from master:
	2023-04-27  Jonathan Wakely  <jwakely@redhat.com>

	* doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
	HTML docs.
	* include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
	from doxygen docs.
	* include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
	Likewise.
	* include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
	Likewise.
	* include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
	Likewise.
	* include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
	(_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
	(_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
	(_DEFINE_BINARY_OPERATOR): Likewise.

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

	PR libstdc++/103755
	* include/bits/locale_classes.tcc (try_facet, use_facet): Do not
	check array index or dynamic type when accessing required
	specializations of std::ctype, std::num_get, or std::num_put.
	* testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust
	expected errors.

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

	Backported from master:
	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.

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

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

	* doc/xml/manual/extensions.xml: Remove std::bad_exception from
	example program.
	* doc/html/manual/ext_demangling.html: Regenerate.

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

	Backported from master:
	2023-04-05  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex.h (sub_match::swap): New function.
	* testsuite/28_regex/sub_match/lwg3204.cc: New test.

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

	Backported from master:
	2023-03-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/103387
	* include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
	std::use_facet instead of cached _M_num_get facet.
	(istream::operator>>(short&)): Likewise.
	(istream::operator>>(int&)): Likewise.
	* include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
	std::use_facet instead of cached _M_num_put facet.

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

	Backported from master:
	2023-01-15  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
	dg-options.

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

	Backported from master:
	2023-03-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
	Add overload, as per LWG 3893.
	* testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
	Check assignment from nullptr.

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

	Backported from master:
	2023-03-29  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/expected (expected::value() &): Use const lvalue
	for unex member passed to bad_expected_access constructor, as
	per LWG 3843.

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

	Backported from master:
	2023-02-02  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/variant (variant::operator=): Implement resolution
	of LWG 3585.
	* testsuite/20_util/variant/lwg3585.cc: New test.

2023-04-12  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2023-04-12  Patrick Palka  <ppalka@redhat.com>

	* src/c++17/floating_from_chars.cc: Include <algorithm>,
	<iterator>, <limits> and <cstdint>.

2023-03-30  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	2023-03-29  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/109242
	* include/std/optional (transform): Use std::remove_cv_t.
	* testsuite/20_util/optional/monadic/pr109242.cc: New test.

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

	Backported from master:
	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.

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

	Backported from master:
	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.

2023-03-28  Björn Schäpers  <bjoern@hazardy.de>

	Backported from master:
	2023-01-14  Björn Schäpers  <bjoern@hazardy.de>

	* include/std/stacktrace (stacktrace_entry::_S_demangle): Use
	raw __name if __cxa_demangle could not demangle it.

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

	Backported from master:
	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:

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

	Backported from master:
	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.

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

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

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

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

	Backported from master:
	2023-01-26  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/108554
	* include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
	nonnull attribute.
	(_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
	attributes.
	* testsuite/23_containers/map/modifiers/108554.cc: New test.

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

	Backported from master:
	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.

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

	Backported from master:
	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.

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

	Backported from master:
	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.

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

	Backported from master:
	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.

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

	Backported from master:
	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.

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

	Backported from master:
	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.

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

	Backported from master:
	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.

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

	Backported from master:
	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.

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

	Backported from master:
	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.

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

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

	* include/std/system_error: Improve doxygen comments.

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

	Backported from master:
	2023-02-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/ext/throw_allocator.h: Use reserved names for
	parameters.

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

	Backported from master:
	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.

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

	Backported from master:
	2023-01-12  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/abi.xml: Add latest library versions.
	* doc/html/manual/abi.html: Regenerate.

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

	Backported from master:
	2023-03-28  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/char_traits.h (char_traits::copy): Return without
	using memcpy if n==0.
	(char_traits::assign): Likewise for memset.

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

	Backported from master:
	2023-03-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/109299
	* include/bits/basic_string.h (basic_string::_M_is_local()): Add
	hint for compiler that local strings fit in the local buffer.

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

	Backported from master:
	2023-03-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/cow_string.h: Fix typo in comment.

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

	Backported from master:
	2023-02-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/optional: Fix header name in comment.

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

	Backported from master:
	2023-01-16  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/108413
	* include/c_compatibility/stdatomic.h: Change copyright line to
	be consistent with other headers contributed under DCO terms.
	* include/std/expected: Add full stop to copyright line.

2023-03-21  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_x86.h
	(_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
	with __RECIPROCAL_MATH__.

2023-03-21  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_detail.h: Don't define
	_GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
	* include/experimental/bits/simd_x86.h (_S_divides): Remove
	check for __clang__.

2023-03-21  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-03-21  Matthias Kretz  <m.kretz@gsi.de>

	* testsuite/experimental/simd/tests/operators.cc: Clang doesn't
	define __GCC_IEC_559. Use __STDC_IEC_559__ instead.

2023-03-20  François Dumont  <fdumont@gcc.gnu.org>

	Backported from master:
	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.

2023-03-20  François Dumont  <fdumont@gcc.gnu.org>

	Backported from master:
	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.

2023-03-20  François Dumont  <fdumont@gcc.gnu.org>

	Backported from master:
	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.

2023-03-20  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	2023-03-10  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/109064
	* python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
	Remove self-recursion in __init__. Add missing _supports.
	* testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
	and unique().

2023-03-20  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/109182
	* include/std/expected (expected<void>::expected(in_place_t)):
	Remove template-head.

2023-03-20  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/109165
	* include/std/coroutine (hash<>::operator()): Add const.
	* testsuite/18_support/coroutines/hash.cc: New test.

2023-03-10  Thomas W Rodgers  <rodgert@twrodgers.com>

	Backported from master:
	2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>

	PR libstdc++/103934
	* include/std/atomic (atomic_flag_wait): Add.
	(atomic_flag_wait_explicit): Add.
	(atomic_flag_notify): Add.
	(atomic_flag_notify_explicit): Add.
	* testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
	Add test case to cover missing atomic_flag free functions.

2023-02-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>

	PR libstdc++/108030
	* include/experimental/bits/simd.h (__vector_broadcast):
	Implement via __vector_broadcast_impl instead of
	__call_with_n_evaluations + 2 lambdas.
	(__vector_broadcast_impl): New.

2023-02-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_builtin.h (_S_set): Compare as
	int. The actual range of these indexes is very small.

2023-02-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-23  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_x86.h (_S_bit_shift_left)
	(_S_bit_shift_right): Declare constexpr. The implementation was
	already expecting constexpr evaluation.

2023-02-23  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-20  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd.h (__extract_part, split):
	Use reserved name for template parameter.

2023-02-21  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	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.

2023-02-21  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	2023-02-02  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/108636
	* include/bits/fs_path.h (path::path(string_view, _Type))
	(path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
	definitions to ...
	* src/c++17/fs_path.cc: ... here.
	* testsuite/27_io/filesystem/path/108636.cc: New test.

2023-02-16  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_math.h (__hypot): Bitcasting
	between scalars requires the __bit_cast helper function instead
	of simd_bit_cast.

2023-02-16  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd_x86.h
	(_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
	(_SimdImplX86::_S_less_equal): Do not call
	__builtin_is_constant_evaluated in constexpr-if.

2023-02-16  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>

	* testsuite/experimental/simd/tests/bits/verify.h
	(verify::verify): Use %zx for size_t in format string.

2023-02-16  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>

	* testsuite/experimental/simd/README.md: Document the timeout
	and timeout-factor directives. Minor typo fixed.

2023-02-16  Matthias Kretz  <m.kretz@gsi.de>

	Backported from master:
	2023-02-16  Matthias Kretz  <m.kretz@gsi.de>

	* include/experimental/bits/simd.h
	(_SimdWrapper::_M_is_constprop_none_of)
	(_SimdWrapper::_M_is_constprop_all_of): Return false unless the
	computed result still satisfies __builtin_constant_p.

2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>

	Backported from master:
	2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>

	PR libstdc++/103934
	* include/std/atomic (atomic_flag_test): Add.
	(atomic_flag_test_explicit): Add.
	* testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
	test case to cover missing atomic_flag free functions.
	* testsuite/29_atomics/atomic_flag/test/implicit.cc:
	Likewise.

2023-02-10  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2022-11-24  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/107468
	* src/c++17/fast_float/fast_float.h: Partial merge from fast_float
	2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit.

2023-02-10  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2022-11-07  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/107468
	* src/c++17/fast_float/fast_float.h: Partial merge from fast_float
	662497742fea7055f0e0ee27e5a7ddc382c2c38e commit.
	* testsuite/20_util/from_chars/pr107468.cc: New test.

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

	Backported from master:
	2023-02-01  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/random.cc (random_device::_M_fini): Do not try to
	close the file handle if the target doesn't support the
	/dev/random and /dev/urandom files.

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

	Backported from master:
	2023-02-01  Jonathan Wakely  <jwakely@redhat.com>

	* config/os/generic/error_constants.h (errc::value_too_large)
	[__AVR__]: Define.
	* src/c++11/system_error.cc
	(system_category::default_error_condition) [__AVR__]: Only match
	recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
	* src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
	for ENOENT etc. in switch.
	(fs::remove_all) [__AVR__]: Likewise.
	* src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
	close etc.

2023-02-02  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	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.

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

	Backported from master:
	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.

2023-01-16  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	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.

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

	Backported from master:
	2023-01-05  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/108265
	* include/std/chrono (hh_mm_ss): Do not use chrono::abs if
	duration rep is unsigned. Remove incorrect noexcept-specifier.
	* testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep. Check
	floating-point representations. Check default construction.

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

	Backported from master:
	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-12-21  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	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-14  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	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-11-24  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	2022-09-15  Jonathan Wakely  <jwakely@redhat.com>

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

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

	Backported from master:
	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-24  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	2022-11-02  Jonathan Wakely  <jwakely@redhat.com>

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

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

	Backported from master:
	2022-11-21  Jonathan Wakely  <jwakely@redhat.com>

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

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

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

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

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

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

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

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

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

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

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

	Backported from master:
	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-11-24  Jonathan Wakely  <jwakely@redhat.com>

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

	PR libstdc++/91456
	* include/std/type_traits (__is_nothrow_invocable): 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 trait.

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

	PR libstdc++/106201
	* include/bits/fs_path.h (filesystem::swap(path&, path&)):
	Replace with abbreviated function template.
	* include/experimental/bits/fs_path.h (filesystem::swap):
	Likewise.
	* testsuite/27_io/filesystem/iterators/106201.cc: New test.
	* testsuite/experimental/filesystem/iterators/106201.cc: New test.

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

	Backported from master:
	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-14  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-11-14  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	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-14  Nathaniel Shead  <nathanieloshead@gmail.com>

	Backported from master:
	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-08  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	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-10-19  Alexandre Oliva  <oliva@adacore.com>

	Backported from master:
	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-09-29  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	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-16  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 version.
	* doc/html/manual/abi.html: Regenerate.

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

	Backported from master:
	2022-09-12  Patrick Palka  <ppalka@redhat.com>

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

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

	Backported from master:
	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-09-07  Jonathan Wakely  <jwakely@redhat.com>

	Backported from master:
	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-24  Jonathan Wakely  <jwakely@redhat.com>

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

	Backported from master:
	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-19  Release Manager

	* GCC 12.2.0 released.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2022-05-06  Release Manager

	* GCC 12.1.0 released.

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

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

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

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

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

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

2022-04-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
	* config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
	Likewise.
	* config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
	* config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
	Likewise.

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

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

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

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

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

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

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

	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
	* config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
	* config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Copyright (C) 2022 Free Software Foundation, Inc.

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