2025-12-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure: Regenerate.

2025-12-22  Tomasz Kamiński  <tkaminsk@redhat.com>

	* doc/html/manual/using_macros.html: Regenerate.
	* doc/xml/manual/using.xml: Add entries for
	_GLIBCXX_USE_OLD_GENERATE_CANONICAL and
	_GLIBCXX_USE_VARIANT_CXX17_OLD_ABI.

2025-12-19  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/112591
	* include/std/variant (_Uninitialized::_M_get, __get_n)
	(_Uninitialized<_Type, false>): Add _GLIBCXX_USE_VARIANT_CXX17_OLD_ABI
	check to preprocessor guard.
	* testsuite/20_util/variant/112591.cc: Updated tests.
	* testsuite/20_util/variant/112591_compat.cc: New test.
	* testsuite/20_util/variant/constinit.cc: New test.
	* testsuite/20_util/variant/constinit_compat.cc: New test.

2025-12-19  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon_eng.cc:
	Test __float128 when available.

2025-12-19  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/random.h (__rand_uint128::operator>)
	(__rand_uint128::operator>=): Define.
	* include/bits/random.tcc (__generate_canonical_pow2):
	Adjust for use of __rand_uint128 in C++11.
	(__gen_can_pow, __gen_can_rng_calls_needed): Replace with
	__gen_canon_log.
	(__gen_canon_log_res, __gen_canon_log): Define.
	(__generate_canonical_any): Reworked how _UInt is determined.
	* testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon_eng.cc:
	New test.

2025-12-19  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/123147
	* include/bits/chrono_io.h (_Parser::operator()) <%S>: Use a
	buffer of narrow characters to be parsed by std::from_chars.
	* testsuite/std/time/parse/parse.cc: Check wchar_t parsing.

2025-12-19  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/debug/helper_functions.h (__gnu_debug::__can_advance):
	Declare as _GLIBCXX20_CONSTEXPR.
	* include/debug/safe_iterator.h (__gnu_debug::__can_advance):
	Define as _GLIBCXX20_CONSTEXPR, and return true for constexpr
	evaluation.
	(__gnu_debug::__base): Define as _GLIBCXX20_CONSTEXPR.

2025-12-19  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/mutex.cc [_GLIBCXX_NO_EXTERN_THREAD_LOCAL]
	(__get_once_call): Use std::add_lvalue_reference.

2025-12-18  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/chrono_io.h (__formatter_chrono::_M_write): Add
	maybe_unused attribute to avoid -Wunused-parameter warning.
	* src/c++20/tzdb.cc (detect_windows_zone): Decay array to
	pointer to avoid -Warray-compare warning.

2025-12-18  LIU Hao  <lh_mouse@126.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* config/os/mingw32-w64/os_defines.h (_GLIBCXX_NO_EXTERN_THREAD_LOCAL):
	New macro.
	* include/std/mutex [_GLIBCXX_NO_EXTERN_THREAD_LOCAL]
	(__get_once_callable, __get_once_call): Declare new functions.
	* src/c++11/mutex.cc [_GLIBCXX_NO_EXTERN_THREAD_LOCAL]
	(__get_once_callable, __get_once_call): Define.

2025-12-18  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/123180
	* include/bits/ranges_algo.h (__stable_sort_fn::operator()): Fix
	sense of null check. Replace typedef with alias-declaration.
	* testsuite/25_algorithms/stable_sort/123180.cc: New test.

2025-12-18  Jonathan Wakely  <jwakely@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* include/bits/random.tcc (__generate_canonical_pow2): Adjust
	comments. Remove _UInt template parameter and define it in the
	body using _Select_uint_least_t<__d>. Remove popcount call for
	getting the width of the _UInt type. Cast floating-point
	literal to _RealT.
	(__generate_canonical_any): Remove _UInt template parameter and
	define it in the body using _Select_uint_least_t<__d * 2>. Use
	direct-initialization for _UInt variables. Cast floating-point
	literal to _RealT.
	(generate_canonical): Remove unused typedef. Remove constexpr-if
	branches and remove unsigned type from template argument lists.

2025-12-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/version.def (constexpr_exceptions): Add
	cxx11abi=yes.
	* include/bits/version.h: Regenerate.
	* testsuite/18_support/exception/version.cc: Require effectiove
	target cxx11_abi.
	* testsuite/18_support/exception_ptr/exception_ptr_cast.cc: Only
	check for constexpr support in cxx11 ABI.
	* testsuite/19_diagnostics/headers/stdexcept/version.cc: Require
	effective target cxx11_abi.
	* testsuite/19_diagnostics/logic_error/constexpr.cc: Likewise.
	* testsuite/19_diagnostics/runtime_error/constexpr.cc: Likewise.
	* testsuite/20_util/expected/version.cc: Only check for
	__cpp_lib_constexpr_exceptions macro for cxx11 ABI.
	* testsuite/20_util/optional/version.cc: Likewise.
	* testsuite/20_util/variant/version.cc: Likewise.

2025-12-17  Jonathan Wakely  <jwakely@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* include/bits/random.h [!__SIZEOF_INT128__] (__rand_uint128):
	Refactor and rename _Select_uint_least_t<128>::type to a new
	class. Make all members constexpr. Add new member functions for
	additional arithmetic and bitwise operations, and comparisons.
	(__detail::_Select_uint_least_t<>::type): Define as an alias of
	__rand_uint128.
	* include/bits/random.tcc (philox_engine::_M_mulhi): Use
	_Select_uint_least_t<w*2>::type instead of __uint128_t.
	(philox_engine::_M_transition): Likewise.
	* include/bits/version.def (philox_engine): Remove extra_cond.
	* include/bits/version.h: Regenerate.
	* testsuite/26_numerics/random/philox4x32.cc: Remove
	dg-require-cpp-feature-test directive.
	* testsuite/26_numerics/random/philox4x64.cc: Likewise.
	* testsuite/26_numerics/random/philox_engine/cons/copy.cc:
	Likewise.
	* testsuite/26_numerics/random/philox_engine/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/philox_engine/cons/seed.cc:
	Likewise.
	* testsuite/26_numerics/random/philox_engine/operators/equal.cc:
	Likewise.
	* testsuite/26_numerics/random/philox_engine/operators/serialize.cc:
	Likewise.
	* testsuite/26_numerics/random/philox_engine/requirements/constants.cc:
	Likewise.
	* testsuite/26_numerics/random/philox_engine/requirements/typedefs.cc:
	Likewise.

2025-12-17  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/26_numerics/random/uniform_real_distribution/operators/64351.cc:
	Add -fexcess-precision=standard to options.
	* testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc:
	Likewise.

2025-12-17  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/26_numerics/random/uniform_real_distribution/operators/64351.cc
	[_GLIBCXX_USE_OLD_GENERATE_CANONICAL]: Restore test01. Do not discard an
	extra value in test02.
	* testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc:
	Skip if _GLIBCXX_USE_OLD_GENERATE_CANONICAL is defined in options.

2025-12-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/random.h [!_GLIBCXX_USE_OLD_GENERATE_CANONICAL]
	(generate_canonical): Use inline namespace _V2.
	* include/bits/random.tcc [!_GLIBCXX_USE_OLD_GENERATE_CANONICAL]
	(generate_canonical): Likewise.
	* testsuite/26_numerics/random/pr60037-neg.cc: Remove lineno so
	that one dg-error matches both diagnostics.

2025-12-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/random.tcc [_GLIBCXX_USE_OLD_GENERATE_CANONICAL]
	(generate_canonical): Restore braces around statement.

2025-12-17  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/random.tcc (generate_canonical)
	[!_GLIBCXX_USE_OLD_GENERATE_CANONICAL]: Use static_assert
	instead of type-constraint on template parameter.
	* testsuite/26_numerics/random/pr60037-neg.cc: Updated line
	of error.

2025-12-17  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/random.tcc (generate_canonical): Update
	error message to match pre-existing one in random.h.
	* testsuite/26_numerics/random/pr60037-neg.cc: Updated
	line for error message.

2025-12-17  Jakub Jelinek  <jakub@redhat.com>

	* include/bits/random.tcc (std::generate_canonical): Use
	__extension__ before __generate_canonical_{pow2,any} calls with
	unsigned __int128 template arguments.

2025-12-17  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/atomic_base.h
	(__atomic_ref_base<const _Tp>::__atomic_ref_base): Accept
	pointer instead of reference. Remove precondition check and
	mark as noexcept.
	(__atomic_ref_base<_Tp>::__atomic_ref_base): Accept pointer
	insted of reference, and mark as noexcept.
	* include/std/atomic (atomic_ref::atomic_ref(_Tp&)): Add
	precondition check and take address of argument.
	(atomic_ref::atomic_ref(_Tp&&)): Define as deleted.
	(atomic_ref::atomic_ref(atomic_ref<_Up>)): Define.
	* include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
	Pass address to __atomic_ref constructor.
	* include/std/barrier (__tree_barrier_base::_M_arrive)
	(__tree_barrier::arrive): Pass address to __atomic_ref constructor.
	* testsuite/29_atomics/atomic_ref/ctor.cc: New test.

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

	* include/std/type_traits (_Integer_kind): New enum type.
	(__is_integral_helper::_S_kind): New static data member in
	primary template and each explicit specialization.
	(__is_signed_integer, __is_unsigned_integer): Use _S_kind
	instead of O(n) disjunction with is_same.

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

	PR libstdc++/122907
	* include/bits/cpp_type_traits.h (__memcpyable_integer<bool>):
	Define as false.
	* testsuite/25_algorithms/copy/122907.cc: New test.

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

	* testsuite/lib/libstdc++.exp (dg-v3-runtest) Set default_std to
	20.

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

	* include/std/chrono (chrono::__detail::__get_leap_second_info):
	Update expiry date for leap seconds list.
	* src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds):
	Likewise.
	* src/c++20/tzdata.zi: Import new file from 2025c release.

2025-12-16  Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/119739
	* include/bits/random.tcc: Add generate_canonical impl for C++26.
	* testsuite/26_numerics/random/uniform_real_distribution/operators/64351.cc:
	Adapt test for both pre- and post- C++26.
	* testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc:
	Test for float and double from 32-bit RNG, including 1.0 do-over.

2025-12-16  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/113299
	* include/bits/deque.tcc (__copy_move_a1): Constrain with
	__is_any_random_access_iter instead of __is_random_access_iter.
	(__copy_move_backward_a1): Likewise.
	(__equal_aux1): Likewise.
	* include/bits/stl_algo.h (__search_n): Use
	__iter_concept_or_category instead of __iterator_category
	or iterator_traits::iterator_category.
	(find_end): Likewise.
	(__is_permutation): Likewise.
	(for_each_n): Likewise.
	(unique_copy): Likewise, for constant iterators.
	(sample): Likewise, for constant iterators.
	* include/bits/stl_algobase.h (__copy_move_a1): Adjust
	deque-based forward declaration accordingly.
	(__copy_move_backward_a1): Likewise.
	(__equal_aux1): Likewise.
	(__lexicographical_compare_impl): Use
	__iter_concept_or_category instead of __iterator_category or
	iterator_traits::iterator_category.
	(__equal4): Likewise.
	* include/bits/stl_iterator_base_funcs.h
	(__iter_concept_or_category): New.
	(__is_any_random_access_iter): New.
	(_GLIBCXX_ITER_MOVE): New.
	* include/bits/stl_uninitialized.h (uninitialized_copy_n):
	Use __iterator_concept_or_category instead of
	__iterator_category for the constant iterator __first.
	(__uninitialized_copy_n_pair): Likewise.
	* include/bits/version.def (algorithm_iterator_requirements):
	Define.
	* include/bits/version.h: Regenerate.
	* include/std/algorithm: Provide the FTM
	__cpp_lib_algorithm_iterator_requirements.
	* include/std/memory: Likewise.
	* include/std/numeric: Likewise.  Include
	<bits/stl_iterator_base_funcs.h>.
	(reduce): Use __is_any_random_access_iter instead of
	__is_random_access_iter.
	(transform_reduce): Likewise.
	(inclusive_scan): Use _GLIBCXX_ITER_MOVE instead of std::move.
	* testsuite/25_algorithms/find_end/c++20_iter.cc: New test.
	* testsuite/25_algorithms/sample/c++20_iter.cc: New test.
	* testsuite/25_algorithms/search_n/c++20_iter.cc: New test.
	* testsuite/25_algorithms/unique_copy/c++20_iter.cc: New test.
	* testsuite/26_numerics/inclusive_scan/c++20_iter.cc: New test.

2025-12-12  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (submdspan): Fix missing '::template'.

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

	PR libstdc++/121114
	* include/bits/version.def: Implement C++26 P3378R2 - constexpr
	exception types.
	(constexpr_exceptions): Change value from 1 to 202502, remove
	no_stdname and TODO comments.
	* include/bits/version.h: Regenerate.
	* src/c++11/cow-stdexcept.cc (__cow_string(const char*)): New
	ctor.
	(__cow_string::c_str()): New method.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.35): Export 8 __cow_string
	symbols.
	* include/bits/new_except.h: New file.
	* include/bits/new_throw.h: New file.
	* include/bits/stdexcept_throw.h: New file.
	* include/bits/stdexcept_throwdef.h: New file.
	* include/bits/stdexcept_throwfwd.h: New file.
	* include/std/stdexcept: Include bits/stdexcept_except.h and move
	everything after <string> include except for std::range_error into
	include/bits/stdexcept_except.h.
	(std::range_error): If __cpp_lib_constexpr_exceptions >= 202502L
	make all cdtors and methods constexpr.
	* include/bits/stdexcept_except.h: New file.
	* include/std/optional (__glibcxx_want_constexpr_exceptions): Define
	before including bits/version.h.
	(bad_optional_access::what): Make constexpr for
	__cpp_lib_constexpr_exceptions >= 202502L.
	(__throw_bad_optional_access): Likewise.
	* include/std/expected (__glibcxx_want_constexpr_exceptions): Define
	before including bits/version.h.
	(bad_expected_access): Make cdtors and all methods constexpr for
	__cpp_lib_constexpr_exceptions >= 202502L.
	* include/std/format (__glibcxx_want_constexpr_exceptions): Define
	before including bits/version.h.
	(_GLIBCXX_CONSTEXPR_FORMAT_ERROR): Define and undef later.
	(format_error): Use _GLIBCXX_CONSTEXPR_FORMAT_ERROR on ctors.
	* include/std/variant (__glibcxx_want_constexpr_exceptions): Define
	before including bits/version.h.
	(_GLIBCXX_CONSTEXPR_BAD_VARIANT_ACCESS): Define and undef later.
	(bad_variant_access): Use it on ctors and what() method.
	(__throw_bad_variant_access): Use it here too.
	* testsuite/18_support/exception/version.cc: Adjust expected
	__cpp_lib_constexpr_exceptions value.
	* testsuite/19_diagnostics/runtime_error/constexpr.cc: New test.
	* testsuite/19_diagnostics/headers/stdexcept/version.cc: New test.
	* testsuite/19_diagnostics/logic_error/constexpr.cc: New test.
	* testsuite/20_util/expected/observers.cc (test_value_throw): Change
	return type to bool from void, return true at the end, add test
	to dereference what() first character.  Make it constexpr for
	__cpp_lib_constexpr_exceptions >= 202502L and add static_assert.
	* testsuite/20_util/expected/version.cc: Add tests for
	__cpp_lib_constexpr_exceptions value.
	* testsuite/20_util/variant/constexpr.cc: For
	__cpp_lib_constexpr_exceptions >= 202502L include <string>.
	(test_get): New function if __cpp_lib_constexpr_exceptions >= 202502L,
	assert calling it is true.
	* testsuite/20_util/variant/version.cc: Add tests for
	__cpp_lib_constexpr_exceptions value.
	* testsuite/20_util/optional/constexpr/observers/3.cc: Include
	testsuite_hooks.h.
	(eat, test01): New functions.  Assert test01() is true.
	* testsuite/20_util/optional/version.cc: Add tests for
	__cpp_lib_constexpr_exceptions value.
	* include/std/future: Add #include <bits/functexcept.h>.
	* include/std/shared_mutex: Include <bits/new_throw.h>.
	* include/std/flat_map: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/std/syncstream: Remove <bits/functexcept.h> include.
	* include/std/flat_set: Likewise.
	* include/std/bitset: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/std/string_view: Don't include <bits/functexcept.h>, include
	<bits/stdexcept_throw.h> early if __glibcxx_exc_in_string is not
	defined and include <bits/stdexcept_throw.h> at the end of
	the header again if __glibcxx_exc_in_string is 2 and C++26 constexpr
	exceptions are enabled.
	(__glibcxx_exc_in_string): Define if __glibcxx_exc_in_string wasn't
	defined before including <bits/stdexcept_throw.h>.
	* include/std/array: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/std/inplace_vector: Likewise.
	* include/std/string: Include <bits/stdexcept_except.h> and
	<bits/stdexcept_throw.h> after bits/basic_string.tcc include if
	C++26 constexpr exceptions are enabled and include
	<bits/stdexcept_throw.h> instead of <bits/functexcept.h> early.
	(__glibcxx_exc_in_string): Define early to 1, undefine at the end.
	* include/std/deque: Include <bits/stdexcept_throw.h>.
	* include/bits/new_allocator.h: Include <bits/new_throw.h> instead
	of <bits/functexcept.h>.
	* include/bits/stl_algobase.h: Remove <bits/functexcept.h> include.
	* include/bits/stl_vector.h: Include <bits/stdexcept_throw.h> instead
	of <bits/functexcept.h>.
	* include/bits/memory_resource.h: Include <bits/new_throw.h> instead
	of <bits/functexcept.h>.
	* include/bits/functexcept.h: Guard everything after includes with
	#if _GLIBCXX_HOSTED.
	(__throw_bad_alloc, __throw_bad_array_new_length,  __throw_logic_error,
	__throw_domain_error, __throw_invalid_argument, __throw_length_error,
	__throw_out_of_range, __throw_out_of_range_fmt, __throw_runtime_error,
	__throw_overflow_error, __throw_underflow_error): Move declarations to
	other headers - <bits/new_throw.h> and <bits/stdexcept_throwfwd.h>.
	* include/bits/stl_map.h: Include <bits/stdexcept_throw.h> instead
	of <bits/functexcept.h>.
	* include/bits/hashtable_policy.h: Include <bits/stdexcept_throw.h>
	instead of <bits/functexcept.h>.
	* include/bits/formatfwd.h (std::__throw_format_error): Remove
	declaration.
	* include/bits/specfun.h: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/bits/basic_ios.h: Include <bits/functexcept.h>.
	* include/bits/locale_classes.h: Likewise.
	* include/tr1/cmath: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/tr1/memory: Remove <bits/functexcept.h> include.
	* include/tr1/array: Include <bits/stdexcept_throw.h>.
	* include/ext/vstring_util.h: Include <bits/stdexcept_throw.h> instead
	of <bits/functexcept.h>.
	* include/ext/bitmap_allocator.h: Include <bits/new_throw.h> instead
	of <bits/functexcept.h>.
	* include/ext/mt_allocator.h: Likewise.
	* include/ext/malloc_allocator.h: Likewise.
	* include/ext/debug_allocator.h: Include <bits/stdexcept_throw.h>
	instead of <bits/functexcept.h>.
	* include/ext/concurrence.h: Include <bits/exception_defines.h>
	instead of <bits/functexcept.h>.
	* include/ext/throw_allocator.h: Include <bits/new_throw.h> and
	<bits/stdexcept_throw.h> instead of <bits/functexcept.h>.
	* include/ext/string_conversions.h: Include <bits/stdexcept_throw.h>
	instead of <bits/functexcept.h>.
	* include/ext/pool_allocator.h: Include <bits/new_throw.h> instead
	of <bits/functexcept.h>.
	* include/ext/ropeimpl.h: Include <bits/stdexcept_throw.h> instead of
	<bits/functexcept.h>.
	* include/tr2/dynamic_bitset: Likewise.
	* include/experimental/optional: Include <bits/exception_defines.h>
	instead of <bits/functexcept.h>.
	* include/Makefile.am (bits_freestanding): Add
	${bits_srcdir}/{new,stdexcept}_{except,throw}.h
	and ${bits_srcdir}/stdexcept_throw{fwd,def}.h.
	* include/Makefile.in: Regenerate.
	* src/c++17/floating_from_chars.cc: Remove <bits/functexcept.h>
	include.
	* src/c++11/regex.cc: Likewise.
	* src/c++11/functexcept.cc: Likewise.
	* src/c++11/snprintf_lite.cc: Include <bits/stdexcept_throw.h> instead
	of <bits/functexcept.h>.
	* src/c++11/thread.cc: Include <bits/functexcept.h>.
	* testsuite/util/testsuite_hooks.h: Include <bits/stdexcept_throw.h>
	instead of <bits/functexcept.h>.
	* testsuite/util/io/verified_cmd_line_input.cc: Include
	<bits/exception_defines.h> instead of <bits/functexcept.h>.
	* testsuite/20_util/allocator/105975.cc: Expect different diagnostics
	for C++26.
	* testsuite/23_containers/inplace_vector/access/capacity.cc: Remove
	#error, guard if consteval { return; } with
	#ifndef __cpp_lib_constexpr_exceptions.
	* testsuite/23_containers/inplace_vector/access/elem.cc: Likewise.
	* testsuite/23_containers/inplace_vector/cons/1.cc: Likewise.
	* testsuite/23_containers/inplace_vector/cons/from_range.cc: Likewise.
	* testsuite/23_containers/inplace_vector/modifiers/single_insert.cc:
	Likewise.
	* testsuite/23_containers/inplace_vector/modifiers/assign.cc:
	Likewise.
	* testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc:
	Likewise.
	* libsupc++/new: Include <bits/new_except.h>.
	(std::bad_alloc, std::bad_array_new_length): Move defintion to
	<bits/new_except.h>.

2025-12-11  Jason Merrill  <jason@redhat.com>

	* testsuite/Makefile.am (CLEANFILES): Add gcm.cache.
	* testsuite/Makefile.in: Regenerate.
	* testsuite/lib/dg-options.exp (add_options_for_no_pch): Also add
	-fno-modules.
	* testsuite/lib/libstdc++.exp (v3_std_list): Handle "modules" std.
	(v3_modules_std): New global.
	(v3-build_support): Build gcms for bits/stdc++.h, std, and
	std.compat.

2025-12-11  Yuao Ma  <c8ef@outlook.com>

	* include/bits/version.def: Add FTM.
	* include/bits/version.h: Regenerate.
	* include/std/flat_set: Add constexpr.
	* testsuite/23_containers/flat_multiset/1.cc: Add constexpr test.
	* testsuite/23_containers/flat_set/1.cc: Add constexpr test.

2025-12-09  John Ericson  <git@johnericson.me>

	* acinclude.m4: Use GCC_AC_THREAD_MODEL instead, via AC_REQUIRE
	* configure: Regenerate.

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

	* include/bits/version.h: Regenerate.

2025-12-09  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/bits/version.def (padded_layouts): Set to 202403.
	(submdspan): Set to 202411 add dependency.
	* include/bits/version.h: Regenerate.

2025-12-09  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/std/mdspan
	(__mdspan::_SubMdspanMapping<_LayoutSide::__right, true>): Define.
	(layout_right_padded::submdspan_mapping): New friend function.
	* testsuite/23_containers/mdspan/submdspan/selections/right_padded.cc:
	Instantiate tests for layout_right_padded.
	* testsuite/23_containers/mdspan/submdspan/submdspan_mapping.cc:
	Ditto.

2025-12-09  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/std/mdspan (__mdspan::__is_padded_mapping): Define.
	(__mdspan::_SubMdspanMapping): Add _Padded template parameter.
	(__mdspan::_SubMdspanMapping<_LayoutSide::__left, true>): Define.
	(__mdspan::__submdspan_mapping_impl): Updated _Trait alias.
	(layout_left_padded::submdspan_mapping): New friend method.
	* testsuite/23_containers/mdspan/layout_traits.h
	(LayoutTraits::layout_same_padded): New template type alias.
	* testsuite/23_containers/mdspan/submdspan/selections/left_padded.cc:
	Instantiate tests for layout_left_padded.
	* testsuite/23_containers/mdspan/submdspan/submdspan_mapping.cc:
	Ditto.

2025-12-09  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/std/mdspan (layout_stride::mapping::submdspan_mapping): New
	friend function.
	* testsuite/23_containers/mdspan/submdspan/selections/stride.cc:
	Instantiate tests for layout_stride.
	* testsuite/23_containers/mdspan/submdspan/submdspan_neg.cc:
	Ditto.
	* testsuite/23_containers/mdspan/submdspan/submdspan_mapping.cc:
	Add tests for layout_stride.

2025-12-09  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/std/mdspan
	(__mdspan::_SubMdspanMapping<_LayoutSide::__right>): Define.
	(layout_right::mapping::submdspan_mapping): New friend function.
	* testsuite/23_containers/mdspan/submdspan/selections/right.cc:
	Instantiate tests for layout_right.
	* testsuite/23_containers/mdspan/submdspan/submdspan_mapping.cc:
	Ditto.
	* testsuite/23_containers/mdspan/submdspan/submdspan_neg.cc:
	Ditto.

2025-12-09  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/std/mdspan (__mdspan::__is_submdspan_mapping_result)
	(__mdspan::__submdspan_mapping_result, __mdspan::__fwd_prod)
	(__mdspan::__acceptable_slice_type, __mdspan::__slice_begin)
	(__mdspan::__suboffset, __mdspan::_LayoutSide, __mdspan::__mapping_side)
	(__mdspan::_StridesTrait, __mdspan::__substrides_generic)
	(__mdspan::__substrides_standardized, __mdspan::__substrides)
	(__mdspan::__is_unit_stride_slice, __mdspan::_SliceKind)
	(__mdspan::__make_slice_kind, __mdspan::__make_slice_kind_array)
	(__mdspan::__is_block, __mdspan::__padded_block_begin_generic)
	(__mdspan::__padded_block_begin, __mpdspan::_SubMdspanMapping)
	(__mdspan::__submdspan_mapping_impl): Define.
	(__mdspan::__dynamic_slice_extent, __mdspan::__static_slice_extent)
	(__mdspan::__subextents): Move earlier in the file.
	(layout_left::mapping::submdspan_mapping, __mdspan::__sliceable_mapping)
	(__mdspan::__submapping, submdspan): Define.
	* src/c++23/std.cc.in: Add submdspan.
	* testsuite/23_containers/mdspan/submdspan/generic.cc: New test.
	* testsuite/23_containers/mdspan/submdspan/selections/left.cc:
	Instantiate selection tests for layout_left.
	* testsuite/23_containers/mdspan/submdspan/selections/testcases.h: Generic
	tests different selections.
	* testsuite/23_containers/mdspan/submdspan/submdspan_mapping.cc: New test.
	* testsuite/23_containers/mdspan/submdspan/submdspan_neg.cc: New test.

2025-12-09  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (_ExtentsStorage::_M_dynamic_extents):
	Create span from pointer + size, not begin and end iterators.

2025-12-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/122946
	* include/bits/version.def (concepts): Set value to 202207.
	* include/bits/version.h: Regenerate.
	* include/std/concepts (__comparison_common_type_with_impl)
	(__comparison_common_type_with): New helper concepts.
	(equality_comparable_with): Use __comparison_common_type_with.
	* libsupc++/compare (three_way_comparable_with): Likewise.
	(__glibcxx_want_concepts): Define to get __cpp_lib_concepts
	here.
	* testsuite/std/concepts/concepts.compare/move_only.cc: New
	test.

2025-12-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/intcmp.h: Replace all uses of
	__is_standard_integer with __is_signed_or_unsigned_integer.
	* include/bits/max_size_type.h: Fix outdated comment.
	* include/bits/sat_arith.h: Replace all uses of
	__is_standard_integer with __is_signed_or_unsigned_integer.
	* include/c_compatibility/stdckdint.h: Replace all uses of the
	__cv_unqual_signed_or_unsigned_integer_type concept with
	__is_signed_or_unsigned_integer.
	(__cv_unqual_signed_or_unsigned_integer_type): Remove.
	* include/ext/numeric_traits.h: Fix outdated comment.
	* include/std/charconv (from_chars): Replace use of
	__is_standard_integer with __is_signed_or_unsigned_integer.
	Do not enable for cv-qualified char.
	* include/std/mdspan: Likewise.
	* include/std/type_traits (__is_unsigned_integer): Include
	unsigned __int128 in type list.
	(__is_signed_integer): Include signed __int128 in type list.
	(__is_standard_integer): Rename to ...
	(__is_signed_or_unsigned_integer): ... this.
	* testsuite/23_containers/mdspan/extents/ctor_ints.cc: Test
	with 128-bit integers.
	* testsuite/23_containers/mdspan/submdspan/strided_slice.cc:
	Likewise.
	* testsuite/20_util/integer_comparisons/extended.cc: New test.
	* testsuite/26_numerics/saturation/extended.cc: New test.
	* testsuite/26_numerics/stdckdint/extended.cc: New test.

2025-12-08  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/112591
	* include/std/variant (_Variadic_union): Separate specializations for
	for union of only trivially destructible types (true as first template
	argument). Unconditionally define destructor for _Variadic_union<false,
	_First, _Rest...>.
	* testsuite/20_util/variant/87619.cc: Add limit for the template depth.
	* testsuite/20_util/variant/112591.cc: New test.

2025-12-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/iterator_concepts.h: Remove diagnostic pragmas.

2025-12-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/std/latch: Include <bits/intcmp.h> instead of
	<utility>.
	* include/std/utility: Include <bits/intcmp.h>.
	(cmp_equal, cmp_not_equal, cmp_less, cmp_greater)
	(cmp_less_equal, cmp_greater_equal, in_range): Move to ...
	* include/bits/intcmp.h: New file.

2025-12-06  Jason Merrill  <jason@redhat.com>

	* src/c++23/std.cc.in: Add more #if.

2025-12-06  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/80564
	* include/std/functional (__cv_like): New.
	(_Bind::_Res_type): Don't define when not needed.
	(_Bind::__dependent): Likewise.
	(_Bind::_Res_type_cv): Likewise.
	(_Bind::operator()) [_GLIBCXX_EXPLICIT_THIS_PARAMETER]:
	Define as two instead of four overloads using deducing
	this.
	* testsuite/20_util/bind/cv_quals_2.cc: Ignore SFINAE
	diagnostics inside headers.
	* testsuite/20_util/bind/ref_neg.cc: Likewise.
	* testsuite/20_util/bind/80564.cc: New test.

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

	* include/bits/atomic_wait.h (__detail::__atomic_eq): Use
	std::addressof instead of &.
	* include/std/atomic (atomic::wait, atomic::notify_one)
	(atomic::notify_all): Likewise.

2025-12-05  Patrick Palka  <ppalka@redhat.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/120446
	* include/bits/refwrap.h (__detail::__is_ref_wrapper):
	Define as per P2655R3 for C++20.
	(__detail::__ref_wrap_common_reference_exists_with): Likewise.
	(basic_common_reference): Define partial specializations using
	the above as per P2655R3 for C++20.
	* include/bits/version.def (common_reference_wrapper): New.
	* include/bits/version.h: Regenerate.
	* include/std/functional (__glibcxx_want_common_reference_wrapper):
	Define.
	* testsuite/20_util/reference_wrapper/p2655r3.cc: New test.

2025-12-05  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/120446
	* include/bits/version.def (common_reference): New.
	* include/bits/version.h: Regenerate.
	* include/std/type_traits (__glibcxx_want_common_reference):
	Define.
	(__common_reference_impl<T1, T2, 1>): Add pointer convertibility
	constraints as per P2655R3.
	* testsuite/20_util/common_reference/p2655r3.cc: New test.

2025-12-05  Patrick Palka  <ppalka@redhat.com>

	PR c++/120446
	* include/std/type_traits (__common_reference_impl): Rewrite
	partial specializations to use requires-clause instead of
	an additional void_t template parameter.  Consolidate the
	partial specializations corresponding to bullet 1.

2025-12-05  Patrick Palka  <ppalka@redhat.com>

	* testsuite/20_util/function_objects/bind_front/111327.cc:
	Add missing space before } ending a dg-error directive.

2025-12-05  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/111550
	* include/std/ranges (views::__adaptor::_Partial::operator())
	[_GLIBCXX_EXPLICIT_THIS_PARAMETER]: Also use deducing this
	in C++20 mode when possible.
	(views::__adaptor::_Pipe::Operator())
	[_GLIBCXX_EXPLICIT_THIS_PARAMETER]: Likewise.
	* testsuite/std/ranges/adaptors/take.cc (test07): New test.

2025-12-05  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/111327
	* include/bits/binders.h (_Binder::operator())
	[_GLIBCXX_EXPLICIT_THIS_PARAMETER]: Also use deducing this in
	C++20 mode when possible.
	* testsuite/20_util/function_objects/bind_front/111327.cc:
	Expect error inside header even in C++20 mode.

2025-12-05  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/111327
	* include/std/functional (_Not_fn::operator())
	[_GLIBCXX_EXPLICIT_THIS_PARAMETER]: Define as a single
	overload using deducing this.
	* testsuite/20_util/function_objects/not_fn/111327.cc: Extend test.

2025-12-05  Patrick Palka  <ppalka@redhat.com>

	* include/bits/c++config (_GLIBCXX_EXPLICIT_THIS_PARAMETER):
	New.

2025-12-04  François Dumont  <frs.dumont@gmail.com>

	* include/debug/deque
	(std::erase_if<>(std::__debug::deque<>&, _Pred)): New.
	(std::erase<>(std::__debug::deque<>&, const _Up&)): New.
	* include/std/deque (std::erase_if(std::deque<>&, _Pred)): Remove
	_GLIBCXX_DEBUG code.
	* testsuite/23_containers/deque/debug/erase.cc: New test case.
	* testsuite/23_containers/deque/debug/invalidation/erase.cc: New test case.

2025-12-04  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/debug/safe_unordered_base.h
	(_Safe_unordered_container_base::operator=): Define as
	defaulted, inherit behavior of _Safe_sequence_base.

2025-12-04  Luc Grosheintz  <luc.grosheintz@gmail.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/mdspan (layout_left): Apply LWG4272.
	(layout_right, layout_left_padded, layout_right_padded): Ditto.
	* testsuite/23_containers/mdspan/layouts/ctors.cc: Add
	test to check ctor uniformity at rank == 0. Update test
	for new behavior.
	* testsuite/23_containers/mdspan/layouts/padded.cc: Update test
	for new behavior.

2025-12-04  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/debug/safe_sequence.h
	(_Safe_node_sequence::_Safe_node_sequence): Define as defaulted.

2025-12-03  Vladimir Bespalov  <vlad.bespalov@jetstreamsoft.com>

	PR libstdc++/122812
	* python/libstdcxx/v6/printers.py (lookup_templ_spec): Use
	gdb.Type.tag if present.

2025-12-03  Yuao Ma  <c8ef@outlook.com>

	* include/bits/basic_string.h: Add subview.
	* include/bits/cow_string.h: Add subview.
	* include/std/string: Add FTM.
	* testsuite/21_strings/basic_string/operations/subview/char.cc: New test.
	* testsuite/21_strings/basic_string/operations/subview/wchar_t.cc: New test.

2025-12-03  Yuao Ma  <c8ef@outlook.com>

	* include/bits/version.def: Add string_subview FTM.
	* include/bits/version.h: Regenerate.
	* include/std/string_view: Add subview.
	* testsuite/21_strings/basic_string_view/operations/subview/char.cc: New test.
	* testsuite/21_strings/basic_string_view/operations/subview/wchar_t.cc: New test.

2025-12-03  François Dumont  <frs.dumont@gmail.com>

	* include/Makefile.am (debug_headers): Add inplace_vector.
	* include/Makefile.in: Regenerate.
	* include/debug/functions.h (__check_valid_range): Add C++20 constexpr.
	* include/debug/helper_functions.h (__valid_range): Likewise.
	* include/debug/inplace_vector: New.
	* include/debug/safe_base.h (~_Safe_sequence_base()): Add C++11 noexcept.
	(_Safe_sequence_base::operator=(const _Safe_sequence_base&)): New.
	(_Safe_sequence_base::operator=(_Safe_sequence_base&&)): New.
	(_Safe_sequence_base::_M_invalidate_all): Add C++20 constexpr.
	* include/debug/safe_container.h
	(_Safe_container<>::operator=(const _Safe_container<>&)): Implement using
	_Safe_sequence_base same operator.
	* include/debug/safe_iterator.h (__valid_range): Add C++20 constexpr.
	* include/debug/safe_sequence.h
	(_Not_equal_to(const _Type&)): Add C++20 constexpr.
	(_Equal_to(const _Type&)): Add C++20 constexpr.
	(_After_nth_from(const difference_type&, const _Iterator&)): Add C++20 constexpr.
	(_Safe_sequence<>::_M_invalidate_if): Add C++20 constexpr.
	(_Safe_node_sequence::operator=(const _Safe_node_sequence&)): New.
	(_Safe_node_sequence::operator=(_Safe_node_sequence&&)): New.
	(_Safe_node_sequence<>::_M_invalidate_all()): Add C++20 constexpr.
	* include/debug/safe_sequence.tcc
	(_Safe_sequence<>::_M_invalidate_if): Add C++20 constexpr.
	* include/std/inplace_vector [_GLIBCXX_DEBUG](std::inplace_vector<>): Move
	implementation into __cxx1998 namespace.
	(erase, erase_if): Limit to non-debug inplace_vector<>, cleanup code.
	[_GLIBCXX_DEBUG]: Add include <debug/inplace_vector>.
	* testsuite/23_containers/inplace_vector/cons/1.cc: Adapt, skip several
	is_trivially_xxx checks when in _GLIBCXX_DEBUG mode.
	* testsuite/23_containers/inplace_vector/copy.cc: Likewise.
	* testsuite/23_containers/inplace_vector/move.cc: Likewise.
	* testsuite/23_containers/inplace_vector/debug/assign1_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/assign2_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/assign3_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/assign4_backtrace_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/assign4_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/construct1_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/construct2_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/construct3_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/construct4_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/debug_functions.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/erase.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/insert1_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/insert2_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/insert3_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/insert4_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/insert5_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/insert7_neg.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/1.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/2.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/3.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/4.cc: New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/append_range.cc:
	New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/erase.cc:
	New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/pop_back.cc:
	New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/push_back.cc:
	New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/swap.cc:
	New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/try_append_range.cc:
	New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/try_emplace_back.cc:
	New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/try_push_back.cc:
	New test case.
	* testsuite/23_containers/inplace_vector/debug/invalidation/unchecked_emplace_back.cc:
	New test case.
	* testsuite/util/debug/checks.h: Avoid using _GLIBCXX_DEBUG containers in test
	implementations.

2025-12-02  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/std/mdspan (submdspan_extents): New function.
	* src/c++23/std.cc.in: Add submdspan_extents.
	* testsuite/23_containers/mdspan/int_like.h: Add StructuralInt.
	* testsuite/23_containers/mdspan/submdspan/submdspan_extents.cc: New test.
	* testsuite/23_containers/mdspan/submdspan/submdspan_extents_neg.cc: New test.

2025-12-02  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/std/mdspan (submdspan_canonicalize_slices): New
	function.
	* src/c++23/std.cc.in (submdspan_canonicalize_slices): Add.
	* testsuite/23_containers/mdspan/submdspan/submdspan_canonicalize_slices.cc: New test.
	* testsuite/23_containers/mdspan/submdspan/submdspan_canonicalize_slices_neg.cc: New test.

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

	PR libstdc++/122921
	* include/std/flat_map (_Flat_map_impl::_Iterator::value_type):
	Remove const from key_type to make consistent with the
	container's value_type.
	* testsuite/23_containers/flat_map/1.cc (test09): New test.
	* testsuite/23_containers/flat_multimap/1.cc (test09): New test.

2025-12-01  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h (__wait_until_impl): Use
	chrono::nanoseconds for parameter.
	* src/c++20/atomic.cc (__wait_until_impl): Likewise.

2025-12-01  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/122878
	* src/c++20/atomic.cc (__spin_until_impl): Remove.
	(__wait_until_impl): Use __spin_impl instead of
	__spin_until_impl and return if timeout is reached after
	spinning.

2025-12-01  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++20/atomic.cc: Document platform wait API.
	(__futex_wait_flags): Remove enumeration type.
	(futex_private_flag): Define constant for FUTEX_PRIVATE_FLAG.
	(__platform_wait): Use local variables for futex op constants.
	(__platform_notify): Likewise.
	(__platform_wait_until): Likewise. Adjust parameter types for
	consistency with __platform_wait.

2025-11-28  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/122842
	* include/bits/ranges_base.h (__access:_CBegin): Define in
	terms of const_iterator directly, not const_iterator_t.
	(__access::_CEnd): Likewise in terms of const_sentinel vs
	const_sentinel_t.
	(const_iterator_t): Move down definition and define in terms
	of ranges::cbegin as per LWG 3946.
	(const_sentinel_t): Likewise in terms of ranges::cend.
	* testsuite/24_iterators/const_iterator/1.cc (test02): Correct
	test for int[], std::array and std::vector.  Also test
	std::string.

2025-11-27  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/performance/23_containers/sort_search/list.cc: Cast
	results to void to suppress -Wunused-result warnings from
	nodiscard functions.
	* testsuite/performance/25_algorithms/equal_deque_iterators.cc:
	Likewise.
	* testsuite/performance/25_algorithms/search_n.cc: Likewise.

2025-11-27  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/Makefile.am: Fix typo in comment.
	* testsuite/Makefile.in: Regenerate.

2025-11-27  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/ranges (__func_handle::__select): Named function
	extracted from local lambda.
	(__detail::__func_handle_t): Define using __func_handle::__select.
	(__func_handle::_Inplace): Raname _M_ptr to _M_fn.

2025-11-27  Jonathan Wakely  <jwakely@redhat.com>

	* config/abi/pre/gnu.ver: Adjust exports.
	* include/bits/atomic_timed_wait.h (_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT):
	Do not define this macro.
	(__atomic_wait_address_until_v, __atomic_wait_address_for_v):
	Adjust assertions to check that __platform_wait_uses_type is
	true.
	* include/bits/atomic_wait.h (__waitable): New concept.
	(__platform_wait_uses_type): Different separately for platforms
	with and without platform wait.
	(_GLIBCXX_HAVE_PLATFORM_WAIT): Do not define this macro.
	(__wait_value_type): New typedef.
	(__wait_result_type): Change _M_val to __wait_value_type.
	(__wait_flags): Remove __proxy_wait enumerator. Reduce range
	reserved for ABI version by the commented-out value.
	(__wait_args_base::_M_old): Change type to __wait_args_base.
	(__wait_args_base::_M_obj, __wait_args_base::_M_obj_size): New
	data members.
	(__wait_args::__wait_args): Set _M_obj and _M_obj_size on
	construction.
	(__wait_args::_M_setup_wait): Change void* parameter to deduced
	type. Adjust bit_cast to work for types of different sizes.
	(__wait_args::_M_load_proxy_wait_val): Remove function, replace
	with ...
	(__wait_args::_M_setup_proxy_wait): New function.
	(__wait_args::_S_flags_for): Do not set __proxy_wait flag.
	(__atomic_wait_address_v): Adjust assertion to check that
	__platform_wait_uses_type is true.
	* src/c++20/atomic.cc (_GLIBCXX_HAVE_PLATFORM_WAIT): Define here
	instead of in header. Check _GLIBCXX_HAVE_PLATFORM_WAIT instead
	of _GLIBCXX_HAVE_PLATFORM_TIMED_WAIT.
	(__platform_wait, __platform_notify, __platform_wait_until): Add
	unused parameter for _M_obj_size.
	(__spin_impl): Adjust for 64-bit __wait_args_base::_M_old.
	(use_proxy_wait): New function.
	(__wait_args::_M_load_proxy_wait_val): Replace with ...
	(__wait_args::_M_setup_proxy_wait): New function. Call
	use_proxy_wait to decide at runtime whether to wait on the
	pointer directly instead of using a proxy. If a proxy is needed,
	set _M_obj and _M_obj_size to refer to its _M_ver member. Adjust
	for change to type of _M_old.
	(__wait_impl): Wait on _M_obj unconditionally. Pass _M_obj_size
	to __platform_wait.
	(__notify_impl): Call use_proxy_wait to decide whether to notify
	on the address parameter or a proxy
	(__spin_until_impl): Adjust for change to type of _M_val.
	(__wait_until_impl): Wait on _M_obj unconditionally. Pass
	_M_obj_size to __platform_wait_until.

2025-11-27  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/semaphore_base.h (__platform_semaphore::_S_max):
	Limit to PTRDIFF_MAX to avoid negative values.
	* testsuite/30_threads/semaphore/least_max_value.cc: New test.

2025-11-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/122864
	* include/std/chrono (chrono::__pack_ints): Replace `<=`
	with `<<`.

2025-11-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/ranges (__detail::__is_std_op_template)
	(__detail::__is_std_op_wrapper, __func_handle::_Inplace)
	(__func_handle::_InplaceMemPtr, __func_handle::_ViaPointer)
	(__func_handle::_StaticCall, __detail::__func_handle_t): Define.
	(transform_view::_Iterator, zip_transform_view::_Iterator)
	(adjacent_tranform_view::_Iterator): Replace pointer to view
	(_M_parent) with pointer to functor (_M_fun). Update constructors
	to construct _M_fun from *__parent->_M_fun. Define operator* and
	operator[] in terms of _M_call_deref and _M_call_subscript.
	* testsuite/std/ranges/adaptors/adjacent_transform/1.cc: New tests.
	* testsuite/std/ranges/adaptors/transform.cc: New tests.
	* testsuite/std/ranges/zip_transform/1.cc: New tests.

2025-11-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/ranges_cmp.h (std::identity::operator()):
	(ranges::equal_to:operator(), ranges::not_equal_to:operator())
	(ranges::greater::operator(), ranges::greater_equal::operator())
	(ranges::less::operator(), ranges::less_equal::operator()):
	Declare as static.
	* libsupc++/compare (std::compare_three_way::operator()):
	Declare as static.

2025-11-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/chrono (chrono::__hash): Rename __packed to
	__res.

2025-11-26  Tomasz Kamiński  <tkaminsk@redhat.com>
	    Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	PR libstdc++/110357
	* include/bits/version.def (chrono, chrono_cxx20): Bump values.
	* include/bits/version.h: Regenerate.
	* include/std/chrono (__is_nothrow_copy_hashable)
	(chrono::__pack_ints, chrono::__as_int, chrono::__int_hash)
	(chrono::__hash): Define.
	(std::hash): Define partial specialization for duration, time_point,
	and zoned_time, and full specializations for calendar types and
	leap_second.
	(std::__is_fast_hash): Define partial specializations for duration,
	time_point, zoned_time.
	* testsuite/std/time/hash.cc: New test.

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

	* acinclude.m4 (libtool_VERSION): Bump version.
	* configure: Regenerate.

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

	* include/std/optional (operator==, operator!=, operator>)
	(operator>, operator<=, operator>=): Do not use logical
	&& and || with operands of unknown types.
	* testsuite/20_util/optional/relops/lwg4370.cc: New test.

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

	* include/std/expected (operator==): Use implicit conversion to
	bool and do not use logical && and || with operands of unknown
	types. Add nodiscard attributes.
	* testsuite/20_util/expected/equality.cc: Test some missing
	cases which were not covered previously.
	* testsuite/20_util/expected/lwg4366.cc: New test.

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

	* python/libstdcxx/v6/xmethods.py (ListMethodsMatcher.match):
	Fix lookup for node type.

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

	PR libstdc++/122821
	* python/libstdcxx/v6/xmethods.py (_versioned_namespace): Remove
	global variable.
	(is_specialization_of): Do not use _versioned_namespace. Add
	__debug:: to regex.

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

	* include/std/istream (istream::ignore(streamsize, char)): Add
	always_inline attribute.

2025-11-21  Yuao Ma  <c8ef@outlook.com>

	* doc/html/manual/using_exceptions.html: Replace dead link.
	* doc/xml/manual/using_exceptions.xml: Likewise.

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

	* include/std/expected (expected::value_or): Use remove_cv_t for
	the return type. Do not use static_cast for return statement.
	Adjust static_assert conditions to match return statements.
	* include/std/optional (optional::value_or): Likewise.
	(optional<T&>::value_or): Likewise.

2025-11-21  Yuao Ma  <c8ef@outlook.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/std/istream (ignore): Add an overload for char.
	* testsuite/27_io/basic_istream/ignore/char/93672.cc: Adjust
	expected behaviour for C++26 mode.
	* testsuite/27_io/basic_istream/ignore/char/4.cc: New test.

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

	* doc/xml/faq.xml: Refresh information on _GNU_SOURCE and
	_XOPEN_SOURCE being predefined.
	* doc/xml/manual/internals.xml: Remove outdated paragraph about
	_POSIX_SOURCE in libstdc++ source files.
	* doc/html/*: Regenerate.

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

	* include/bits/regex_automaton.tcc [_GLIBCXX_DEBUG]: Include
	<ostream> so that _State_base::_M_print etc. can use it.

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

	* testsuite/23_containers/vector/debug/erase.cc: Remove no_pch
	option.
	* testsuite/23_containers/vector/debug/invalidation/erase.cc:
	Likewise.

2025-11-20  François Dumont  <frs.dumont@gmail.com>

	* include/debug/vector (std::erase_if, std::erase): New overloads for
	std::__debug::vector instances.
	* include/std/vector (std::erase_if, std::erase): Make overloads specific
	to normal std::vector implementation.
	* testsuite/23_containers/vector/debug/erase.cc: New test case.
	* testsuite/23_containers/vector/debug/invalidation/erase.cc: New test case.

2025-11-20  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan: Improve formatting and placement.
	* testsuite/23_containers/mdspan/int_like.h: Optionally,
	add move- and copy-ctors.
	* testsuite/23_containers/mdspan/layouts/padded_traits.h: Move to...
	* testsuite/23_containers/mdspan/layout_traits.h: ...here.
	* testsuite/23_containers/mdspan/layouts/ctors.cc: Fix include.
	* testsuite/23_containers/mdspan/layouts/mapping.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/padded.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/padded_neg.cc: Ditto.

2025-11-20  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/18_support/headers/new/synopsis.cc: Add constexpr to
	placement delete for C++26 and up.

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

	* doc/xml/manual/abi.xml: Add versions for GCC 16.
	* doc/html/manual/abi.html: Regenerate.

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

	PR libstdc++/122743
	* doc/xml/manual/abi.xml: Add versions for GCC 15.
	* doc/html/manual/abi.html: Regenerate.

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

	* doc/xml/faq.xml: Remove unwanted whitespace inside
	programlisting elements.
	* doc/xml/manual/allocator.xml: Likewise.
	* doc/xml/manual/auto_ptr.xml: Likewise.
	* doc/xml/manual/backwards_compatibility.xml: Likewise.
	* doc/xml/manual/build_hacking.xml: Likewise.
	* doc/xml/manual/containers.xml: Likewise.
	* doc/xml/manual/diagnostics.xml: Likewise.
	* doc/xml/manual/extensions.xml: Likewise.
	* doc/xml/manual/intro.xml: Likewise.
	* doc/xml/manual/io.xml: Likewise.
	* doc/xml/manual/iterators.xml: Likewise.
	* doc/xml/manual/numerics.xml: Likewise.
	* doc/xml/manual/policy_data_structures.xml: Likewise.
	* doc/xml/manual/strings.xml: Likewise.
	* doc/xml/manual/support.xml: Likewise.
	* doc/xml/manual/test.xml: Likewise.
	* doc/xml/manual/using.xml: Likewise.
	* doc/xml/manual/utilities.xml: Likewise.
	* doc/html/*: Regenerate.

2025-11-19  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* include/bits/basic_string.h (basic_string::M_set_length): Swap
	around the order of traits_type::assign and _M_length so that
	_M_length is at the end.

2025-11-19  Martin Liska  <martin.liska@hey.com>

	* configure: Regenerate.

2025-11-19  Martin Liska  <martin.liska@hey.com>

	* acinclude.m4:: Add detection for wild linker.
	* configure: Regenerate.

2025-11-19  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (extents::_Storage): Move type alias before
	its first use.
	(__mdspan::__static_extents): Add missing noexcept and constexpr
	to friend declaration in extents.
	(__mdspan::__dynamic_extents): Ditto.

2025-11-19  Jakub Jelinek  <jakub@redhat.com>

	* include/std/type_traits (constant_wrapper conversion operator):
	Use decltype(value) instead of decltype(auto).  Resolves LWG4468.

2025-11-19  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/122671
	* libsupc++/new (::operator delete, ::operator delete[]): Implement
	proposed LWG4477 resolution.  Use _GLIBCXX_PLACEMENT_CONSTEXPR for
	placement operator deletes.

2025-11-18  Mike Crowe  <mac@mcrowe.com>

	* include/std/shared_mutex (try_lock, try_lock_until)
	(try_lock_shared_until): Respond consistently to errors and
	deadlocks.
	* testsuite/30_threads/shared_timed_mutex/try_lock_until/116586.cc:
	Test deadlock behaviour if possible.

2025-11-18  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121858
	* include/bits/funcref_impl.h
	(function_ref::function_ref(nontype<__fn>, _Up&&)): Handle.
	reference_wrapper.
	* testsuite/20_util/function_ref/call.cc: Call and update
	test05(). Add new test06() for reference_wrapper.

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

	PR libstdc++/122726
	* src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
	(rename): Use __last_system_error to set errno accurately.
	* testsuite/27_io/filesystem/operations/rename.cc: Test
	error_code matches errc::no_such_file_or_directory.

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

	* src/c++23/std.cc.in [!__cpp_lib_syncbuf]: Disable exports for
	<syncstream> contents when not defined.
	[!_GLIBCXX_USE_CXX11_ABI]: Disable exports for pmr aliases in
	<string> when not defined.

2025-11-17  Jason Merrill  <jason@redhat.com>

	* testsuite/util/testsuite_allocator.h: Move importable headers up.
	* testsuite/util/testsuite_common_types.h: Likewise.
	* testsuite/util/testsuite_containers.h: Likewise.
	* testsuite/util/testsuite_error.h: Move includes inside
	include guard.
	* testsuite/util/testsuite_greedy_ops.h: #include <cstddef>.
	* testsuite/util/testsuite_iterators.h: #include <utility>.
	* testsuite/util/testsuite_new_operators.h: #include <cstdlib>.
	* testsuite/util/testsuite_random.h: #include <random>.

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

	PR libstdc++/122698
	* src/c++20/syncbuf.cc (__syncbuf_get_mutex): Include <mutex>.
	Fix indentation of function body.

2025-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* scripts/extract_symvers.pl: Remove ccs from elfdump path.

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

	* include/bits/atomic_base.h: Tweak grammar of static assert
	messages for unsupported atomic wait on volatile.

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

	* src/c++20/atomic.cc (__wait_impl): Fix outdated comment.
	(__wait_until_impl): Simplify return statements.

2025-11-14  Tom Tromey  <tromey@adacore.com>

	* python/libstdcxx/v6/printers.py (StdVectorPrinter._bounds):
	New method.
	(StdVectorPrinter.to_string): Use it.
	(StdVectorPrinter.num_children): New method.
	(StdStackOrQueuePrinter.num_children): New method.
	(StdMapPrinter.num_children): New method.
	(StdSetPrinter.num_children): New method.
	(StdDequePrinter._size): New method.
	(StdDequePrinter.to_string): Use it.
	(StdDequePrinter.num_children): New method.
	(Tr1UnorderedSetPrinter.num_children): New method.
	(Tr1UnorderedMapPrinter.num_children): New method.
	(StdSpanPrinter.num_children): New method.

2025-11-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/unicode.h (_Utf_view): Rename the template parameter
	from _Range to _View and constrain it with ranges::view.
	(_Utf_view::_Utf_view): Accept by value instead of rvalue reference.
	* include/std/format (__format::__write_padded): Replace _Utf_view
	over const char32_t(&)[1] with span<const char32_t, 1>.
	* testsuite/ext/unicode/view.cc: Add checks if specialization
	of _Utf_view satisfy view. Wrap arrays into std::span before
	constructing _Utf_view.

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

	* include/std/bitset: Add comment to feature test macro test.

2025-11-14  Karpalo Toivonen  <arktinenkarpalo@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/121054
	* include/std/bitset: Add string check to constructor.
	* testsuite/20_util/bitset/121054.cc: New test.
	* testsuite/20_util/bitset/cons/constexpr_c++23.cc: Fix.

2025-11-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/122032
	* include/std/functional (std::bind_front<f>, std::bind_back<f>):
	Define in terms of _Bind_front_t/_Bind_back_t.
	* testsuite/20_util/function_objects/bind_back/nttp.cc: New tests.
	* testsuite/20_util/function_objects/bind_front/nttp.cc: New tests.

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

	PR libstdc++/122661
	* include/bits/forward_list.h (forward_list::assign(I, I)): Fix
	value category in is_assignable check.
	* testsuite/23_containers/forward_list/modifiers/122661.cc:
	New test.

2025-11-13  Xavier Bonaventura  <xavibonaventura@gmail.com>

	* testsuite/18_support/headers/csignal/macros.cc: Check for
	SIG_IGN.

2025-11-13  Xavier Bonaventura  <xavibonaventura@gmail.com>

	* testsuite/18_support/headers/climits/values.cc: Check for
	LLONG_MIN, LLONG_MAX, and ULLONG_MAX.

2025-11-13  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/optional (__is_optional_ref): Define.
	* include/std/ranges (_Take::operator(), _Drop::operator())
	(_Reverse::operator()):	Handle optional<T> that are view.
	(_AsConst::operator()): Handle optional<T&>.
	* testsuite/20_util/optional/range.cc: New tests.

2025-11-13  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/115402
	PR libstdc++/122584
	* testsuite/29_atomics/atomic_ref/address.cc: Guard test for
	volatile with if constexpr.
	* testsuite/29_atomics/atomic_ref/deduction.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/op_support.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/requirements.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/bool.cc: Use volatile_t alias.
	* testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/float.cc: Likewise, and remove
	not discarding if constexpr.

2025-11-12  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/122425
	* include/std/optional
	(ranges::enable_borrowed_range<optional<_Tp&>>): Define.
	* testsuite/20_util/optional/range.cc: Update tests.

2025-11-12  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/122396
	* include/std/optional (__optional_ref_base): Define.
	(std::optional<_Tp&>): Inherit from __optional_ref_base<_Tp>.
	(optional<_Tp&>::iterator): Move to base class.
	(optional<_Tp&>::begin, optional<_Tp&>::end): Use deduced return
	type and constrain accordingly.
	* testsuite/20_util/optional/range.cc: Add test for optional<T&>.

2025-11-12  Jason Merrill  <jason@redhat.com>

	* testsuite/18_support/exception_ptr/62258.cc: Use
	-Wno-deprecated-declarations instead of -Wno-deprecated.
	* testsuite/18_support/uncaught_exception/14026.cc
	* testsuite/20_util/headers/functional/synopsis.cc
	* testsuite/20_util/is_literal_type/requirements/explicit_instantiation.cc
	* testsuite/20_util/is_literal_type/requirements/typedefs.cc
	* testsuite/20_util/is_literal_type/value.cc
	* testsuite/20_util/is_pod/requirements/explicit_instantiation.cc
	* testsuite/20_util/is_pod/requirements/typedefs.cc
	* testsuite/20_util/is_pod/value.cc
	* testsuite/20_util/shared_ptr/assign/auto_ptr.cc
	* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc
	* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc
	* testsuite/20_util/shared_ptr/atomic/1.cc
	* testsuite/20_util/shared_ptr/atomic/2.cc
	* testsuite/20_util/shared_ptr/atomic/3.cc
	* testsuite/20_util/shared_ptr/cons/43820_neg.cc
	* testsuite/20_util/shared_ptr/cons/auto_ptr.cc
	* testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc
	* testsuite/20_util/shared_ptr/creation/dr925.cc
	* testsuite/20_util/unique_ptr/cons/auto_ptr.cc
	* testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc
	* testsuite/20_util/variable_templates_for_traits.cc
	* testsuite/29_atomics/atomic/lwg3220.cc
	* testsuite/experimental/type_traits/value.cc: Likewise.

2025-11-12  Jason Merrill  <jason@redhat.com>

	* testsuite/lib/prune.exp: Sync with gcc prune.exp.

2025-11-10  Jakub Jelinek  <jakub@redhat.com>

	* libsupc++/compare: Implement final wording of C++26 P3778R0 - Fix
	for type_order template definition.
	(std::type_order): Remove type member.

2025-11-03  Sam James  <sam@gentoo.org>

	* configure: Regenerate.

2025-11-03  Jason Merrill  <jason@redhat.com>

	* include/bits/quoted_string.h: Add ADL friends.
	* libsupc++/exception_ptr.h: Add ADL friend.

2025-11-03  Jason Merrill  <jason@redhat.com>

	* src/c++23/std.cc.in: Move TBB macro shenanigans after
	bits/stdc++.h.

2025-11-03  Jason Merrill  <jason@redhat.com>

	* include/precompiled/stdc++.h: Remove <cassert>.
	* testsuite/util/exception/safety.h: Add <cassert>.
	* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
	Don't define _GLIBCXX_NO_ASSERT.

2025-11-03  Jason Merrill  <jason@redhat.com>

	* include/bits/ios_base.h: Add attribs to _Ios_Fmtflags,
	_Ios_Iostate, _ios_seekdir.
	* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Remove
	unneeded cases.
	* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
	* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
	* testsuite/27_io/ios_base/types/seekdir/case_label.cc: Likewise.

2025-11-02  Jason Merrill  <jason@redhat.com>

	* src/c++23/std.cc.in: Uncomment usings for vprint_*_buffered.

2025-10-30  Jakub Jelinek  <jakub@redhat.com>

	* include/bits/version.def (is_implicit_lifetime): New.
	* include/bits/version.h: Regenerate.
	* include/std/type_traits (std::is_implicit_lifetime,
	std::is_implicit_lifetime_v): New trait.
	* src/c++23/std.cc.in (std::is_implicit_lifetime,
	std::is_implicit_lifetime_v): Export.
	* testsuite/20_util/is_implicit_lifetime/version.cc: New test.
	* testsuite/20_util/is_implicit_lifetime/value.cc: New test.

2025-10-29  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex.tcc (regex_traits::value): Use __c instead
	of __ch.

2025-10-29  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/17_intro/headers/c++2011/42319.cc: Include <ios>
	instead of <bits/char_traits.h>. Add no_pch option. Remove
	explicit -std=gnu++11 option.
	* testsuite/30_threads/thread/swap/1.cc: Include <utility>
	instead of <bits/move.h>.

2025-10-29  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119721
	* include/std/tuple (tuple<>::operator=(const _Tuple&) const)
	[__cpp_lib_ranges_zip]: Define.
	* testsuite/23_containers/tuple/cons/119721.cc: Test const
	assignment.

2025-10-29  Osama Abdelkader  <osama.abdelkader@gmail.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119721
	* include/std/tuple (tuple<>::tuple(const tuple&))
	(tuple<>::operator=(const tuple&)): Define as defaulted.
	(tuple<>::swap): Moved the defintion after assignments.
	(tuple<>::tuple(_UTuple&&))
	(tuple<>::tuple(allocator_arg_t, const _Alloc&, _UTuple&&))
	(tuple<>::operator=(_UTuple&&)) [__cpp_lib_tuple_like]: Define.
	(tuple<>::operator==, tuple<>::opeator<=>): Parenthesize
	constrains individually.
	* testsuite/23_containers/tuple/cons/119721.cc: New test for
	constructors and assignments with empty tuple-like types.
	* testsuite/20_util/tuple/requirements/empty_trivial.cc:
	New test verifying tuple<> remains trivially copyable.

2025-10-29  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/regex.tcc (regex_traits::value): Implement
	without using istringstream.
	* include/std/regex: Do not include <sstream>.

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

	PR libstdc++/122401
	* testsuite/30_threads/shared_timed_mutex/try_lock_until/116586.cc:
	Do not try to acquire locks on the thread that already holds a
	lock. Add -pthread for et pthread.

2025-10-27  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/122401
	* testsuite/20_util/shared_ptr/atomic/pr118757.cc: Add -pthread
	for et pthread.
	* testsuite/20_util/weak_ptr/pr118757.cc: Likewise.
	* testsuite/30_threads/condition_variable/members/116586.cc:
	Likewise. Only run for hosted targets with gthreads support.
	* testsuite/30_threads/future/members/116586.cc: Likewise.
	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/116586.cc:
	Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/116586.cc:
	Likewise.

2025-10-27  Matthias Kretz  <m.kretz@gsi.de>

	* include/bits/utility.h (_IotaArray): Define.
	* testsuite/ext/iotaarray.cc: New test.

2025-10-27  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/108951
	* include/bits/valarray_array.h( __valarray_get_storage): Use
	std::__new_allocator.
	(__valarray_release_memory): Likewise.
	* include/std/valarray: Pass _M_size to
	__valarray_release_memory.
	* testsuite/26_numerics/valarray/108951.cc: New test.

2025-10-27  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/util/testsuite_iterators.h (test_container): Add
	iterator and value_type typedefs.

2025-10-24  Eric Pimentel Aguiar  <eric.pimentela@gmail.com>

	* src/c++23/std.cc.in (std::strided_slice, std::full_extent_t)
	(std::full_extent, std::submdspan_mapping_result): Add std
	qualification.

2025-10-24  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/122022
	* include/std/functional (_Bind_fn_t): Use forwarding reference as
	paremeter.
	(std::not_fn<f>): Use forwarding reference as lambda parameter.
	* testsuite/20_util/function_objects/bind_back/nttp.cc: Rework tests.
	* testsuite/20_util/function_objects/bind_front/nttp.cc: Likewise.
	* testsuite/20_util/function_objects/not_fn/nttp.cc: Add test for
	argument forwarding.

2025-10-22  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/122224
	* include/bits/stl_iterator_base_funcs.h (prev): Compare
	distance as n > 0 instead of n != 0.
	* testsuite/24_iterators/range_operations/122224.cc: New test.

2025-10-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/ranges (indices::operator()): Constrain using
	__can_iota_view concept.
	* testsuite/std/ranges/indices/1.cc: Check SFINAE-friendliness
	required by expression equivalence. Replace unused <vector>
	header with <stddef.h> needed for size_t.

2025-10-22  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121748
	* include/bits/version.def: Bump value for optional,
	* include/bits/version.h: Regenerate.
	* include/std/optional (std::__is_valid_contained_type_for_optional):
	Define.
	(std::optional<T>): Use __is_valid_contained_type_for_optional.
	(optional<T>(const optional<_Up>&), optional<T>(optional<_Up>&&))
	(optional<T>::operator=(const optional<_Up>&))
	(optional<T>::operator=(optional<_Up>&&)): Replacex._M_get() with
	x._M_fwd(), and std::move(x._M_get()) with std::move(x)._M_fwd().
	(optional<T>::and_then): Remove uncessary remove_cvref_t.
	(optional<T>::_M_fwd): Define.
	(std::optional<T&>): Define new partial specialization.
	(std::swap(std::optional<T&>, std::optional<T&>)): Define.
	(std::make_optional(_Tp&&)): Add non-type template parameter.
	(std::make_optional): Use parenthesis to constructor optional.
	(std::hash<optional<T>>): Add comment.
	* testsuite/20_util/optional/make_optional-2.cc: Guarded not longer
	working example.
	* testsuite/20_util/optional/relops/constrained.cc: Expand test to
	cover optionals of reference.
	* testsuite/20_util/optional/requirements.cc: Ammend for
	optional<T&>.
	* testsuite/20_util/optional/requirements_neg.cc: Likewise.
	* testsuite/20_util/optional/version.cc: Test new value of
	__cpp_lib_optional.
	* testsuite/20_util/optional/make_optional_neg.cc: New test.
	* testsuite/20_util/optional/monadic/ref_neg.cc: New test.
	* testsuite/20_util/optional/ref/access.cc: New test.
	* testsuite/20_util/optional/ref/assign.cc: New test.
	* testsuite/20_util/optional/ref/cons.cc: New test.
	* testsuite/20_util/optional/ref/internal_traits.cc: New test.
	* testsuite/20_util/optional/ref/make_optional/1.cc: New test.
	* testsuite/20_util/optional/ref/make_optional/from_args_neg.cc:
	New test.
	* testsuite/20_util/optional/ref/make_optional/from_lvalue_neg.cc:
	New test.
	* testsuite/20_util/optional/ref/make_optional/from_rvalue_neg.cc:
	New test.
	* testsuite/20_util/optional/ref/monadic.cc: New test.
	* testsuite/20_util/optional/ref/relops.cc: New test.

2025-10-22  Osama Abdelkader  <osama.abdelkader@gmail.com>

	PR libstdc++/119721
	* include/std/tuple (tuple<>::operator==, tuple<>::operator<=>):
	Define.
	* testsuite/23_containers/tuple/comparison_operators/119721.cc:
	New test.

2025-10-20  Yuao Ma  <c8ef@outlook.com>

	* include/bits/version.def: Add ranges_indices FTM.
	* include/bits/version.h: Regenerate.
	* include/std/ranges: Implement views::indices.
	* testsuite/std/ranges/indices/1.cc: New test.

2025-10-20  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/funcwrap.h (__polyfunc::__deduce_funcref):
	Adjust signature produced for member object pointers.
	* testsuite/20_util/function_ref/deduction.cc: Update tests.

2025-10-20  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/122322
	* configure.ac (with_newlib) <*-rtems*>: Remove
	HAVE_SYS_IOCT4YL_H, _GLIBCXX_USE_LINK, _GLIBCXX_USE_READLINK,
	_GLIBCXX_USE_SYMLINK, _GLIBCXX_USE_TRUNCATE, and
	_GLIBCXX_USE_FDOPENDIR. Remove duplicates.
	* configure: Regenerate.

2025-10-18  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/119060
	* include/bits/version.def: Add observable_checkpoint at present
	allowed from C++26.
	* include/bits/version.h: Regenerate.
	* include/std/utility: Add std::observable_checkpoint().
	* src/c++23/std.cc.in: Add obervable_checkpoint () to utility.

2025-10-17  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/atomic_base.h
	(__atomic_ref_base::_S_required_alignment): Renamed from...
	(__atomic_ref_base::_S_required_aligment): Renamed.

2025-10-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/stacktrace
	(operator<<(ostream&, const stacktrace_entry&)): Improve output
	when description() or source_file() returns an empty string,
	or the stacktrace_entry is invalid. Append frame address to
	output.
	(operator<<(ostream&, const basic_stacktrace<A>&)): Use the
	size_type of the correct specialization.

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

	* python/libstdcxx/v6/printers.py (StdStacktraceEntryPrinter):
	New printer for std::stacktrace_entry.
	(StdStacktracePrinter): New printer for std::basic_stacktrace.

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

	* include/std/stacktrace (basic_stacktrace::current): Call
	_M_trim before returning.
	(basic_stacktrace::_M_trim): New member function.

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

	PR libstdc++/122293
	* include/bits/chrono.h (__to_timeout_timespec): Fix
	preprocessor condition to match the conditions under which
	callers of this function are defined.
	* include/bits/this_thread_sleep.h: Remove unused include.

2025-10-15  Chris Johns  <chrisj@rtems.org>

	* configure: Regenerate.
	* configure.ac (newlib, *-rtems*): Add HAVE_SYS_IOCTL_H,
	HAVE_SYS_STAT_H, HAVE_SYS_TYPES_H, HAVE_S_ISREG, HAVE_UNISTD_H,
	HAVE_UNLINKAT, _GLIBCXX_USE_CHMOD, _GLIBCXX_USE_MKDIR,
	_GLIBCXX_USE_CHDIR, _GLIBCXX_USE_GETCWD, _GLIBCXX_USE_UTIME,
	_GLIBCXX_USE_LINK, _GLIBCXX_USE_READLINK, _GLIBCXX_USE_SYMLINK,
	_GLIBCXX_USE_TRUNCATE and _GLIBCXX_USE_FDOPENDIR.

2025-10-14  Mike Crowe  <mac@mcrowe.com>

	PR libstdc++/116586
	* testsuite/30_threads/this_thread/sleep_for.cc: Add
	test_negative() test.
	* testsuite/30_threads/this_thread/sleep_until.cc: Make existing
	test use both system_clock and steady_clock. Add test_negative()
	test.

2025-10-14  Mike Crowe  <mac@mcrowe.com>

	PR libstdc++/116586
	* testsuite/30_threads/timed_mutex/try_lock_until/116586.cc: New
	test.

2025-10-14  Mike Crowe  <mac@mcrowe.com>

	PR libstdc++/116586
	* testsuite/30_threads/recursive_timed_mutex/try_lock_until/116586.cc:
	New test.

2025-10-14  Mike Crowe  <mac@mcrowe.com>

	PR libstdc++/116586
	* testsuite/30_threads/future/members/116586.cc: New test.

2025-10-14  Mike Crowe  <mac@mcrowe.com>

	PR libstdc++/116586
	* testsuite/30_threads/condition_variable/members/116586.cc: New
	test.

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

	PR libstdc++/116586
	* testsuite/30_threads/shared_timed_mutex/try_lock_until/116586.cc:
	New test.

2025-10-14  Mike Crowe  <mac@mcrowe.com>

	PR libstdc++/116586
	* testsuite/30_threads/semaphore/try_acquire_for.cc: Add tests.
	* testsuite/30_threads/semaphore/try_acquire_until.cc: Add
	tests.

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

	PR libstdc++/113327
	PR libstdc++/116586
	PR libstdc++/119258
	PR libstdc++/58931
	* include/bits/chrono.h (__to_timeout_timespec): New overloaded
	function templates for converting chrono types to timespec.
	* include/bits/std_mutex.h (__to_timeout_gthread_time_t): New
	function template for converting time_point to __gthread_time_t.
	* include/bits/this_thread_sleep.h (sleep_for): Use
	__to_timeout_timespec.
	(__sleep_for): Remove namespace-scope declaration.
	* include/std/condition_variable: Likewise.
	* include/std/mutex: Likewise.
	* include/std/shared_mutex: Likewise.
	* src/c++11/thread.cc (limit): New helper function.
	(__sleep_for): Use limit to prevent overflow when converting
	chrono::seconds to time_t, unsigned, or chrono::milliseconds.
	* src/c++20/atomic.cc: Use __to_timeout_timespec and
	__to_timeout_gthread_time_t for timeouts.
	* testsuite/30_threads/this_thread/113327.cc: New test.

2025-10-14  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/format (_M_format_range): Remove unused local type
	alias _String.

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

	* include/bits/hashtable.h: Check specific feature test macros
	instead of checking thevalue of __cplusplus.
	* include/bits/stl_map.h: Likewise.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/stl_tree.h: Likewise.
	* include/bits/unordered_map.h: Likewise.
	* include/bits/unordered_set.h: Likewise.
	* include/debug/map.h: Likewise.
	* include/debug/multimap.h: Likewise.
	* include/debug/multiset.h: Likewise.
	* include/debug/set.h: Likewise.
	* include/debug/unordered_map: Likewise.
	* include/debug/unordered_set: Likewise.

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

	PR libstdc++/122255
	* src/c++17/fs_path.cc (path::_List::_Impl::~_Impl): Define
	destructor.
	(path::_List::_Impl::copy): Use create_unchecked.
	(path::_List::_Impl): Add static assertions.
	(path::_List::_Impl::create): New static member function.
	(path::_List::_Impl::create_unchecked): Likewise.
	(path::_List::_Impl_deleter::operator()): Use destructor.
	(path::_List::reserve): Use create.

2025-10-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/format (__format::__write_escape_seqs)
	(__format::_Escaping_sink): Define.
	(__format::__write_escaped_unicode_part): Extract from
	__format::__write_escaped_unicode.
	(__format::__write_escaped_unicode): Forward to
	__write_escaped_unicode_part.
	(__formatter_str::_M_format_range): Use _Escaping sink.
	* testsuite/std/format/ranges/string.cc: New tests for
	character which codepoints will be split in buffer and
	escaping. Invoked test_padding.

2025-10-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/118757
	* include/bits/shared_ptr_atomic.h (_Atomic_count::_M_wait_unlock):
	Add parameter capturing reference to _M_ptr. Reimplement in terms
	of __atomic_wait_address.
	(_Atomic_count::~_Atomic_count, _Atomic_count::lock)
	(_Atomic_count::unlock, _Atomic_count::_M_swap_unlock): Replace
	invocation of atomic member funcitons with __atomic builtins.
	(_Atomic_count::notify_one, _Atomic_count::notify_all):
	Use __atomic_notify_address.
	(_Sp_atomic::element_type): Define.
	(_Sp_atomic::_M_val): Change type to uintptr_t.
	(_Sp_atomic::wait): Pass _M_ptr to _M_wait_unlock.
	* python/libstdcxx/v6/printers.py:
	* testsuite/20_util/shared_ptr/atomic/pr118757.cc: New test.
	* testsuite/20_util/weak_ptr/pr118757.cc: New test.

2025-10-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/122267
	* include/bits/atomic_base.h
	(__atomic_ref_base<const _Tp>::_S_required_alignment):
	Use __alignof__	instead of alignof.

2025-10-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/time/month_day/io.cc: New formatting tests.
	* testsuite/std/time/month_day_last/io.cc: Likewise.
	* testsuite/std/time/month_weekday/io.cc: Likewise.
	* testsuite/std/time/month_weekday_last/io.cc: Likewise.
	* testsuite/std/time/weekday_indexed/io.cc: Likewise.
	* testsuite/std/time/weekday_last/io.cc: Likewise.
	* testsuite/std/time/year_month/io.cc: Likewise.

2025-10-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_iterator_base_funcs.h (advance): Fix comment.

2025-10-13  Yuao Ma  <c8ef@outlook.com>

	* include/bits/atomic_base.h: Implement address().
	* include/bits/version.def: Bump version number.
	* include/bits/version.h: Regenerate.
	* testsuite/29_atomics/atomic_ref/address.cc: New test.

2025-10-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/unicode.h (_Utf_view::_M_read_reverse_utf16):
	Fix check for high surrogate preceding low surrogate.
	* testsuite/ext/unicode/view.cc: Check unpaired low surrogates.

2025-10-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/unicode.h (__is_single_code_unit): Fix check for
	7-bit ASCII characters.

2025-10-11  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/xml/manual/build_hacking.xml: Update Autoconf manual link.
	* doc/html/manual/appendix_porting.html: Regenerate.

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

	PR libstdc++/122172
	* include/bits/shared_ptr_base.h (_Sp_counted_base): Define
	_Unsigned_count_type for make_unsigned<_Atomic_word>.
	Replace __int_traits<_Atomic_word> with equivalent expression.
	* include/ext/atomicity.h (_GLIBCXX_UNSIGNED_ATOMIC_WORD):
	Define macro for unsigned type to use for arithmetic.
	(__exchange_and_add_single, __atomic_add_single): Use it.

2025-10-10  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/time/month_day_last/io.cc: Remove TODO comments
	for test_parse().
	* testsuite/std/time/month_weekday/io.cc: Likewise.
	* testsuite/std/time/month_weekday_last/io.cc: Likewise.
	* testsuite/std/time/weekday_indexed/io.cc: Likewise.
	* testsuite/std/time/weekday_last/io.cc: Likewise.
	* testsuite/std/time/year_month_day_last/io.cc: Likewise.
	* testsuite/std/time/year_month_weekday/io.cc: Likewise.
	* testsuite/std/time/year_month_weekday_last/io.cc: Likewise.

2025-10-10  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121790
	* include/bits/chrono_io.h (enable_nonlocking_formatter_optimization):
	Adjust specializations for duration, hh_mm_ss and time_points.
	* include/std/format (enable_nonlocking_formatter_optimization):
	Apply remove_cvref_t on pair and tuple elements.
	* include/std/queue (enable_nonlocking_formatter_optimization):
	Change specialization value to false.
	* include/std/stack (enable_nonlocking_formatter_optimization):
	Change specialization value to false.
	* testsuite/std/format/ranges/adaptors.cc: Adjusted tests.
	* testsuite/std/format/tuple.cc: Adjusted tests.
	* testsuite/std/time/format/nonlocking.cc: Adjusted tests.

2025-10-10  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121790
	* include/bits/chrono_io.h
	(enable_nonlocking_formatter_optimization): Define specializations
	for chrono types.
	* include/bits/version.def (print): Bump.
	* include/bits/version.h: Regenerate.
	* include/std/format (enable_nonlocking_formatter_optimization):
	Define specializations for pair, tuple and ranges.
	* include/std/queue (enable_nonlocking_formatter_optimization):
	Define specializations for queue and priority_queue.
	* include/std/stack (enable_nonlocking_formatter_optimization):
	Define specialization for stack.
	* include/std/stacktrace (enable_nonlocking_formatter_optimization):
	Define specialization for basic_stacktrace and stacktrace_entry.
	* include/std/thread (enable_nonlocking_formatter_optimization):
	Define specialization for thread::id.
	* include/std/vector (enable_nonlocking_formatter_optimization):
	Define specialization for vector<bool>::reference.
	* testsuite/23_containers/vector/bool/format.cc: Test value of
	enable_nonlocking_formatter_optimization.
	* testsuite/30_threads/thread/id/output.cc: Likewise.
	* testsuite/std/format/ranges/adaptors.cc: Likewise.
	* testsuite/std/format/ranges/formatter.cc: Likewise.
	* testsuite/std/format/tuple.cc: Likewise.
	* testsuite/std/time/format/empty_spec.cc: Extract Rep class
	to custom_rep.h.
	* testsuite/std/time/format/custom_rep.h: Extracted from
	empty_spec.cc.
	* testsuite/std/time/format/nonlocking.cc: New test.

2025-10-10  Jonathan Wakely  <jwakely@redhat.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121790
	* acinclude.m4 (GLIBCXX_CHECK_STDIO_LOCKING): New macro to check
	for std::print dependencies.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Use GLIBCXX_CHECK_STDIO_LOCKING.
	* include/bits/formatfwd.h (enable_nonlocking_formatter_optimization):
	Define new variable template.
	* include/bits/version.def (print): Bump value.
	* include/bits/version.h: Regenerate.
	* include/std/format (enable_nonlocking_formatter_optimization):
	Define specializations for variable template.
	* include/std/ostream (print) [!_WIN32]: Do not use
	vprint_unicode at all.
	(println): Append newline to format string instead of formatting
	twice.
	* include/std/print (_File_sink): New class.
	(vprint_nonunicode_locking): New function.
	(vprint_unicode_locking): New function reusing previous code
	from vprint_unicode.
	(vprintf_unicode): Defer to vprint_nonunicode for Windows or to
	vprint_unicode_locking otherwise.
	(print): [!_WIN32]: Do no use vprint_unicode at all.
	Check enable_nonlocking_formatter_optimization and defer to
	either vprint_nonunicode_locking or vprint_nonunicode.
	(println): Use vprint_unicode or format directly to a _File_sink
	instead of formatting twice.
	* testsuite/27_io/print/1.cc: Updated and added new tests.
	* testsuite/std/format/formatter/nonlocking.cc: New tests.

2025-10-10  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/115402
	* include/bits/atomic_base.h (__atomic_ref_base<const _Tp>)
	(__atomic_ref_base<_Tp>): Define by extracting common methods
	from atomic_ref specializations.
	(__atomic_ref<_Tp, In, Fp, Pt>): Inherit from __atomic_ref_base
	and remove extracted method.
	(__atomic_ref<const _Tp, In, Fp, Pt>): Define.
	* include/std/atomic (std::atomic): Added an
	* testsuite/29_atomics/atomic/requirements/types_neg.cc:
	Add test for volatile qualified types.
	* testsuite/29_atomics/atomic_ref/bool.cc: Move the content
	to op_support.cc, add test for bool.
	* testsuite/29_atomics/atomic_ref/op_support.cc: New test
	expanded from atomic_ref/bool.cc.
	* testsuite/29_atomics/atomic_ref/cv_qual.cc: New test.
	* testsuite/29_atomics/atomic_ref/requirements_neg.cc: New test.
	* testsuite/29_atomics/atomic_ref/deduction.cc: Add tests for
	cv-qualified types.
	* testsuite/29_atomics/atomic_ref/float.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/requirements.cc: Likewise.
	* testsuite/29_atomics/atomic_ref/wait_notify.cc: Add tests for
	const qualified types.

2025-10-10  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121929
	* include/bits/chrono_io.h (_ChronoData::_M_fill_aux)
	(_ChronoData::_M_fill_aux): Add comment documenting precondition.
	(formatter<chrono::year_month_day, _CharT>::format): Compute
	local_days inline.
	(formatter<chrono::year_month_day_last, _CharT>::format)
	(formatter<chrono::year_month_weekday, _CharT>::format)
	(formatter<chrono::year_month_weekday_last, _CharT>::format):
	Change how the _M_day field is computed.
	* testsuite/std/time/year_month_weekday/io.cc: Adjust tests.

2025-10-09  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/hashtable.h (_Hashtable::_S_nothrow_move): Use
	diagnostic pragmas to allow constexpr if in C++14. Use value
	member instead of operator().

2025-10-09  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/version.tpl: Fix comment on #endif. Tweak
	description of when macros are defined.
	* include/bits/version.h: Regenerate.

2025-10-09  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/time/year_month_day_last/io.cc: New formatting tests.
	* testsuite/std/time/year_month_weekday/io.cc: Likewise.
	* testsuite/std/time/year_month_weekday_last/io.cc: Likewise.

2025-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2017.xml: Replace broken link to PSTL
	upstream.
	* doc/xml/manual/status_cxx2020.xml: Likewise.
	* doc/html/manual/status.html: Regenerate.

2025-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* config/cpu/i486/atomicity.h: Removed.

2025-10-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/122172
	* config/cpu/cris/atomicity.h: Removed.

2025-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/indirect.h (indirect::operator=(indirect&&)):
	Move assign allocator when POCMA is true.
	(polymorphic::operator=(polymorphic&&)): Likewise.
	* testsuite/std/memory/indirect/copy.cc: Remove constexpr from
	functions that use tracker_allocator. Add test_constexpr().
	* testsuite/std/memory/indirect/copy_alloc.cc: Remove constexpr
	from all functions and remove static_assert.
	* testsuite/std/memory/indirect/ctor.cc: Do not use
	scoped_allocator_adaptor during constant evaluation.
	* testsuite/std/memory/indirect/move.cc: Remove constexpr from
	functions that use tracker_allocator. Add test_constexpr().
	* testsuite/std/memory/indirect/move_alloc.cc: Remove constexpr
	from all functions and remove static_assert.
	* testsuite/std/memory/indirect/relops.cc: Invoke lambda in
	static_assert.
	* testsuite/std/memory/polymorphic/copy.cc: Remove constexpr
	from functions that use tracker_allocator. Add test_constexpr().
	* testsuite/std/memory/polymorphic/copy_alloc.cc: Remove
	constexpr from all functions and remove static_assert.
	* testsuite/std/memory/polymorphic/ctor.cc: Do not use
	scoped_allocator_adaptor during constant evaluation.
	* testsuite/std/memory/polymorphic/ctor_poly.cc: Likewise.
	* testsuite/std/memory/polymorphic/move.cc: Remove constexpr
	from functions that use tracker_allocator. Add test_constexpr().
	* testsuite/std/memory/polymorphic/move_alloc.cc: Remove
	constexpr from all functions and remove static_assert.
	* testsuite/util/testsuite_allocator.h (tracker_allocator):
	Remove redundant 'inline' from friend.
	(uneq_allocator): Make all functions constexpr.
	(uneq_allocator::base, uneq_allocator::swap_base): Remove.
	(uneq_allocator::~uneq_allocator): Remove.
	(uneq_allocator::allocate, uneq_allocator::deallocate): Do not
	use map of allocations during constant evaluation.
	(propagating_allocator): Make all functions constexpr.
	(propagating_allocator::base): Remove.
	(propagating_allocator::swap_base): Simplify.
	(ExplicitConsAlloc, CustomPointerAlloc, NullablePointer): Add
	constexpr to all functions.

2025-10-08  Jakub Jelinek  <jakub@redhat.com>

	* include/bits/unicode-data.h: Regenerate.
	* testsuite/ext/unicode/properties.cc: Test __is_extended_pictographic
	on U+1F004 rather than U+1F000.

2025-10-08  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h (_ChronoData::_M_fill_day): Replace
	'%' by '/'.

2025-10-08  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/std/time/format/format.cc: Include <vector>.

2025-10-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/std/mdspan (submdspan_mapping_result): New class.
	* src/c++23/std.cc.in (submdspan_mapping_result): Add.

2025-10-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/std/mdspan (full_extent_t): New class.
	* src/c++23/std.cc.in (full_extent_t): Add.

2025-10-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/bits/version.def (submdspan): New internal macro.
	* include/bits/version.h: Regenerate.
	* include/std/mdspan (strided_slice): New class.
	* src/c++23/std.cc.in (strided_slice): Add.
	* testsuite/23_containers/mdspan/submdspan/strided_slice.cc: New test.
	* testsuite/23_containers/mdspan/submdspan/strided_slice_neg.cc: New test.

2025-10-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__mdspan::__index_type_cast): Optimize by
	skipping a __glibcxx_assert if it's know at compile-time.
	(std::layout_left_padded, std::layout_righ_padded): Reorder
	is_always_strided and is_unique member functions.
	* testsuite/23_containers/mdspan/int_like.h: Rename _M_i to
	value.

2025-10-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/std/mdspan (_RightPaddedIndices): Traits for right
	padded layouts.
	(layout_right::mapping::mapping) New overload for right padded
	layouts.
	(layout_right_padded): Add implementation.
	* src/c++23/std.cc.in (layout_right_padded): Add.
	* testsuite/23_containers/mdspan/layouts/ctors.cc: Update
	test for right padded layouts.
	* testsuite/23_containers/mdspan/layouts/empty.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/mapping.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/padded.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/padded_neg.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/padded_traits.h: Ditto.

2025-10-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/110352
	* include/bits/version.def (padded_layouts): Add new internal
	feature testing macro.
	* include/bits/version.h: Regenerate.
	* include/std/mdspan (__fwd_prod): New overload.
	(layout_left_padded): Add declaration and implementation.
	(layout_right_padded): Add declaration only.
	(layout_left::mapping::mapping): New overload for left
	padded mappings.
	(__index_type_cast): New function that performs a checked cast
	to index_type.
	(__is_left_padded_mapping): New concept.
	(__is_right_padded_mapping): Ditto.
	(__standardized_mapping): Recognize left and right padded
	mappings.
	(_LeftPaddedIndices): Traits for left padded details.
	(_PaddedStorage): New class for implementing padded layouts.
	* src/c++23/std.cc.in (layout_left_padded): Add.
	* testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc:
	Refactor and add tests for layout_left_padded.
	* testsuite/23_containers/mdspan/layouts/ctors.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/empty.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/mapping.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/padded.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/padded_neg.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/padded_traits.h: New
	traits.

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

	* configure.host: Fix spelling in comment.

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

	* include/ext/ropeimpl.h (rope::_S_fetch): Initialize variable.

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

	* include/bits/sat_arith.h (mul_sat): Add parentheses around
	operands.

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

	* testsuite/std/time/parse/parse.cc: Initialize variable.

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

	* testsuite/20_util/shared_ptr/cons/move.cc: Add comment and
	dg-prune-output for -Wpessimizing-move warning.
	* testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc:
	Likewise.

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

	* include/bits/random.h (philox_engine(result_type)): Reorder
	ctor-initializer-list to match declaration order.

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

	* include/bits/basic_string.h (basic_string::_M_check): Cast
	size_type arguments to size_t.

2025-10-05  Sam James  <sam@gentoo.org>

	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* doc/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* libsupc++/Makefile.in: Regenerate.
	* po/Makefile.in: Regenerate.
	* python/Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++17/Makefile.in: Regenerate.
	* src/c++20/Makefile.in: Regenerate.
	* src/c++23/Makefile.in: Regenerate.
	* src/c++26/Makefile.in: Regenerate.
	* src/c++98/Makefile.in: Regenerate.
	* src/experimental/Makefile.in: Regenerate.
	* src/filesystem/Makefile.in: Regenerate.
	* src/libbacktrace/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

2025-10-03  Tomasz Kamiński  <tkaminsk@redhat.com>

	* doc/html/manual/index.html: Regenerated.
	* doc/html/manual/status.html: Regenerated.
	* doc/xml/manual/status_cxx2020.xml: Added status table.

2025-10-01  François Dumont  <frs.dumont@gmail.com>

	* include/std/vector (std::erase_if, std::erase): Replace _GLIBCXX20_CONSTEXPR
	with 'constexpr' and remove implied 'inline' keyword.
	* include/std/string (std::erase_if, std::erase): Likewise.

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

	* testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc: Use
	wcslen(cs) instead of sizeof(cs)-1.

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

	* testsuite/20_util/unique_ptr/modifiers/93562.cc: Define a
	separate deleter for array cases.

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

	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc
	(Cvt::do_length): Fix signature to override virtual function in
	base.
	* testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc:
	(Cvt::do_length): Likewise.
	* testsuite/27_io/basic_filebuf/underflow/char/1.cc
	(NoconvCvt::do_in): Likewise.
	* testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc
	(checksumcvt::do_length): Likewise.

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

	* testsuite/22_locale/time_get/get/char/3.cc: Add parentheses to
	x == y|z expression.
	* testsuite/22_locale/time_get/get/wchar_t/3.cc: Likewise.
	* testsuite/28_regex/algorithms/regex_match/multiline.cc:
	Likewise.

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

	* include/bits/stl_uninitialized.h (uninitialized_copy)
	(uninitialized_fill, uninitialized_fill_n): Use pragmas to
	suppress -Wclass-memaccess warnings.

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

	* testsuite/std/memory/polymorphic/copy.cc: Fix spelling of
	typedef.

2025-09-30  François Dumont  <frs.dumont@gmail.com>

	* include/std/inplace_vector:
	(std::swap(inplace_vector<>&, inplace_vector<>&)): Remove the duplicated
	implementation at std namespace level. Keep the friend inline one.
	(inplace_vector<Tp, 0>::assign(initializer_list<>)): Add missing return
	statement.

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

	* testsuite/20_util/allocator_traits/members/allocate_hint.cc:
	Value-initialize variables to avoid -Wmaybe-uninitialized
	warning.
	* testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc:
	Likewise.
	* testsuite/20_util/duration/114244.cc: Likewise.
	* testsuite/20_util/duration/io.cc: Likewise.

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

	* include/bits/deque.tcc (deque::_M_shrink_to_fit): Cast
	difference_type to size_type to avoid -Wsign-compare warning.
	* include/std/spanstream (basic_spanbuf::seekoff): Cast
	streamoff to size_t to avoid -Wsign-compare warning.

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

	* testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
	Fix assignment used instead of equality comparison.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc:
	Likewise.
	* testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc:
	Likewise.
	* testsuite/23_containers/map/cons/from_range.cc: Fix is_equal
	function and expected value of comparison functions after
	construction.
	* testsuite/23_containers/multimap/cons/from_range.cc: Likewise.
	* testsuite/23_containers/multiset/cons/from_range.cc: Likewise.
	* testsuite/23_containers/set/cons/from_range.cc: Likewise.
	* testsuite/23_containers/unordered_map/cons/from_range.cc: Fix
	is_equal functions.
	* testsuite/23_containers/unordered_multimap/cons/from_range.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/cons/from_range.cc:
	Likewise.
	* testsuite/23_containers/unordered_set/cons/from_range.cc:
	Likewise.
	* testsuite/25_algorithms/minmax/constrained.cc: Fix assignment
	used instead of equality comparison.
	* testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc:
	Likewise.

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

	* include/bits/stl_algobase.h (__search, __is_permutation):
	Reuse predicate instead of creating a new one each time.
	* include/bits/stl_algo.h (__is_permutation): Likewise.

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

	* include/std/deque (erase_if): Move predicate instead of
	wrapping with std::ref.
	(erase): Forward to erase_if.
	* include/std/inplace_vector (erase_if, erase): Likewise.
	* include/std/string (erase_if, erase): Likewise.
	* include/std/vector (erase_if, erase): Likewise.

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

	* include/bits/predefined_ops.h (equal_to, less): Define aliases
	for std::equal_to<void> and std::less<void>.
	(bind1st, bind2nd, not1, __equal_to): New object generator
	functions for adapting predicates.
	(__iter_less_iter, __iter_less_val, __iter_comp_val)
	(__val_less_iter, __val_comp_iter, __iter_equal_to_iter)
	(__iter_equal_to_val, __iter_comp_iter, __negate): Remove all
	object generator functions and the class templates they return.
	* include/bits/stl_algo.h (__move_median_to_first, __find_if_not)
	(__find_if_not_n, __search_n_aux, find_end, find_if_not)
	(__remove_copy_if, remove_copy, remove_copy_if, remove)
	(remove_if, __adjacent_find, __unique, unique, __unique_copy)
	(__unique_copy_1, __stable_partition_adaptive, stable_partition)
	(__heap_select, __partial_sort_copy, partial_sort_copy)
	(__unguarded_linear_insert, __insertion_sort)
	(__unguarded_insertion_sort, __unguarded_partition)
	(lower_bound, __upper_bound, upper_bound, __equal_range)
	(equal_range, binary_search, __move_merge_adaptive)
	(__move_merge_adaptive_backward, __merge_adaptive_resize)
	(__merge_without_buffer, inplace_merge, __move_merge)
	(__includes, includes, __next_permutation, next_permutation)
	(__prev_permutation, prev_permutation, __replace_copy_if)
	(replace_copy, replace_copy_if, __is_sorted_until)
	(is_sorted_until, __minmax_element, minmax_element, minmax)
	(is_permutation, __is_permutation, find, find_if, adjacent_find)
	(count, count_if, search, search_n, unique_copy, partial_sort)
	(nth_element, sort, __merge, merge, stable_sort, __set_union)
	(set_union, __set_intersection, set_intersection)
	(__set_difference, set_difference, __set_symmetric_difference)
	(set_symmetric_difference, __min_element, min_element)
	(__max_element, max_element, min, max): Use direct predicates
	instead of __iter_equal_to_iter, __iter_comp_iter, and
	__iter_less_iter, __negate etc. Dereference iterators when
	invoking predicates.
	* include/bits/stl_algobase.h (__lexicographical_compare_impl)
	(__lexicographical_compare::__lc, __lower_bound, lower_bound)
	(lexicographical_compare, __mismatch, mismatch, __find_if)
	(__count_if, __remove_if, __search, __is_permutation)
	(is_permutation, search): Likewise.
	* include/bits/stl_function.h (equal_to<void>, less<void>):
	Define transparent comparison functions for C++98 and C++11.
	* include/bits/stl_heap.h (__is_heap_until, __is_heap)
	(__push_heap, push_heap, __adjust_heap, pop_heap, make_heap)
	(sort_heap, is_heap_until, is_heap): Likewise.
	* include/std/deque (erase_if): Remove call to __pred_iter.
	(erase): Replace __iter_equals_val with __equal_to.
	* include/std/inplace_vector (erase_if, erase): Likewise.
	* include/std/string (erase_if, erase): Likewise.
	* include/std/vector (erase_if, erase): Likewise.

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

	PR libstdc++/122062
	* include/bits/random.tcc (__detail::__normalize): Use void cast
	for operands of comma operator.
	(piecewise_linear_distribution): Likewise.
	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/122062.cc:
	New test.

2025-09-25  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__static_quotient): New overload.

2025-09-25  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_algo.h: Check robust_nonmodifying_seq_ops
	feature test macro instead of checking __cplusplus value. Add
	comment to another __cplusplus check.
	* include/bits/stl_algobase.h: Add comment to #endif.

2025-09-25  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/79147
	PR libstdc++/103650
	* include/Makefile.am (c++config.h): Adjust sed command to
	comment out STDC_HEADERS macro.
	* include/Makefile.in: Regenerate.

2025-09-25  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* testsuite/23_containers/mdspan/layouts/empty.cc: Fix indent.
	* testsuite/23_containers/mdspan/layouts/mapping.cc
	(test_stride_1d): Fix test.
	(test_stride_2d): Rewrite using a struct.
	(test_stride_3d): Ditto.
	(has_static_is_exhaustive): New concept.
	(test_mapping_properties): Update test.

2025-09-24  Luc Grosheintz  <luc.grosheintz@gmail.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/20_util/function_objects/not_fn/nttp.cc: Move
	test of feature testing macro to version.cc
	* testsuite/20_util/function_objects/not_fn/version.cc: New test.

2025-09-24  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h (__formatter_duration::_S_spec_for_tp):
	Extracted from defition of formatter<sys_time>::__defSpec.
	(formatter<chrono::sys_time<_Duration>, _CharT>::parse): Simplify
	condition in if contexpr.
	(formatter<chrono::sys_time<_Duration>, _CharT>::__stream_insertable):
	Remove.
	(formatter<chrono::sys_time<_Duration>, _CharT>::__defSpec)
	(formatter<chrono::local_time<_Duration>, _CharT>::__defSpec):
	Compute using __formatter_duration::_S_spec_for_tp.
	(forrmatter<chrono::sys_time<_Duration>, _CharT>::parse): Check if
	parse _M_chrono_spec
	* testsuite/std/time/format/empty_spec.cc: Extend tests for floating
	point and other non-streamable durations (years).

2025-09-24  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h (__formatter_chrono::_M_parse):
	Replace _ParseContext with basic_format_parse_context<_CharT> and
	make it non-template.
	(__formatter_duration::_M_parse): Replace _ParseContext with
	basic_format_parse_context<_CharT> and remove unused default
	argument.

2025-09-24  Patrick Palka  <ppalka@redhat.com>

	* testsuite/17_intro/names.cc: Undefine 'u' on s390*-linux.

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

	* include/bits/random.h: Include <bits/ios_base.h> instead of
	<iomanip>. Change preprocessor checks to use internal feature
	test macro.
	(philox_engine): Reword doxygen comments. Use typename instead
	of class in template parameter lists. Reformat and adjust
	whitespace.
	(philox_engine::_If_seed_seq): Replace alias template with
	__is_seed_seq variable template.
	(philox_engine::philox_engine(result_type)): Define inline.
	(philox_engine::seed(result_type), philox_engine::set_counter)
	(philox_engine::operator(), philox_engine::discard): Likewise.
	(operator==): Define as defaulted.
	(operator<<): Reuse widened char.
	* include/bits/random.tcc: Reformat and adjust whitespace.
	(philox_engine::_M_philox): Use std::array copy constructor and
	std::array::fill instead of looping.
	* testsuite/26_numerics/random/philox4x32.cc: Gate test on
	feature test macro. Add static_assert to check typedef.
	* testsuite/26_numerics/random/philox4x64.cc: Likewise.
	* testsuite/26_numerics/random/philox_engine/cons/copy.cc: Add
	VERIFY assertions to check copies are equal. Test different
	seeds.
	* testsuite/26_numerics/random/philox_engine/cons/default.cc:
	Add VERIFY assertions to check construction results.
	* testsuite/26_numerics/random/philox_engine/cons/seed.cc:
	Likewise.
	* testsuite/26_numerics/random/philox_engine/operators/equal.cc:
	Also test inequality.
	* testsuite/26_numerics/random/philox_engine/operators/serialize.cc:
	Remove redundant include and return.
	* testsuite/26_numerics/random/philox_engine/requirements/constants.cc:
	Check values of all constants.
	* testsuite/26_numerics/random/philox_engine/requirements/typedefs.cc:
	Check typedefs are correct.
	* testsuite/26_numerics/random/philox_engine/cons/119794.cc:
	Removed.
	* testsuite/26_numerics/random/philox_engine/cons/seed_seq.cc:
	Removed.
	* testsuite/26_numerics/random/philox_engine/operators/inequal.cc:
	Removed.
	* testsuite/26_numerics/random/philox_engine/requirements/constexpr_data.cc:
	Removed.
	* testsuite/26_numerics/random/philox_engine/requirements/constexpr_functions.cc:
	Removed.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	line number.

2025-09-23  1nfocalypse  <1nfocalypse@protonmail.com>

	PR libstdc++/119794
	* include/bits/random.h (philox_engine): Define.
	* include/bits/random.tcc (philox_engine): Define member
	functions.
	* include/bits/version.def (philox_engine): New macro.
	* include/bits/version.h: Regenerated.
	* include/std/random: Define __glibcxx_want_philox_engine and
	include <bits/version.h>.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	line number.
	* testsuite/26_numerics/random/philox4x32.cc: New test.
	* testsuite/26_numerics/random/philox4x64.cc: New test.
	* testsuite/26_numerics/random/philox_engine/cons/119794.cc: New test.
	* testsuite/26_numerics/random/philox_engine/cons/copy.cc: New test.
	* testsuite/26_numerics/random/philox_engine/cons/default.cc: New test.
	* testsuite/26_numerics/random/philox_engine/cons/seed.cc: New test.
	* testsuite/26_numerics/random/philox_engine/cons/seed_seq.cc: New test.
	* testsuite/26_numerics/random/philox_engine/operators/equal.cc: New test.
	* testsuite/26_numerics/random/philox_engine/operators/inequal.cc: New test.
	* testsuite/26_numerics/random/philox_engine/operators/serialize.cc: New test.
	* testsuite/26_numerics/random/philox_engine/requirements/constants.cc: New test.
	* testsuite/26_numerics/random/philox_engine/requirements/constexpr_data.cc: New test.
	* testsuite/26_numerics/random/philox_engine/requirements/constexpr_functions.cc: New test.
	* testsuite/26_numerics/random/philox_engine/requirements/typedefs.cc: New test.

2025-09-23  Ben Wu  <soggysocks206@gmail.com>

	PR libstdc++/118087
	* include/bits/deque.tcc: Use _Temporary_value in
	_M_emplace_aux.
	* include/bits/stl_deque.h: Introduce _Temporary_value.
	* testsuite/23_containers/deque/modifiers/emplace/118087.cc:
	New test.

2025-09-23  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121940
	* include/bits/funcwrap.h (__polyfunc::__deduce_funcref): Return void
	for ill-formed constructs.
	(function_ref(nontype_t<__f>, _Tp&&)): Constrain on __deduce_funcref
	producing non-void results.
	* testsuite/20_util/function_ref/deduction.cc: Negative tests.

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

	PR libstdc++/79147
	* include/Makefile.am (c++config.h): Adjust sed command to
	comment out all PACKAGE_XXX macros and to avoid adjusting
	PACKAGE_VERSION twice.
	* include/Makefile.in: Regenerate.

2025-09-23  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h (formatter<chrono::utc_time, _CharT>):
	(formatter<chrono::gps_time<_Duration>, _CharT>)
	(formatter<chrono::tai_time<_Duration>, _CharT): Remove
	__formatter_chrono base class.

2025-09-22  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h(__formatter_chrono::_M_parse): Update
	needed flags for %g, %G, %V, %U, %W.
	(__formatter_chrono::_M_format_to): Change how %V is handled.
	(__formatter_chrono::_M_g_G): Merged into _M_g_G_V.
	(__formatter_chrono::_M_g_G_V): Reworked from _M_g_G.
	(__formatter_chrono::_M_U_V_W): Changed into _M_U_V.
	(__formatter_chrono::_M_U_W): Reworked implementation.
	* testsuite/std/time/year_month_day/io.cc: New tests.

2025-09-22  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/106658
	* include/bits/stl_construct.h (std::start_lifetime_as_array)
	(std::start_lifetime_as): Moved from std/memory, with update
	to guard macros.
	* include/std/memory (std::start_lifetime_as_array)
	(std::start_lifetime_as): Moved to bits/stl_construct.h.

2025-09-19  Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/119744
	* include/bits/version.def: Redefine __cpp_lib_bind_front etc.
	* include/bits/version.h: Ditto.
	* include/std/functional: Add new bind_front etc. overloads
	* testsuite/20_util/function_objects/bind_back/1.cc:
	Check plumbing better
	* testsuite/20_util/function_objects/bind_back/nttp.cc: New test.
	* testsuite/20_util/function_objects/bind_back/nttp_neg.cc: New test.
	* testsuite/20_util/function_objects/bind_front/1.cc:
	Check plumbing better
	* testsuite/20_util/function_objects/bind_front/nttp.cc: New test.
	* testsuite/20_util/function_objects/bind_front/nttp_neg.cc: New test.
	* testsuite/20_util/function_objects/not_fn/nttp.cc: New test.
	* testsuite/20_util/function_objects/not_fn/nttp_neg.cc: New test.
	* testsuite/20_util/headers/functional/synopsis.cc: New decls.

2025-09-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/chrono_io.h: Remove unused <iomanip> header.
	(operator<<): Constrain overload for chrono::local_time.
	* testsuite/std/time/clock/local/io.cc: Check constraints.

2025-09-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/version.def (start_lifetime_as): Move adjacent to
	other C++23 macros.
	* include/bits/version.h: Regenerate.

2025-09-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/106658
	* include/bits/version.def: Implement C++23 P2590R2 - Explicit
	lifetime management.
	(start_lifetime_as): New.
	* include/bits/version.h: Regenerate.
	* include/std/memory (std::start_lifetime_as,
	std::start_lifetime_as_array): New function templates.
	* src/c++23/std.cc.in (std::start_lifetime_as,
	std::start_lifetime_as_array): Export.
	* testsuite/std/memory/start_lifetime_as/start_lifetime_as.cc: New test.

2025-09-17  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/111861
	* include/bits/ranges_algo.h (ranges::unique_copy): When
	initializing a value type object from *iter, use
	direct-initialization and don't use a deduced type.
	(ranges::push_heap): Use direct-initialization when initializing
	a value type object from ranges::iter_move.
	(ranges::max): As in ranges::unique_copy.
	* include/bits/ranges_util.h (ranges::min): Likewise.

2025-09-17  Patrick Palka  <ppalka@redhat.com>

	* testsuite/20_util/bind/dangling_ref.cc: Compile with
	-Wsystem-headers.
	* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/lwg4148.cc: Likewise.
	* testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
	Likewise.
	* testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
	Likewise.

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

	* include/std/ranges (__detail::__repeated_tuple): Use
	__make_tuple helper alias directly, instead of doing overload
	resolution on std::tuple_cat.
	* include/std/tuple (__make_tuple_impl): Remove.
	(__do_make_tuple): Replace recursion with _Index_tuple and pack
	expansion.
	(__make_tuple): Adjust to new __do_make_tuple definition.
	(__combine_tuples<tuple<T1s...>, tuple<T2s...>, Rem...>): Replace
	with a partial specialization for exactly two tuples and a
	partial specialization for three or more tuples.

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

	PR libstdc++/121913
	* include/bits/ranges_algo.h (__rotate_fn::operator()): Use
	auto_value_t<_Iter> instead of deduced type.

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

	PR libstdc++/121956
	* include/std/ranges (adjacent_view::_Iterator::value_type):
	Always define as std::tuple<T, N>, not std::pair<T, T>.
	* testsuite/std/ranges/adaptors/adjacent/1.cc: Check value type
	of views::pairwise.

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

	* include/bits/stl_uninitialized.h (uninitialized_move)
	(uninitialized_move_n): Replace _GLIBCXX_MAKE_MOVE_ITERATOR with
	std::make_move_iterator.

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

	PR libstdc++/119820
	* include/bits/ranges_algo.h (__shuffle_fn): Use
	ranges::distance to get difference type value to add to
	iterator.
	* include/std/format (__formatter_str::_M_format_range):
	Use ranges::next to increment iterator by a size_t value.

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

	PR libstdc++/121917
	* include/bits/ranges_algo.h (__shuffle_fn::operator()): Only
	consider the two-at-a-time PRNG optimization if the range is
	sized.
	* testsuite/25_algorithms/shuffle/constrained.cc (test03): New
	test.

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

	PR libstdc++/121913
	* include/bits/ranges_algo.h (__rotate_fn::operator()): Use
	ranges::iter_move(it) instead of std::move(*it).
	* testsuite/25_algorithms/rotate/121913.cc: New test.

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

	PR libstdc++/121890
	* include/bits/ranges_algo.h (ranges::rotate, ranges::shuffle)
	(__insertion_sort, __unguarded_partition_pivot, __introselect):
	Use ranges::next to advance iterators. Use local variables in
	rotate to avoid duplicate expressions.
	(ranges::push_heap, ranges::pop_heap, ranges::partial_sort)
	(ranges::partial_sort_copy): Use ranges::prev.
	(__final_insertion_sort): Use iter_difference_t<Iter>
	for operand of operator+ on iterator.
	* include/bits/ranges_base.h (ranges::advance): Use iterator's
	difference_type for all iterator arithmetic.
	* include/bits/stl_algo.h (__search_n_aux, __rotate)
	(__insertion_sort, __unguarded_partition_pivot, __introselect)
	(__final_insertion_sort, for_each_n, random_shuffle): Likewise.
	Use local variables in __rotate to avoid duplicate expressions.
	* include/bits/stl_algobase.h (__fill_n_a, __lc_rai::__newlast1):
	Likewise.
	* include/bits/stl_heap.h (push_heap): Likewise.
	(__is_heap_until): Add static_assert.
	(__is_heap): Convert distance to difference_type.
	* include/std/functional (boyer_moore_searcher::operator()): Use
	iterator's difference_type for iterator arithmetic.
	* testsuite/util/testsuite_iterators.h
	(random_access_iterator_wrapper): Add deleted overloads of
	operators that should be called with difference_type.
	* testsuite/24_iterators/range_operations/advance.cc: Use
	ranges::next.
	* testsuite/25_algorithms/heap/constrained.cc: Use ranges::next
	and ranges::prev.
	* testsuite/25_algorithms/nth_element/58800.cc: Use std::next.
	* testsuite/25_algorithms/nth_element/constrained.cc: Use
	ptrdiff_t for loop variable.
	* testsuite/25_algorithms/nth_element/random_test.cc: Use
	iterator's difference_type instead of int.
	* testsuite/25_algorithms/partial_sort/check_compare_by_value.cc:
	Use std::next.
	* testsuite/25_algorithms/partial_sort/constrained.cc: Use
	ptrdiff_t for loop variable.
	* testsuite/25_algorithms/partial_sort/random_test.cc: Use
	iterator's difference_type instead of int.
	* testsuite/25_algorithms/partial_sort_copy/constrained.cc:
	Use ptrdiff_t for loop variable.
	* testsuite/25_algorithms/partial_sort_copy/random_test.cc:
	Use iterator's difference_type instead of int.
	* testsuite/std/ranges/adaptors/drop.cc: Use ranges::next.
	* testsuite/25_algorithms/fill_n/diff_type.cc: New test.
	* testsuite/25_algorithms/lexicographical_compare/diff_type.cc:
	New test.

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

	PR libstdc++/117276
	* include/pstl/parallel_backend_tbb.h (__func_task::finalize):
	Make deallocation unconditional.

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

	PR libstdc++/121046
	* include/debug/bitset (bitset(const CharT*, ...)): Add
	constraints on CharT type.

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

	* config/cpu/generic/atomicity_mutex/atomicity.h
	(__exchange_and_add): Use const_cast to remove volatile.

2025-09-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/71945
	* include/bits/shared_ptr_base.h (_Sp_counted_base::_S_chk):
	Trap if a reference count cannot be incremented any higher.
	(_Sp_counted_base::_M_add_ref_copy): Use _S_chk.
	(_Sp_counted_base::_M_add_weak_ref): Likewise.
	(_Sp_counted_base<_S_mutex>::_M_add_ref_lock_nothrow): Likewise.
	(_Sp_counted_base<_S_atomic>::_M_add_ref_lock_nothrow): Likewise.
	(_Sp_counted_base<_S_single>::_M_add_ref_copy): Use _S_chk.

2025-09-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/71945
	* include/bits/shared_ptr_base.h
	(_Sp_counted_base::_M_get_use_count): Cast _M_use_count to
	unsigned before returning as long.
	(_Sp_counted_base<_S_single>::_M_add_ref_copy): Use atomic
	helper function to adjust ref count using unsigned arithmetic.
	(_Sp_counted_base<_S_single>::_M_weak_release): Likewise.
	(_Sp_counted_base<_S_single>::_M_get_use_count): Cast
	_M_use_count to unsigned before returning as long.
	(_Sp_counted_base<_S_single>::_M_add_ref_lock_nothrow): Use
	_M_add_ref_copy to do increment using unsigned arithmetic.
	(_Sp_counted_base<_S_single>::_M_release): Use atomic helper and
	_M_weak_release to do decrements using unsigned arithmetic.
	(_Sp_counted_base<_S_mutex>::_M_release): Add comment.
	(_Sp_counted_base<_S_single>::_M_weak_add_ref): Remove
	specialization.

2025-09-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/121148
	* config/cpu/generic/atomicity_mutex/atomicity.h
	(__exchange_and_add): Call __exchange_and_add_single.
	* include/ext/atomicity.h (__exchange_and_add_single): Use an
	unsigned type for the addition.
	* libsupc++/Makefile.am (atomicity.o): Compile with -fwrapv.
	* libsupc++/Makefile.in: Regenerate.

2025-09-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/iterator_concepts.h (_IterMove::_S_noexcept)
	(_IterSwap::_S_noexcept): Change constexpr to consteval.
	* include/bits/ranges_base.h (_Begin::_S_noexcept)
	(_End::_S_noexcept, _RBegin::_S_noexcept, _REnd::_S_noexcept)
	(_Size::_S_noexcept, _Empty::_S_noexcept, _Data::_S_noexcept):
	Likewise.
	* include/std/concepts (_Swap::_S_noexcept): Likewise.

2025-09-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_base.h (__detail::__to_unsigned_like)
	(__access::__possible_const_range, __access::__as_const)
	(__distance_fn::operator(), __next_fn::operator())
	(__prev_fn::operator()): Add always_inline attribute.
	(_Begin::operator(), _End::operator(), _RBegin::operator())
	(_REnd::operator(), _Size::operator(), _SSize::operator())
	(_Empty::operator(), _Data::operator(), _SSize::operator()):
	Likewise. Move nodiscard attribute to start of declaration.

2025-09-11  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/shared_ptr_base.h (__weak_ptr): Avoid calling
	lock() when converting or assigning a weak_ptr<Derived> to
	a weak_ptr<Base> in case Base is not a virtual base of Derived.
	This logic is centralized in _S_safe_upcast, called by the
	various converting constructors/assignment operators.
	(_S_safe_upcast): New helper function.
	* testsuite/20_util/weak_ptr/cons/virtual_bases.cc: New test.

2025-09-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/syncstream: Remove trailing whitespace.

2025-09-11  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/time/year_month_day/io.cc: Additional tests.

2025-09-10  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/unique_ptr.h: Remove blank line.

2025-09-10  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/functional (boyer_moore_searcher::operator()): Add
	static_assert.
	(boyer_moore_horspool_searcher::operator()): Likewise.
	* testsuite/20_util/function_objects/121782.cc: New test.

2025-09-10  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (_ExtentsStorage::_Base): New name for
	_S_base.
	(_ExtentsStorage::_Storage): New name for _S_storage.
	(extents::_Storage): New name for _S_storage.
	(layout_stride::mapping::_Strides): New name for
	_S_stries_t.
	* testsuite/23_containers/mdspan/class_mandate_neg.cc: Update
	test to the new error message.

2025-09-10  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/span (__integral_constant_like): Use
	remove_cvref_t before checking if _Tp::value is boolean.
	* testsuite/23_containers/mdspan/extents/misc.cc: Update test.
	* testsuite/23_containers/mdspan/mdspan.cc: Ditto.
	* testsuite/23_containers/span/deduction.cc: Ditto.

2025-09-10  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121765
	* include/std/format (__format::_Drop_iter): Define.
	(_Iter_for_t::type): Change alias to _Drop_iter.
	(__format::__format_padded): Return __fc.out() for
	_Drop_iter.
	* testsuite/std/format/pr121765.cc: New test.

2025-09-10  Tomasz Kamiński  <tkaminsk@redhat.com>

	* doc/html/manual/status.html: Regenerate.
	* doc/xml/manual/status_cxx2020.xml: Add more entires.

2025-09-10  Tomasz Kamiński  <tkaminsk@redhat.com>

	* doc/html/index.html: Regenerated.
	* doc/html/manual/index.html: Regenerated.
	* doc/html/manual/intro.html: Regenerated.
	* doc/html/manual/status.html: Regenatered.
	* doc/xml/manual/status_cxx2020.xml: Add iso.2020.specific
	section with atomic_ref documentation.

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

	* include/std/type_traits (_CwFixedValue::_S_type): Rename to
	__type.
	(constant_wrapper): Rename template parameter in declaration to
	match later definition.

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

	* doc/xml/manual/using_exceptions.xml: Replace "Tunables" link
	with one that does not have an anchor.
	* doc/html/manual/using_exceptions.html: Regenerate.

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

	* include/std/type_traits (constant_wrapper): Rename template
	parameter to avoid BADNAME.

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

	PR libstdc++/120698
	* doc/xml/manual/configure.xml: Do not claim that vtv is enabled
	by default.
	* doc/html/manual/configure.html: Regenerate.

2025-09-08  Nathan Myers  <ncm@cantrip.org>

	* src/c++20/Makefile.in: Mention syncbuf.lo.

2025-09-08  Nathan Myers  <ncm@cantrip.org>

	* include/std/syncstream: (syncbuf<>::__mutex) Remove _S_get_mutex,
	use extern function instead.
	* src/c++20/syncbuf.cc: Define global __syncbuf_get_mutex.
	* src/c++20/Makefile.am: Mention syncbuf.cc.
	* src/c++20/Makefile.in: Regenerate.
	* config/abi/pre/gnu.ver: Mention mangled __syncbuf_get_mutex.

2025-09-08  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/121827
	* include/precompiled/extc++.h: Don't include ext/cast.h which is an
	internal header.
	* include/ext/pointer.h: Include bits/c++config.h before
	#if _GLIBCXX_HOSTED.

2025-09-08  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/xml/manual/using_exceptions.xml: Update link to "Tunables"
	section in the Glibc manual.
	* doc/html/manual/using_exceptions.html: Regenerate.

2025-09-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/span (__integral_constant_like): Allow the member
	`value` of a constant wrapping type to be a const reference of
	an integer.
	* testsuite/23_containers/mdspan/extents/misc.cc: Add test for
	cw and constant_wrapper.
	* testsuite/23_containers/mdspan/mdspan.cc: Ditto.
	* testsuite/23_containers/span/deduction.cc: Ditto.

2025-09-08  Luc Grosheintz  <luc.grosheintz@gmail.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/version.def (constant_wrapper): Add.
	* include/bits/version.h: Regenerate.
	* include/std/type_traits (_CwFixedValue): New class.
	(_IndexSequence): New struct.
	(_BuildIndexSequence): New struct.
	(_ConstExprParam): New concept.
	(_CwOperators): New struct.
	(constant_wrapper): New struct.
	(cw): New global constant.
	* src/c++23/std.cc.in (constant_wrapper): Add.
	(cw): Add.
	* testsuite/20_util/constant_wrapper/adl.cc: New test.
	* testsuite/20_util/constant_wrapper/ex.cc: New test.
	* testsuite/20_util/constant_wrapper/generic.cc: New test.
	* testsuite/20_util/constant_wrapper/instantiate.cc: New test.
	* testsuite/20_util/constant_wrapper/op_comma_neg.cc: New test.
	* testsuite/20_util/constant_wrapper/version.cc: New test.
	* testsuite/20_util/constant_wrapper/other_wrappers.cc: New file.

2025-09-05  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/121804
	* include/std/ranges (join_view::_Iterator::_M_get_inner):
	Mark noexcept.
	* testsuite/std/ranges/adaptors/join.cc (test16): New test.

2025-09-05  Tomasz Kamiński  <tkaminsk@redhat.com>

	* doc/html/manual/status.html: Regenerate.
	* doc/xml/manual/status_cxx2011.xml: Add entry for bad_function_call.
	* doc/xml/manual/status_cxx2017.xml: Add entries for bad_any_cast
	and nullptr_t output. Update entry for sf.cmath. Fix stable name for
	mem.res.

2025-09-05  Tomasz Kamiński  <tkaminsk@redhat.com>

	* doc/html/manual/status.html: Regenerate the file.
	* doc/xml/manual/status_cxx2017.xml: Addd more entires.

2025-09-04  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (join_view::_Iterator::_M_satisfy):
	Adjust to handle non-std::optional _M_inner as per before LWG 3569.
	(join_view::_Iterator::_M_get_inner): New.
	(join_view::_Iterator::_M_inner): Don't wrap in std::optional if
	the iterator is forward.  Initialize.
	(join_view::_Iterator::operator*): Use _M_get_inner instead
	of *_M_inner.
	(join_view::_Iterator::operator++): Likewise.
	(join_view::_Iterator::iter_move): Likewise.
	(join_view::_Iterator::iter_swap): Likewise.

2025-09-04  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/binders.h (_Binder::_S_call): Make public.
	* include/std/ranges (ranges::_Partial<_Adaptor, _Args...>):
	Replace tuple<_Args...> with _Bind_back_t<_Adaptor, _Args...>.
	(ranges::_Partial<_Adaptor, _Arg>): Remove.

2025-09-04  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/Makefile.am: Add bits/binders.h
	* include/Makefile.in: Add bits/binders.h
	* include/std/functional (std::_Indexed_bound_arg, std::_Binder)
	(std::__make_bound_args, std::_Bind_front_t, std::_Bind_back_t):
	Moved to bits/binders.h file, that is now included.
	* include/bits/binders.h: New file.

2025-09-04  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/functional: (std::_Indexed_bound_arg): Fixed
	indentation.
	(__Bound_arg_storage::_S_apply_front)
	(__Bound_arg_storage::_S_apply_front): Merged into _S_apply.
	(__Bound_arg_storage::_S_apply): Merged above, add _Back template
	parameter, replace std::invoke with std::__invoke.
	(std::_Bind_front): Renamed to std::_Binder and add _Back
	template parameter.
	(std::_Binder): Renamed from std::_Bind_front.
	(_Binder::_Result_t, _Binder::_S_noexcept_invoke): Define.
	(_Binder::operator()): Use _Result_t and _S_noexcept_invoke.
	(_Binder::_S_call): Handle zero args specially, replace std::invoke
	with std::__invoke.
	(std::_Bind_front_t, std::_Bind_back_t): Defined in terms
	of _Binder.
	(std::_Bind_back): Merged into _Binder.
	* testsuite/20_util/function_objects/bind_back/1.cc: New tests.
	* testsuite/20_util/function_objects/bind_back/111327.cc: Updated
	error messages.
	* testsuite/20_util/function_objects/bind_front/1.cc: New tests.
	* testsuite/20_util/function_objects/bind_front/111327.cc: Updated
	error messages.

2025-09-04  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (layout_left::mapping::operator()): Add
	_GLIBCXX_RESOLVE_LIB_DEFECTS marker for 4314.
	(layout_left::mapping::operator()): Ditto.
	(layout_stride::mapping::operator()): Ditto.

2025-09-04  Tomasz Kamiński  <tkaminsk@redhat.com>

	* doc/html/manual/status.html: Regenerated the file.
	* doc/xml/manual/status_cxx1998.xml: Add stable name to
	each entry.

2025-09-03  Yihan Wang  <yronglin777@gmail.com>

	* include/std/expected (expected(U&&)): Add missing constraint
	as per LWG 4222.
	* testsuite/20_util/expected/lwg4222.cc: New test.

2025-09-03  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/121745
	* include/bits/stl_pair.h (get): Use forward instead of move in
	std::get<T> overloads for rvalue pairs.
	* testsuite/20_util/pair/astuple/get_by_type.cc: Check all value
	categories and cv-qualification.

2025-09-03  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/110853
	* include/bits/stl_pair.h [C++20] (pair(const T1&, const T2&)):
	Use std::type_identity_t<T1> for first parameter.
	* testsuite/20_util/pair/cons/110853.cc: New test.

2025-09-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/version.def (chrono_cxx20): Define.
	* include/bits/version.h: Regenerate.
	* include/std/chrono: Check __glibcxx_chrono_cxx20 instead of
	__cpp_lib_chrono for C++20 features that don't require the new
	std::string ABI and/or can be used for freestanding.
	* src/c++20/clock.cc: Adjust preprocessor condition.

2025-09-02  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/bits/utility.h (_Index_tuple): Move to <type_traits>.
	(_Build_index_tuple): Ditto.
	* include/std/type_traits (_Index_tuple): Ditto.
	(_Build_index_tuple): Ditto.

2025-09-02  Tomasz Kamiński  <tkaminsk@redhat.com>

	* libsupc++/compare (__cmp_cat::__literal_zero): Rename
	from __unspec.
	(__cmp_cat::__unspec): Rename to __literal_zero.
	(operator==, operator<, operator>, operator<=, operator>=):
	Replace __cmp_cat::__unspec to __cmp_cat::__literal_zero.

2025-08-31  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/xml/manual/using_exceptions.xml: Update link to
	Boost's "Exception-Safety"
	* doc/html/manual/using_exceptions.html: Rebuild.

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

	* src/c++26/debugging.cc [_GLIBCXX_HAVE_SYS_PTRACE_H]: Include
	<sys/types.h>.
	(breakpoint) [__i386__ || __x86_64__]: Use "int 0x03" instead of
	"int3".

2025-08-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/119670
	* acinclude.m4 (GLIBCXX_CHECK_DEBUGGING): Check for facilities
	needed by <debugging>.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Use GLIBCXX_CHECK_DEBUGGING.
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/version.def (debugging): Add.
	* include/bits/version.h: Regenerate.
	* include/precompiled/stdc++.h: Add new header.
	* src/c++26/Makefile.am: Add new file.
	* src/c++26/Makefile.in: Regenerate.
	* include/std/debugging: New file.
	* src/c++26/debugging.cc: New file.
	* testsuite/19_diagnostics/debugging/breakpoint.cc: New test.
	* testsuite/19_diagnostics/debugging/breakpoint_if_debugging.cc:
	New test.
	* testsuite/19_diagnostics/debugging/is_debugger_present.cc: New
	test.
	* testsuite/19_diagnostics/debugging/is_debugger_present-2.cc:
	New test.

2025-08-28  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/18_support/comparisons/categories/zero_neg.cc: New test.

2025-08-28  Weslley da Silva Pereira  <weslley.spereira@gmail.com>

	* include/std/complex (polar, __complex_sqrt, pow)
	(__complex_pow_unsigned): Use explicit conversions from int to
	the complex value_type.

2025-08-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/121046
	* include/std/bitset (bitset(const CharT*, ...)): Add
	constraints on CharT type.
	* testsuite/23_containers/bitset/lwg4294.cc: New test.

2025-08-28  Tomasz Kamiński  <tkaminsk@redhat.com>

	* libsupc++/compare (__cmp_cat::_Ord): Add unordered enumerator.
	(__cmp_cat::_Ncmp): Remove.
	(__cmp_cat::__ord, __cmp_cat::__make):  Define.
	(partial_ordering::partial_ordering(__cmp_cat::_Ncmp)): Remove.
	(operator<=>(__cmp_cat::__unspec, partial_ordering))
	(partial_ordering::unordered): Replace _Ncmp with _Ord.
	(std::partial_ordering, std::weak_ordering, std::strong_ordering):
	Befriend __ord and __make helpers, remove friend declartions for
	other orderings.
	(__compare::__fp_weak_ordering): Remove unused __cat variable.
	Simplify ordering conversions.

2025-08-27  Tomasz Kamiński  <tkaminsk@redhat.com>

	* libsupc++/compare
	(operator<=>(__cmp_cat::__unspec, partial_ordering)):
	Implement using _M_reverse.

2025-08-27  Nathan Myers  <ncm@cantrip.org>

	* include/std/chrono (gps_clock::now, tai_clock::now): Remove
	inline definitions.
	* src/c++20/clock.cc (gps_clock::now, tai_clock::now): New file
	for out-of-line now() impls.
	* src/c++20/Makefile.am: Mention clock.cc.
	* src/c++20/Makefile.in: Regenerate.
	* config/abi/pre/gnu.ver: add mangled now() symbols.

2025-08-27  Tomasz Kamiński  <tkaminsk@redhat.com>

	* libsupc++/compare (_Ncmp::_Unordered): Rename and change the value
	to minimum value of signed char.
	(_Ncomp::unordered): Renamed from _Unordered, the name is reserved
	by partial_ordered::unordered.
	(partial_ordering::_M_reverse()): Define.
	(operator<=(partial_ordering, __cmp_cat::__unspec))
	(operator>=(__cmp_cat::__unspec, partial_ordering)): Implemented
	in terms of negated _M_value.
	(operator>=(partial_ordering, __cmp_cat::__unspec))
	(operator<=(__cmp_cat::__unspec, partial_ordering)): Directly
	compare _M_value, as unordered value is negative.
	(partial_ordering::unordered): Handle _Ncmp::unoredred rename.
	* python/libstdcxx/v6/printers.py: Add -128 as integer value
	for unordered, keeping 2 to preserve backward compatibility.

2025-08-27  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/funcwrap.h (__polyfunc::_Mo_base): Reorder _M_manage
	and _M_storage members. Make _M_destroy protected and remove friend
	declaration.
	* testsuite/20_util/copyable_function/call.cc: Add test for aliasing
	base class.
	* testsuite/20_util/move_only_function/call.cc: Likewise.

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

	* include/std/ranges (__detail::_CachedPosition): Remove
	additional size constraint on the offset-based partial
	specialization.

2025-08-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/90192
	* include/bits/stl_vector.h (vector<T>::_M_fill_append): Declare.
	(vector<T>::fill): Use _M_fill_append instead of _M_fill_insert.
	* include/bits/vector.tcc (vector<T>::_M_fill_append): Define
	(vector<T>::_M_fill_insert): Delegate to _M_fill_append when
	elements are appended.
	* testsuite/23_containers/vector/modifiers/moveable.cc: Updated
	copycount for inserting at the end (appending).
	* testsuite/23_containers/vector/modifiers/resize.cc: New test.
	* testsuite/backward/hash_set/check_construct_destroy.cc: Updated
	copycount, the hash_set constructor uses insert to fill buckets
	with nullptrs.

2025-08-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/move.h (std::__like_impl, std::__like_t): Make
	available in c++11.
	* include/std/functional (std::_Indexed_bound_arg)
	(std::_Bound_arg_storage, std::__make_bound_args): Define.
	(std::_Bind_front, std::_Bind_back): Use _Bound_arg_storage.
	* testsuite/20_util/function_objects/bind_back/1.cc: Expand
	test to cover cases of 0, 1, many bound args.
	* testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
	* testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
	* testsuite/20_util/function_objects/bind_front/111327.cc: Likewise.

2025-08-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/stop_token (__variant::_Never_valueless_alt): Declare.
	(__variant::_Never_valueless_alt<std::stop_token>)
	(__variant::_Never_valueless_alt<std::stop_source>): Define.
	* include/std/thread: (__variant::_Never_valueless_alt): Declare.
	(__variant::_Never_valueless_alt<std::jthread>): Define.

2025-08-21  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/121496
	* acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Do not
	use _GLIBCXX_TSAN in _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK macro.
	* configure: Regenerate.

2025-08-21  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/121496
	* include/std/mutex (__timed_mutex_impl::_M_try_wait_until):
	Change preprocessor condition to use #if instead of #ifdef.
	(recursive_timed_mutex::_M_clocklock): Likewise.
	* testsuite/30_threads/timed_mutex/121496.cc: New test.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/120994
	* include/bits/version.def (aligned_accessor): Add.
	* include/bits/version.h: Regenerate.
	* include/std/mdspan (aligned_accessor): New class.
	* src/c++23/std.cc.in (aligned_accessor): Add.
	* testsuite/23_containers/mdspan/accessors/generic.cc: Add tests
	for aligned_accessor.
	* testsuite/23_containers/mdspan/accessors/aligned_neg.cc: New test.
	* testsuite/23_containers/mdspan/version.cc: Add test for
	__cpp_lib_aligned_accessor.
	* testsuite/23_containers/mdspan/accessors/debug/aligned_access_neg.cc: New file.
	* testsuite/23_containers/mdspan/accessors/debug/aligned_offset_neg.cc: New file.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/120994
	* include/bits/align.h (is_sufficiently_aligned): New function.
	* include/bits/version.def (is_sufficiently_aligned): Add.
	* include/bits/version.h: Regenerate.
	* include/std/memory: Add __glibcxx_want_is_sufficiently_aligned.
	* src/c++23/std.cc.in (is_sufficiently_aligned): Add.
	* testsuite/20_util/headers/memory/version.cc: Add test for
	__cpp_lib_is_sufficiently_aligned.
	* testsuite/20_util/is_sufficiently_aligned/1.cc: New test.

2025-08-21  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/121374
	* include/std/limits (numeric_limits<__float128>::max_digits10):
	Fix value.
	* testsuite/18_support/numeric_limits/128bit.cc: Check value.

2025-08-21  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/117294
	* testsuite/20_util/optional/cons/value_neg.cc: Prune additional
	output for C++20 and later.
	* testsuite/20_util/scoped_allocator/69293_neg.cc: Match
	additional error for C++20 and later.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/bits/version.def (mdspan): Set value for C++26.
	* include/bits/version.h: Regenerate.
	* include/std/mdspan (dims): Add.
	* src/c++23/std.cc.in (dims): Add.
	* testsuite/23_containers/mdspan/extents/misc.cc: Add tests.
	* testsuite/23_containers/mdspan/version.cc: Update test.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__static_prod): Delete.
	(__fwd_partial_prods): Compute at compile-time in O(rank), not
	O(rank**2).
	(__rev_partial_prods): Ditto.
	(__size): Inline __static_prod.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__fwd_partial_prods): Reduce size of the
	array by 1 element.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__valid_static_extent): Replace
	numeric_limits with __int_traits.
	(extents::_S_ctor_explicit): Ditto.
	(extents::__static_quotient): Ditto.
	(layout_stride::mapping::mapping): Ditto.
	(mdspan::size): Ditto.
	* testsuite/23_containers/mdspan/extents/class_mandates_neg.cc:
	Update test with additional diagnostics.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (extents::operator==): Replace loop with
	pack expansion.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__mdspan::__all_static): New function.
	(__mdspan::_StaticExtents::_S_is_dyn): Inline and eliminate.
	(__mdspan::_ExtentsStorage::_S_is_dynamic): New method.
	(__mdspan::_ExtentsStorage::_M_extent): Use _S_is_dynamic.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__fwd_prods): Relax condition for fully-dynamic
	extents to cover (dyn, ..., dyn, X).
	(__rev_partial_prods): Analogous for (X, dyn, ..., dyn).

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__mdspan::__all_dynamic): New function.
	(__mdspan::_StaticExtents::_S_dynamic_index): Convert to method.
	(__mdspan::_StaticExtents::_S_dynamic_index_inv): Ditto.
	(__mdspan::_StaticExtents): New specialization for fully dynamic
	extents.
	(__mdspan::__fwd_prod): New constexpr if branch to avoid
	instantiating __fwd_partial_prods.
	(__mdspan::__rev_prod): Ditto.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__mdspan::__fwd_prod): Optimize
	for rank <= 2.
	(__mdspan::__rev_prod): Ditto.
	(__mdspan::__size): Refactor to use a pre-computed product, not
	a partial product.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__mdspan::__static_prod): New function.
	(__mdspan::__fwd_partial_prods): Constexpr array of partial
	forward products.
	(__mdspan::__fwd_partial_prods): Same for reverse partial
	products.
	(__mdspan::__static_extents_prod): Delete function.
	(__mdspan::__extents_prod): Renamed from __exts_prod and refactored.
	include/std/mdspan (__mdspan::__fwd_prod): Compute as the
	product of pre-computed static static and the product of dynamic
	extents.
	(__mdspan::__rev_prod): Ditto.

2025-08-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__mdspan::_StaticExtents): Extract non IndexType
	related code from _ExtentsStorage.
	(__mdspan::_ExtentsStorage): Use _StaticExtents.
	(__mdspan::__static_extents): Return reference to NTTP of _StaticExtents.
	(__mdspan::__contains_zero): New overload.
	(__mdspan::__exts_prod, __mdspan::__static_quotient): Use span to avoid
	copying __sta_exts.

2025-08-19  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/104874
	* testsuite/24_iterators/random_access/string_vector_iterators.cc:
	Call test6642.

2025-08-18  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121476
	* include/bits/ranges_algo.h (__all_of_fn::operator()):
	(__any_of_fn::operator(), __none_of_fn::operator())
	(__find_first_of_fn::operator(), __count_fn::operator())
	(__find_end_fn::operator(), __remove_if_fn::operator())
	(__remove_fn::operator(), __unique_fn::operator())
	(__is_sorted_until_fn::operator(), __is_sorted_fn::operator())
	(__lower_bound_fn::operator(), __upper_bound_fn::operator())
	(__equal_range_fn::operator(), __binary_search_fn::operator())
	(__is_partitioned_fn::operator(), __partition_point_fn::operator())
	(__minmax_fn::operator(), __min_element_fn::operator())
	(__includes_fn::operator(), __max_fn::operator())
	(__lexicographical_compare_fn::operator(), __clamp__fn::operator())
	(__find_last_fn::operator(), __find_last_if_fn::operator())
	(__find_last_if_not_fn::operator()): Add [[nodiscard]] attribute.
	* include/bits/ranges_algobase.h (__equal_fn::operator()):
	Add [[nodiscard]] attribute.
	* include/bits/ranges_util.h (__find_fn::operator())
	(__find_if_fn::operator(), __find_if_not_fn::operator())
	(__mismatch_fn::operator(), __search_fn::operator())
	(__min_fn::operator(), __adjacent_find_fn::operator()):
	Add [[nodiscard]] attribute.
	* include/bits/stl_algo.h (std::min(initializer_list<T>))
	(std::min(initializer_list<T>, _Compare))
	(std::max(initializer_list<T>))
	(std::mmax(initializer_list<T>, _Compare)): Add _GLIBCXX_NODISCARD.
	* testsuite/25_algorithms/min/constrained.cc: Silence nodiscard
	warning.
	* testsuite/25_algorithms/max/constrained.cc: Likewise.
	* testsuite/25_algorithms/minmax/constrained.cc: Likewise.
	* testsuite/25_algorithms/minmax_element/constrained.cc: Likewise.

2025-08-18  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121313
	* include/bits/vector.tcc (vector::insert_range): Add check for
	empty size.
	* testsuite/23_containers/vector/modifiers/insert/insert_range.cc:
	New tests.

2025-08-10  H.J. Lu  <hjl.tools@gmail.com>

	* configure: Regenerated.

2025-08-07  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/xml/manual/build_hacking.xml: Switch gcc.gnu.org installation
	docs to https.
	* doc/html/manual/appendix_porting.html: Regenerate.

2025-08-05  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/121373
	* src/c++23/std.cc.in (std::ranges::iter_move, std::ranges::iter_swap):
	Remove exports.

2025-08-04  Jakub Jelinek  <jakub@redhat.com>
	    hexne  <printfne@gmail.com>

	PR libstdc++/121373
	* src/c++23/std.cc.in (std::ranges::shift_left,
	std::ranges::shift_right): Only export for C++23 and later.
	(std::ranges::fold_left_first_with_iter_result,
	std::ranges::fold_left_with_iter_result): Export.
	(std::byteswap): Export for C++23 and later.
	(std::ranges::iter_move, std::ranges::iter_swap): Export.
	(std::projected_value_t): Export for C++26 and later.
	(std::out_ptr_t, std::inout_ptr_t): Export.
	(std::ranges::iota_result): Export.
	(std::regex_constants): Export a lot of constants.
	(std::is_scoped_enum, std::is_scoped_enum_v): Export.

2025-08-04  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121128
	* include/bits/indirect.h (indirect::operator*):
	Cast __self to approparietly qualified indirect.
	* testsuite/std/memory/indirect/access.cc: New test.
	* testsuite/std/memory/polymorphic/access.cc: New test.

2025-08-03  Jakub Jelinek  <jakub@redhat.com>

	* src/c++23/std.cc.in (std::owner_equal, std::owner_hash): Export.

2025-07-30  François Dumont  <frs.dumont@gmail.com>

	* testsuite/std/time/format/data_not_present_neg.cc: Remove _GLIBCXX_USE_DUAL_ABI
	check.

2025-07-29  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/format/ranges/format_kind.cc: New test.

2025-07-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/102181
	* include/bits/stl_iterator_base_funcs.h (distance, advance):
	Check C++20 iterator concepts and handle appropriately.
	(__detail::__iter_category_converts_to_concept): New concept.
	(__detail::__promotable_iterator): New concept.
	* testsuite/24_iterators/operations/cxx20_iterators.cc: New
	test.

2025-07-28  Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/119742
	* include/debug/bitset: Add new ctor.

2025-07-28  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan: Small stylistic adjustments.

2025-07-28  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* testsuite/23_containers/mdspan/accessors/generic.cc: Refactor
	test_ctor.

2025-07-28  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121196
	* include/std/inplace_vector (std::erase): Provide default argument
	for _Up parameter.
	* testsuite/23_containers/inplace_vector/erasure.cc: Add test for
	using braces-init-list as arguments to erase_if and use function
	to verify content of inplace_vector

2025-07-25  Tuur Martens  <tuurmartens4@gmail.com>

	* include/bits/unordered_map.h: Rectify referencing of
	non-existent type.

2025-07-24  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/117294
	PR c++/113854
	* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust
	diagnostics.
	* testsuite/20_util/expected/illformed_neg.cc: Likewise.
	* testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise.
	* testsuite/23_containers/array/creation/3_neg.cc: Likewise.
	* testsuite/24_iterators/range_generators/lwg3900.cc: Likewise.
	* testsuite/29_atomics/atomic/requirements/types_neg.cc:
	Likewise.
	* testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc:
	Likewise.
	* testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
	Likewise.
	* testsuite/std/format/arguments/args_neg.cc: Likewise.
	* testsuite/std/format/string_neg.cc: Likewise.

2025-07-24  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/104874
	* testsuite/24_iterators/random_access/string_vector_iterators.cc:
	Reworked.

2025-07-24  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/21_strings/basic_string/cons/from_range.cc: Replace
	test_constexpr with test_ranges inside static_assert.
	* testsuite/21_strings/basic_string/modifiers/append/append_range.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/assign/assign_range.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/insert/insert_range.cc:
	Likewise.
	* testsuite/21_strings/basic_string/modifiers/replace/replace_with_range.cc:
	Likewise.
	* testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise.
	* testsuite/23_containers/vector/bool/modifiers/assign/assign_range.cc:
	Likewise.
	* testsuite/23_containers/vector/bool/modifiers/insert/insert_range.cc:
	Likewise.
	* testsuite/23_containers/vector/cons/from_range.cc: Likewise.
	* testsuite/23_containers/vector/modifiers/assign/assign_range.cc:
	Likewise.
	* testsuite/23_containers/vector/modifiers/insert/insert_range.cc:
	Likewise.
	* testsuite/23_containers/vector/bool/modifiers/insert/append_range.cc:
	Run full test_ranges instead of span-only in test_constexpr.
	* testsuite/23_containers/vector/modifiers/append_range.cc:
	Replace test_constexpr with calls to test_ranges and test_overlapping.
	* testsuite/util/testsuite_allocator.h (__gnu_test::SimpleAllocator):
	Declared member functions as constexpr.

2025-07-23  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* testsuite/23_containers/mdspan/accessors/default.cc: Delete.
	* testsuite/23_containers/mdspan/accessors/generic.cc: Slightly
	generalize the test code previously in default.cc.

2025-07-23  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* testsuite/23_containers/mdspan/extents/ctor_ints.cc: Remove
	superfluous parens.
	* testsuite/23_containers/mdspan/extents/ctor_shape.cc: Ditto.
	* testsuite/23_containers/mdspan/mdspan.cc: Ditto.

2025-07-23  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119137
	* testsuite/23_containers/inplace_vector/access/elem.cc: Cover
	front and back methods and const calls.
	* testsuite/23_containers/inplace_vector/access/elem_neg.cc:
	Likewise.
	* testsuite/23_containers/inplace_vector/modifiers/erase_neg.cc:
	New test.
	* testsuite/23_containers/inplace_vector/modifiers/single_insert_neg.cc:
	New test.

2025-07-22  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119137
	* testsuite/23_containers/inplace_vector/cons/from_range.cc: Run
	iterators and range test at compile-time.
	* testsuite/23_containers/inplace_vector/modifiers/assign.cc:
	Likewise.
	* testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc:
	Likewise.
	* testsuite/util/testsuite_iterators.h (__gnu_test::BoundsContainer)
	(__gnu_test::OutputContainer, __gnu_test::WritableObject)
	(__gnu_test::output_iterator_wrapper, __gnu_test::input_iterator_wrapper)
	(__gnu_test::forward_iterator_wrapper)
	(__gnu_test::bidirectional_iterator_wrapper)
	(__gnu_test::random_access_iterator_wrapper)
	(__gnu_test::test_container): Add appropriate _GLIBCXXNN_CONSTEXPR
	macros to member functions.
	(__gnu_test::contiguous_iterator_wrapper)
	(__gnu_test::input_iterator_wrapper_rval)
	(__gnu_test::test_range, __gnu_test::test_range_nocopy)
	(__gnu_test::test_sized_range_sized_sent)
	(__gnu_test::test_sized_range): Add constexpr specifier to member
	functions.

2025-07-22  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119137
	* include/std/inplace_vector (inplace_vector::assign_range):
	Replace _Nm with _M_size in the assigment loop.

2025-07-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (mdspan::mdspan): Make default ctor
	conditionally noexcept.
	* testsuite/23_containers/mdspan/mdspan.cc: Add tests.

2025-07-21  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (mdspan::is_always_unique): Make
	conditionally noexcept.
	(mdspan::is_always_exhaustive): Ditto.
	(mdspan::is_always_strided): Ditto.
	(mdspan::is_unique): Ditto.
	(mdspan::is_exhaustive): Ditto.
	(mdspan::is_strided): Ditto.
	* testsuite/23_containers/mdspan/layout_like.h: Make noexcept
	configurable. Add ThrowingLayout.
	* testsuite/23_containers/mdspan/mdspan.cc: Add tests for
	noexcept.

2025-07-20  Jakub Jelinek  <jakub@redhat.com>

	PR libstdc++/121174
	* src/c++23/std.cc.in (std::dextents): Export.  Add to FIXME comments
	other not yet implemented nor exported <mdspan> entities.

2025-07-18  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_iterator_base_types.h (__any_input_iterator):
	Only define when __cpp_lib_concepts is defined.

2025-07-18  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/appendix_contributing.xml: Remove Paolo from
	list of maintainers to contact about contributing.
	* doc/html/manual/appendix_contributing.html: Regenerate.

2025-07-18  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/build_hacking.xml: Document that
	windows_zones-map.h is a generated file.
	* doc/html/manual/appendix_porting.html: Regenerate.

2025-07-18  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119137
	* include/std/inplace_vector (inplace_vector::operator=):
	Qualify call to std::addressof.

2025-07-18  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121154
	* include/bits/chrono_io.h (_ChronoSpec::_M_time_point): Remove.
	(_ChronoSpec::_M_needs_ok_check): Define
	(__formatter_chrono::_M_parse): Set _M_needs_ok_check.
	(__formatter_chrono::_M_check_ok): Check values also for debug mode,
	and return __string_view.
	(__formatter_chrono::_M_format_to): Handle results of _M_check_ok.
	(__formatter_chrono::_M_wi, __formatter_chrono::_M_a_A)
	(__formatter_chrono::_M_b_B, __formatter_chrono::_M_C_y_Y)
	(__formatter_chrono::_M_d_e, __formatter_chrono::_M_F):
	Removed handling of _M_debug.
	(__formatter_chrono::__M_m): Print zero unpadded in _M_debug mode.
	(__formatter_duration::_S_spec_for): Remove _M_time_point refernce.
	(__formatter_duration::_M_parse): Override _M_needs_ok_check.
	* testsuite/std/time/month/io.cc: Test for localized !ok() values.
	* testsuite/std/time/weekday/io.cc: Test for localized !ok() values.

2025-07-18  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/121150
	* testsuite/20_util/hash/int128.cc: Cast expected values to
	size_t.

2025-07-18  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/unicode.h (_Utf_iterator::operator--): Reorder
	conditions and update position after reading a code unit.
	(_Utf_iterator::_M_read_reverse): Define.
	(_Utf_iterator::_M_read_utf8): Return extracted code point.
	(_Utf_iterator::_M_read_reverse_utf8): Define.
	(_Utf_iterator::_M_read_reverse_utf16): Define.
	(_Utf_iterator::_M_read_reverse_utf32): Define.
	* testsuite/ext/unicode/view.cc: Add checks for reversed views
	and reverse iteration.

2025-07-18  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/unicode.h (_Utf_iterator): Reorder data members
	to be more compact.

2025-07-18  Jonathan Wakely  <jwakely@redhat.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119137
	* doc/doxygen/user.cfg.in (INPUT): Add new header.
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/stl_iterator_base_types.h (__any_input_iterator):
	Define.
	* include/bits/version.def (inplace_vector): Define.
	* include/bits/version.h: Regenerate.
	* include/precompiled/stdc++.h: Include new header.
	* src/c++23/std.cc.in: Export contents if new header.
	* include/std/inplace_vector: New file.
	* testsuite/23_containers/inplace_vector/access/capacity.cc: New file.
	* testsuite/23_containers/inplace_vector/access/elem.cc: New file.
	* testsuite/23_containers/inplace_vector/access/elem_neg.cc: New file.
	* testsuite/23_containers/inplace_vector/cons/1.cc: New file.
	* testsuite/23_containers/inplace_vector/cons/from_range.cc: New file.
	* testsuite/23_containers/inplace_vector/cons/throws.cc: New file.
	* testsuite/23_containers/inplace_vector/copy.cc: New file.
	* testsuite/23_containers/inplace_vector/erasure.cc: New file.
	* testsuite/23_containers/inplace_vector/modifiers/assign.cc: New file.
	* testsuite/23_containers/inplace_vector/modifiers/erase.cc: New file.
	* testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc:
	New file.
	* testsuite/23_containers/inplace_vector/modifiers/single_insert.cc:
	New file.
	* testsuite/23_containers/inplace_vector/move.cc: New file.
	* testsuite/23_containers/inplace_vector/relops.cc: New file.
	* testsuite/23_containers/inplace_vector/version.cc: New file.
	* testsuite/util/testsuite_iterators.h (input_iterator_wrapper::base):
	Define.

2025-07-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/96710
	* doc/xml/manual/evolution.xml: Document change or __int128.
	* doc/html/manual/api.html: Regenerate.

2025-07-17  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/121061
	* include/std/mdspan (extents::extents): Perform conversion to
	index_type of an r-value reference.
	(layout_left::mapping::operator()): Ditto.
	(layout_right::mapping::operator()): Ditto.
	(layout_stride::mapping::operator()): Ditto.
	* testsuite/23_containers/mdspan/extents/custom_integer.cc: Add
	tests for RValueInt and MutatingInt.
	* testsuite/23_containers/mdspan/int_like.h (RValueInt): Add.
	* testsuite/23_containers/mdspan/layouts/mapping.cc: Test with
	RValueInt.
	* testsuite/23_containers/mdspan/mdspan.cc: Ditto.

2025-07-17  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/121061
	* include/std/mdspan (extents::extents): Fix constraint to
	prevent non-const conversion to index_type.
	(layout_stride::mapping::mapping): Ditto.
	(mdspan::mdspan): Ditto.
	(mdspan::operator[]): Ditto.
	* testsuite/23_containers/mdspan/extents/custom_integer.cc: Add
	test for MutatingInt.
	* testsuite/23_containers/mdspan/int_like.h (MutatingInt): Add.
	* testsuite/23_containers/mdspan/layouts/mapping.cc: Add test for
	MutatingInt.
	* testsuite/23_containers/mdspan/layouts/stride.cc: Ditto.
	* testsuite/23_containers/mdspan/mdspan.cc: Ditto.

2025-07-17  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/121061
	* testsuite/23_containers/mdspan/extents/custom_integer.cc:
	Enable checking with different custom integers. Improve
	checking non-existence of overloads for incompatible custom
	integers.
	* testsuite/23_containers/mdspan/layouts/mapping.cc: ditto. Also
	improve reuse of int_like.h.
	* testsuite/23_containers/mdspan/layouts/stride.cc: ditto.
	* testsuite/23_containers/mdspan/mdspan.cc: ditto.
	* testsuite/23_containers/mdspan/extents/int_like.h: Rename (old
	name).
	* testsuite/23_containers/mdspan/int_like.h: Rename (new name).
	(ThrowingInt): Add.
	(NotIntLike): Add.

2025-07-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/unicode.h (__unicode::_Utf_iterator): Add
	comments.
	(__unicode:_Utf_iterator::operator++()): Check whether to
	iterate over the buffer first.

2025-07-17  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/121097
	* include/c_global/cmath (hypot): Use __promote_3 instead of
	__promoted.

2025-07-16  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/bitset (__bitset::__string) [__cpp_lib_bitset]:
	Change alias to refer to basic_string_view instead.

2025-07-16  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/121114
	* include/bits/version.def (constexpr_exceptions): Add no_stdname
	and changed value.
	* include/bits/version.h: Regenerated.
	* testsuite/18_support/exception/version.cc: Test that macro is
	not exported.

2025-07-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/move.h (swap): Replace enable_if with concepts
	when available, and with __enable_if_t alias otherwise.

2025-07-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_base.h (ranges::advance(i, n, bound)):
	Ensure that observable side effects on iterators match what is
	specified in the standard.

2025-07-15  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/119962
	* include/std/ranges (join_view::_Iterator::_M_outer): Initialize.
	(lazy_split_view::_OuterIter::_M_current): Initialize.
	(join_with_view::_Iterator::_M_outer_it): Initialize.
	* testsuite/std/ranges/adaptors/join.cc (test15): New test.
	* testsuite/std/ranges/adaptors/join_with/1.cc (test05): New test.
	* testsuite/std/ranges/adaptors/lazy_split.cc (test13): New test.

2025-07-15  Björn Schäpers  <bjoern@hazardy.de>

	PR libstdc++/108409
	* scripts/gen_windows_zones_map.py: New file, generates
	windows_zones-map.h.
	* src/c++20/windows_zones-map.h: New file, contains the look up
	table.
	* src/c++20/tzdb.cc (tzdb::current_zone): Add Windows code path.

2025-07-15  Björn Schäpers  <bjoern@hazardy.de>

	* src/c++20/tzdb.cc (zoneinfo_file): On Windows look relative
	from the DLL path for the time zone information.

2025-07-15  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/25_algorithms/copy/debug/constexpr_neg.cc:
	* testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
	* testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
	* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
	* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
	* testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
	* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
	* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
	* testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:

2025-07-15  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/121024
	* include/bits/ranges_uninitialized.h (ranges::destroy): Do not
	optimize away trivial destructors during constant evaluation.
	(ranges::destroy_n): Likewise.
	* testsuite/20_util/specialized_algorithms/destroy/121024.cc:
	New test.

2025-07-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/memory (swap, make_observer_ptr): Add
	constexpr.
	(operator==, operator!=, operator<, operator>, operator<=)
	(operator>=): Likewise.
	* testsuite/experimental/memory/observer_ptr/make_observer.cc:
	Checks for constant evaluation.
	* testsuite/experimental/memory/observer_ptr/relops/relops.cc:
	Likewise.
	* testsuite/experimental/memory/observer_ptr/swap/swap.cc:
	Likewise.

2025-07-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/type_traits (__make_unsigned_selector): Add
	unsigned __int128 to type list.
	* testsuite/20_util/make_unsigned/int128.cc: New test.

2025-07-15  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/96710
	* include/bits/functional_hash.h (hash<__int128>): Define for
	strict modes.
	(hash<unsigned __int128>): Likewise.
	* testsuite/20_util/hash/int128.cc: New test.

2025-07-15  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/110739
	* include/bits/chrono_io.h (__formatter_chrono::_S_weekdays)
	(__formatter_chrono::_S_months, __formatter_chrono::_S_fill_ampm):
	Define.
	(__formatter_chrono::_M_format_to): Do not pass context parameter
	to functions listed below.
	(__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B): Implement
	using harcoded list of names, and remove format context parameter.
	(__formatter_chrono::_M_p, __formatter_chrono::_M_r): Implement
	using _S_fill_ampm.
	(__formatter_chrono::_M_c): Removed format context parameter.
	(__formatter_chrono::_M_subsecs): Call __ctx.locale() directly,
	instead of _M_locale and do not compare with locale::classic().
	Add [[unlikely]] attributes.
	(__formatter_chrono::_M_locale): Move to __formatter_duration.
	(__formatter_duration::_M_locale): Moved from __formatter_chrono.

2025-07-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_pair.h (swap): Add comment to deleted
	overload.
	* include/bits/unique_ptr.h (swap): Likewise.
	* include/std/array (swap): Likewise.
	* include/std/optional (swap): Likewise.
	* include/std/tuple (swap): Likewise.
	* include/std/variant (swap): Likewise.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc:
	Adjust dg-error line numbers.

2025-07-14  Jonathan Wakely  <jwakely@redhat.com>

	* include/pstl/algorithm_impl.h (__for_each_n_it_serial):
	Protect against overloaded comma operator.
	(__brick_walk2): Likewise.
	(__brick_walk2_n): Likewise.
	(__brick_walk3): Likewise.
	(__brick_move_destroy::operator()): Likewise.
	(__brick_calc_mask_1): Likewise.
	(__brick_copy_by_mask): Likewise.
	(__brick_partition_by_mask): Likewise.
	(__brick_calc_mask_2): Likewise.
	(__brick_reverse): Likewise.
	(__pattern_partial_sort_copy): Likewise.
	* include/pstl/memory_impl.h (__brick_uninitialized_move):
	Likewise.
	(__brick_uninitialized_copy): Likewise.
	* include/pstl/numeric_impl.h (__brick_transform_scan):
	Likewise.

2025-07-14  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/117785
	* include/bits/version.def (constexpr_exceptions): Define
	correct value.
	* include/bits/version.h: Regenerate.
	* libsupc++/exception: Check correct value.
	* testsuite/18_support/exception/version.cc: New test.

2025-07-14  Jonathan Wakely  <jwakely@redhat.com>

	* libsupc++/exception_ptr.h (make_exception_ptr): Return null
	for consteval when -fno-exceptions is used.
	(exception_ptr_cast): Likewise. Allow consteval path to work
	with -fno-rtti.

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

	* libsupc++/exception_ptr.h: Implement C++26 P3748R0 - Inspecting
	exception_ptr should be constexpr.
	(std::exception_ptr_cast): Make constexpr, remove inline keyword.  Add
	static_asserts for Mandates.  For if consteval use std::rethrow_exception,
	catch it and return its address or nullptr.
	* testsuite/18_support/exception_ptr/exception_ptr_cast.cc (E::~E): Add
	constexpr.
	(G::G): Likewise.
	(test01): Likewise.  Return bool and take bool argument, throw if the
	argument is true.  Add static_assert(test01(false)).
	(main): Call test01(true) in try.

2025-07-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/cpp_type_traits.h (__is_floating<__float128>):
	Do not depend on __STRICT_ANSI__.
	* include/bits/stl_algobase.h (__size_to_integer(__float128)):
	Likewise.
	* include/std/type_traits (__is_floating_point_helper<__float128>):
	Likewise.

2025-07-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/96710
	* include/bits/cpp_type_traits.h (__is_integer): Define explicit
	specializations for __int128.
	(__memcpyable_integer): Remove explicit specializations for
	__int128.
	* include/bits/iterator_concepts.h (incrementable_traits):
	Likewise.
	(__is_signed_int128, __is_unsigned_int128, __is_int128): Remove.
	(__is_integer_like, __is_signed_integer_like): Remove check for
	__int128.
	* include/bits/max_size_type.h: Remove all uses of __is_int128
	in constraints.
	* include/bits/ranges_base.h (__to_unsigned_like): Remove
	overloads for __int128.
	(ranges::ssize): Remove special case for __int128.
	* include/bits/stl_algobase.h (__size_to_integer): Define
	__int128 overloads for strict modes.
	* include/ext/numeric_traits.h (__is_integer_nonstrict): Remove
	explicit specializations for __int128.
	* include/std/charconv (to_chars): Define overloads for
	__int128.
	* include/std/format (__format::make_unsigned_t): Remove.
	(__format::to_chars): Remove.
	* include/std/limits (numeric_limits): Define explicit
	specializations for __int128.
	* include/std/type_traits (__is_integral_helper): Likewise.
	(__make_unsigned, __make_signed): Likewise.

2025-07-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/117785
	* include/bits/version.def (constexpr_exceptions): New.
	* include/bits/version.h: Regenerate.
	* libsupc++/exception (std::bad_exception::bad_exception): Add
	_GLIBCXX26_CONSTEXPR.
	(std::bad_exception::~bad_exception, std::bad_exception::what): For
	C++26 add constexpr and define inline.
	* libsupc++/exception.h (std::exception::exception,
	std::exception::operator=): Add _GLIBCXX26_CONSTEXPR.
	(std::exception::~exception, std::exception::what): For C++26 add
	constexpr and define inline.
	* libsupc++/exception_ptr.h (std::make_exception_ptr): Add
	_GLIBCXX26_CONSTEXPR.  For if consteval use just throw with
	current_exception() in catch.
	(std::exception_ptr::exception_ptr(void*)): For C++26 add constexpr
	and define inline.
	(std::exception_ptr::exception_ptr()): Add _GLIBCXX26_CONSTEXPR.
	(std::exception_ptr::exception_ptr(const exception_ptr&)): Likewise.
	Use __builtin_eh_ptr_adjust_ref if consteval and compiler has it
	instead of _M_addref.
	(std::exception_ptr::exception_ptr(nullptr_t)): Add
	_GLIBCXX26_CONSTEXPR.
	(std::exception_ptr::exception_ptr(exception_ptr&&)): Likewise.
	(std::exception_ptr::operator=): Likewise.
	(std::exception_ptr::~exception_ptr): Likewise.  Use
	__builtin_eh_ptr_adjust_ref if consteval and compiler has it
	instead of _M_release.
	(std::exception_ptr::swap): Add _GLIBCXX26_CONSTEXPR.
	(std::exception_ptr::operator bool): Likewise.
	(std::exception_ptr::operator==): Likewise.
	* libsupc++/nested_exception.h
	(std::nested_exception::nested_exception): Add _GLIBCXX26_CONSTEXPR.
	(std::nested_exception::operator=): Likewise.
	(std::nested_exception::~nested_exception): For C++26 add constexpr
	and define inline.
	(std::nested_exception::rethrow_if_nested): Add _GLIBCXX26_CONSTEXPR.
	(std::nested_exception::nested_ptr): Likewise.
	(std::_Nested_exception::_Nested_exception): Likewise.
	(std::throw_with_nested, std::rethrow_if_nested): Likewise.
	* libsupc++/new (std::bad_alloc::bad_alloc): Likewise.
	(std::bad_alloc::operator=): Likewise.
	(std::bad_alloc::~bad_alloc): For C++26 add constexpr and define
	inline.
	(std::bad_alloc::what): Likewise.
	(std::bad_array_new_length::bad_array_new_length): Add
	_GLIBCXX26_CONSTEXPR.
	(std::bad_array_new_length::~bad_array_new_length): For C++26 add
	constexpr and define inline.
	(std::bad_array_new_length::what): Likewise.
	* libsupc++/typeinfo (std::bad_cast::bad_cast): Add
	_GLIBCXX26_CONSTEXPR.
	(std::bad_cast::~bad_cast): For C++26 add constexpr and define inline.
	(std::bad_cast::what): Likewise.
	(std::bad_typeid::bad_typeid): Add _GLIBCXX26_CONSTEXPR.
	(std::bad_typeid::~bad_typeid): For C++26 add constexpr and define
	inline.
	(std::bad_typeid::what): Likewise.

2025-07-10  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/22_locale/codecvt/codecvt_unicode.h
	(ucs2_to_utf8_out_error): Comment spelling fix: bellow -> below.
	(utf16_to_ucs2_in_error): Likewise.

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

	* include/bits/stl_uninitialized.h (__uninitialized_default):
	Do not use optimized implementation for constexpr case. Use
	_GLIBCXX20_CONSTEXPR instead of _GLIBCXX26_CONSTEXPR.

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

	* include/std/mdspan (mdspan): Add template keyword for
	dependent name.

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

	PR libstdc++/120997
	* include/std/span (span::first, span::last, span::subspan): Do
	not use braced-init-list for return statements.
	* testsuite/23_containers/span/120997.cc: New test.

2025-07-09  Paul Keir  <pkeir@outlook.com>

	PR libstdc++/117403
	* include/bits/shared_ptr.h (shared_ptr::owner_equal)
	(shared_ptr::owner_hash, weak_ptr::owner_equal)
	(weak_ptr::owner_hash): Define new member functions.
	* include/bits/shared_ptr_base.h (owner_equal, owner_hash):
	Define new structs.
	* include/bits/version.def (smart_ptr_owner_equality): Define.
	* include/bits/version.h: Regenerate.
	* include/std/memory: Added define for
	__glibcxx_want_smart_ptr_owner_equality.
	* testsuite/20_util/owner_equal/version.cc: New test.
	* testsuite/20_util/owner_equal/cmp.cc: New test.
	* testsuite/20_util/owner_equal/noexcept.cc: New test.
	* testsuite/20_util/owner_hash/cmp.cc: New test.
	* testsuite/20_util/owner_hash/noexcept.cc: New test.
	* testsuite/20_util/shared_ptr/observers/owner_equal.cc: New
	test.
	* testsuite/20_util/shared_ptr/observers/owner_hash.cc:
	New test.
	* testsuite/20_util/weak_ptr/observers/owner_equal.cc: New test.
	* testsuite/20_util/weak_ptr/observers/owner_hash.cc: New test.

2025-07-09  Mateusz Zych  <mte.zych@gmail.com>

	* include/bits/max_size_type.h (numeric_limits<__max_size_type>):
	New members.
	(numeric_limits<__max_diff_type>): Likewise.
	* testsuite/std/ranges/iota/max_size_type.cc: New test cases.

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

	* src/c++17/memory_resource.cc: Adjust indentation of unnamed
	namespaces.
	(pool_sizes): Add comment.
	(choose_block_size): Move outside preprocessor group for
	gthreads targets.
	* testsuite/20_util/synchronized_pool_resource/118681.cc:
	Require gthreads.

2025-07-09  H.J. Lu  <hjl.tools@gmail.com>

	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
	Updated.

2025-07-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118681
	* testsuite/20_util/unsynchronized_pool_resource/118681.cc: Fix
	deallocate argument.

2025-07-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118681
	* src/c++17/memory_resource.cc (choose_block_size): New
	function.
	(synchronized_pool_resource::do_allocate): Use choose_block_size
	to determine appropriate block size.
	(synchronized_pool_resource::do_deallocate): Likewise
	(unsynchronized_pool_resource::do_allocate): Likewise.
	(unsynchronized_pool_resource::do_deallocate): Likewise
	* testsuite/20_util/synchronized_pool_resource/118681.cc: New
	test.
	* testsuite/20_util/unsynchronized_pool_resource/118681.cc: New
	test.

2025-07-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/debug/forward_list (_Safe_forward_list<>::_M_swap):
	Adapt to _M_this() signature change.

2025-07-08  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119861
	* include/std/format (formatter<_Rg, _CharT>::set_separator)
	(formatter<_Rg, _CharT>::set_brackets): Constrain with
	(format_kind<_Rg> == range_format::sequence).
	* testsuite/std/format/ranges/pr119861_neg.cc: New test.

2025-07-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/120914
	* include/std/span (span): Update CTAD to enable
	integral constants [P3029R1].
	* include/std/mdspan (extents): ditto.
	(mdspan): ditto.
	* testsuite/23_containers/span/deduction.cc: Test deduction
	guide.
	* testsuite/23_containers/mdspan/extents/misc.cc: ditto.
	* testsuite/23_containers/mdspan/mdspan.cc: ditto.

2025-07-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* testsuite/23_containers/span/contiguous_range_neg.cc: Silence
	warning about unused variable myspan.

2025-07-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/107761
	* include/bits/version.def (mdspan): Set to 202207 and remove
	no_stdname.
	* include/bits/version.h: Regenerate.
	* testsuite/23_containers/mdspan/version.cc: Test presence
	of feature test macro.

2025-07-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/107761
	* include/std/mdspan (mdspan): New class.
	* src/c++23/std.cc.in (mdspan): Add.
	* testsuite/23_containers/mdspan/class_mandate_neg.cc: New test.
	* testsuite/23_containers/mdspan/mdspan.cc: New test.
	* testsuite/23_containers/mdspan/layout_like.h: Add class
	LayoutLike which models a user-defined layout.
	* testsuite/23_containers/mdspan/out_of_bounds_neg.cc: New file.

2025-07-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (__mdspan::__size): New function.

2025-07-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* testsuite/23_containers/mdspan/extents/custom_integer.cc:
	Delete IntLike and include "int_like.h".
	* testsuite/23_containers/mdspan/extents/int_like.h: Add
	IntLike.

2025-07-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (extents): Check prerequisite of the ctor that
	static_extent(i) == dynamic_extent || extent(i) == other.extent(i).
	* testsuite/23_containers/mdspan/extents/class_mandates_neg.cc:
	Test the implemented prerequisite.
	* testsuite/23_containers/mdspan/extents/extents_mismatch_neg.cc: New file.

2025-07-08  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan: Check prerequisites of
	layout_*::operator() with _GLIBCXX_DEBUG_ASSERTs.
	* testsuite/23_containers/mdspan/layouts/debug/out_of_bounds_neg.cc:
	Add tests for prerequisites.

2025-07-08  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/queue (formatter<queue<_Tp, _Container>, _CharT>)
	(formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>):
	Add _GLIBCXX_RESOLVE_LIB_DEFECTS comments.

2025-07-08  François Dumont  <frs.dumont@gmail.com>

	PR c++/116369
	* config/abi/pre/gnu-versioned-namespace.ver: Use new const qualified symbols.
	* config/abi/pre/gnu.ver: Add new const qualified symbols.
	* include/debug/safe_base.h
	(_Safe_iterator_base::_M_sequence): Declare as pointer-to-const.
	(_Safe_iterator_base::_M_attach, _M_attach_single): New, take pointer-to-const
	_Safe_sequence_base.
	(_Safe_sequence_base::_M_detach_all, _M_detach_singular, _M_revalidate_singular)
	(_M_swap, _M_get_mutex): New, const qualified.
	(_Safe_sequence_base::_M_attach, _M_attach_single, _M_detach, _M_detach_single):
	const qualify.
	* include/debug/safe_container.h (_Safe_container<>::_M_cont): Add const qualifier.
	(_Safe_container<>::_M_swap_base): New.
	(_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)):
	Adapt to use latter.
	(_Safe_container<>::operator=(_Safe_container&&)): Likewise.
	(_Safe_container<>::_M_swap): Likewise and take parameter as const reference.
	* include/debug/safe_unordered_base.h
	(_Safe_local_iterator_base::_M_safe_container): New.
	(_Safe_local_iterator_base::_Safe_local_iterator_base): Take
	_Safe_unordered_container_base as pointer-to-const.
	(_Safe_unordered_container_base::_M_attach, _M_attach_single): New, take
	container as _Safe_unordered_container_base pointer-to-const.
	(_Safe_unordered_container_base::_M_local_iterators, _M_const_local_iterators):
	Add mutable.
	(_Safe_unordered_container_base::_M_detach_all, _M_swap): New, const qualify.
	(_Safe_unordered_container_base::_M_attach_local, _M_attach_local_single)
	(_M_detach_local, _M_detach_local_single): Add const qualifier.
	* include/debug/safe_unordered_container.h (_Safe_unordered_container::_M_self()): New.
	* include/debug/safe_unordered_container.tcc
	(_Safe_unordered_container::_M_invalidate_if, _M_invalidated_local_if): Use latter.
	* include/debug/safe_iterator.h (_Safe_iterator<>::_M_attach, _M_attach_single):
	Take _Safe_sequence_base as pointer-to-const.
	(_Safe_iterator<>::_M_get_sequence): Add const_cast and comment about it.
	* include/debug/safe_local_iterator.h (_Safe_local_iterator<>): Replace usages
	of _M_sequence member by _M_safe_container().
	(_Safe_local_iterator<>::_M_attach, _M_attach_single): Take
	_Safe_unordered_container_base as pointer-to-const.
	(_Safe_local_iterator<>::_M_get_sequence): Rename into...
	(_Safe_local_iterator<>::_M_get_ucontainer): ...this. Add necessary const_cast and
	comment to explain it.
	(_Safe_local_iterator<>::_M_is_begin, _M_is_end): Adapt.
	* include/debug/safe_local_iterator.tcc: Adapt.
	* include/debug/safe_sequence.h
	(_Safe_sequence<>::_M_invalidate_if, _M_transfer_from_if): Add const qualifier.
	* include/debug/safe_sequence.tcc: Adapt.
	* include/debug/deque (std::__debug::deque::erase): Adapt to use new const
	qualified methods.
	* include/debug/formatter.h: Adapt.
	* include/debug/forward_list (_Safe_forward_list::_M_this): Add const
	qualification and return pointer for consistency with 'this' keyword.
	(_Safe_forward_list::_M_swap_aux): Rename into...
	(_Safe_forward_list::_S_swap_aux): ...this and take sequence as const reference.
	(forward_list<>::resize): Adapt to use const methods.
	* include/debug/list (list<>::resize): Likewise.
	* src/c++11/debug.cc: Adapt to const qualification.
	* testsuite/util/testsuite_containers.h
	(forward_members_unordered::forward_members_unordered): Add check on local_iterator
	conversion to const_local_iterator.
	(forward_members::forward_members): Add check on iterator conversion to
	const_iterator.
	* testsuite/23_containers/unordered_map/const_container.cc: New test case.
	* testsuite/23_containers/unordered_multimap/const_container.cc: New test case.
	* testsuite/23_containers/unordered_multiset/const_container.cc: New test case.
	* testsuite/23_containers/unordered_set/const_container.cc: New test case.
	* testsuite/23_containers/vector/debug/mutex_association.cc: Adapt.

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

	PR libstdc++/120949
	* include/bits/stl_iterator.h (__normal_iterator): Fix order of
	always_inline and nodiscard attributes for Clang compatibility.

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

	* testsuite/util/testsuite_hooks.h (VERIFY): Define as variadic
	macro.
	* testsuite/ext/verify_neg.cc: New test.

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

	* include/std/mdspan (__mapping_of): Add template keyword.

2025-07-07  XU Kailiang  <xu2k3l4@outlook.com>
	    Tomasz Kaminski  <tkaminsk@redhat.com>

	PR libstdc++/117214
	* include/bits/chrono_io.h (_ChronoSpec::_M_time_only): Remove.
	(_ChronoSpec::_M_time_point): Define.
	(__formatter_chrono::_M_parse): Use __parts to determine
	interpretation of j.
	(__formatter_chrono::_M_check_ok): Define.
	(__formatter_chrono::_M_format_to): Invoke _M_check_ok.
	(__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B): Move
	exception throwing to _M_check_ok.
	(__formatter_chrono::_M_j): Use _M_needs to define interpretation.
	(__formatter_duration::_S_spec_for): Set _M_time_point.
	* testsuite/std/time/format/format.cc: Test for exception for !ok()
	months/weekday.
	* testsuite/std/time/format/pr117214_custom_timeput.cc: New
	test.

2025-07-07  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/120976
	* include/std/format (formatter<__float128, _Char_T): Define if
	_GLIBCXX_FORMAT_F128 == 2.

2025-07-06  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_algo.h (shift_left, shift_right): Guard
	with __glibcxx_shift >= 201806L.
	(ranges::__shift_left_fn, ranges::shift_left): Define for C++23.
	(ranges::__shift_right_fn, ranges::shift_right): Likewise.
	* include/bits/version.def (shift): Update for C++23.
	* include/bits/version.h: Regenerate.
	* src/c++23/std.cc.in: Add ranges::shift_left/right.
	* testsuite/25_algorithms/shift_left/constrained.cc: New test,
	based off of 1.cc.
	* testsuite/25_algorithms/shift_right/constrained.cc: New test,
	based off of 1.cc.

2025-07-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/chrono_io.h (__formatter_duration::_S_spec_for):
	Add default case to switch and use __builtin_unreachable.

2025-07-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_algobase.h (__size_to_integer): Move
	misplaced unsigned keyword on __size_to_integer overloads for
	__GLIBCXX_TYPE_INT_N_3 integer type.

2025-07-03  Nathan Myers  <ncm@cantrip.org>

	* include/bits/version.def: Fix typo.
	* include/bits/version.h: Rebuilt.

2025-07-03  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/120934
	* include/std/ranges (concat_view::end): Refine condition
	for returning an iterator instead of default_sentinel as
	per the updated P/R for LWG 4166.
	* testsuite/std/ranges/concat/1.cc (test05): New test.

2025-07-03  Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/119742
	* include/bits/version.def: Add preprocessor symbol.
	* include/bits/version.h: Add preprocessor symbol.
	* include/std/bitset: Add constructor.
	* testsuite/20_util/bitset/cons/1.cc: Fix.
	* testsuite/20_util/bitset/cons/6282.cc: Fix.
	* testsuite/20_util/bitset/cons/string_view.cc: Test new ctor.
	* testsuite/20_util/bitset/cons/string_view_wide.cc: Test new ctor.

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

	PR libstdc++/120931
	* include/bits/stl_uninitialized.h (__uninitialized_fill<true>):
	Fix typo resulting in call to __do_uninit_copy instead of
	__do_uninit_fill.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill/120931.cc:
	New test.

2025-07-02  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_iterator.h (__normal_iterator): Make all
	non-member operators hidden friends, except ...
	(operator<=>(__normal_iterator<I,C>, __normal_iterator<I,C>)):
	Remove.
	* src/c++11/string-inst.cc: Remove explicit instantiations of
	operators that are no longer templates.
	* src/c++23/std.cc.in (__gnu_cxx): Do not export operators for
	__normal_iterator.

2025-07-02  Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/119744
	* include/std/ranges: View ctors become explicit.

2025-07-01  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/120789
	* include/bits/ranges_algo.h (__remove_if_fn::operator()): Use
	ranges::iter_move(iter) instead of std::move(*iter).
	* testsuite/25_algorithms/remove_if/120789.cc: New test.

2025-07-01  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/120789
	* include/bits/ranges_algo.h (__unique_fn::operator()): Use
	ranges::iter_move(iter) instead of std::move(*iter).
	* testsuite/25_algorithms/unique/120789.cc: New test.

2025-07-01  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (default_accessor): New class.
	* src/c++23/std.cc.in: Register default_accessor.
	* testsuite/23_containers/mdspan/accessors/default.cc: New test.
	* testsuite/23_containers/mdspan/accessors/default_neg.cc: New test.

2025-06-27  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100795
	* include/bits/ranges_algo.h (shuffle_fn::operator()):
	Reimplement directly, based on the stl_algo.h implementation.
	* testsuite/25_algorithms/shuffle/constrained.cc (test02):
	New test.

2025-06-27  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100795
	* include/bits/ranges_algo.h (__sample_fn::operator()):
	Reimplement the forward_iterator branch directly, based
	on the stl_algo.h implementation.  Add explicit cast to
	_Out's difference_type in the !forward_iterator branch.
	* testsuite/25_algorithms/sample/constrained.cc (test02):
	New test.

2025-06-27  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100795
	* include/bits/ranges_algo.h (__detail::__introselect): New,
	based on the stl_algo.h implementation.
	(nth_element_fn::operator()): Reimplement in terms of the above.
	* testsuite/25_algorithms/nth_element/constrained.cc:

2025-06-27  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100795
	* include/bits/ranges_algo.h (__detail::__find_if_not_n): New,
	based on the stl_algo.h implementation.
	(__detail::__stable_partition_adaptive): Likewise.
	(__stable_partition_fn::operator()): Reimplement in terms of
	the above.
	* testsuite/25_algorithms/stable_partition/constrained.cc
	(test03): New test.

2025-06-27  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100795
	* include/bits/ranges_algo.h (__detail::__move_merge): New,
	based on the stl_algo.h implementation.
	(__detail::__merge_sort_loop): Likewise.
	(__detail::__chunk_insertion_sort): Likewise.
	(__detail::__merge_sort_with_buffer): Likewise.
	(__detail::__stable_sort_adaptive): Likewise.
	(__detail::__stable_sort_adaptive_resize): Likewise.
	(__detail::__inplace_stable_sort): Likewise.
	(__stable_sort_fn::operator()): Reimplement in terms of the above.
	* testsuite/25_algorithms/stable_sort/constrained.cc:

2025-06-27  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100795
	* include/bits/ranges_algo.h (__detail::__move_merge_adaptive):
	New, based on the stl_algo.h implementation.
	(__detail::__move_merge_adaptive_backward): Likewise.
	(__detail::__rotate_adaptive): Likewise.
	(__detail::__merge_adaptive): Likewise.
	(__detail::__merge_adaptive_resize): Likewise.
	(__detail::__merge_without_buffer): Likewise.
	(__inplace_merge_fn::operator()): Reimplement in terms of the
	above.
	* testsuite/25_algorithms/inplace_merge/constrained.cc (test03):
	New test.

2025-06-27  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100795
	PR libstdc++/118209
	* include/bits/max_size_type.h (__bit_width): New explicit
	specialization for __max_size_type.
	* include/bits/ranges_algo.h (__detail::__move_median_to_first):
	New, based on the stl_algo.h implementation.
	(__detail::__unguarded_liner_insert): Likewise.
	(__detail::__insertion_sort): Likewise.
	(__detail::__sort_threshold): Likewise.
	(__detail::__unguarded_insertion_sort): Likewise.
	(__detail::__final_insertion_sort): Likewise.
	(__detail::__unguarded_partition): Likewise.
	(__detail::__unguarded_partition_pivot): Likewise.
	(__detail::__heap_select): Likewise.
	(__detail::__partial_sort): Likewise.
	(__detail::__introsort_loop): Likewise.
	(__sort_fn::operator()): Reimplement in terms of the above.
	* testsuite/25_algorithms/sort/118209.cc: New test.
	* testsuite/25_algorithms/sort/constrained.cc (test03): New test.

2025-06-27  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/100795
	* include/bits/ranges_algo.h (__detail::__push_heap): New,
	based on the stl_heap.h implementation.
	(__push_heap_fn::operator()): Reimplement in terms of the above.
	(__detail::__adjust_heap): New, based on the stl_heap.h
	implementation.
	(__deatil::__pop_heap): Likewise.
	(__pop_heap_fn::operator()): Reimplement in terms of the above.
	(__make_heap_fn::operator()): Likewise.
	(__sort_heap_fn::operator()): Likewise.
	* testsuite/25_algorithms/heap/constrained.cc (test03): New
	test.

2025-06-27  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/110739
	* include/bits/chrono_io.h (__formatter_chrono::_S_empty_fs): Define.
	(__formatter_chrono::_S_str_d2): Use _S_str_d3 for 3+ digits and
	place allways_inline attribute after comment.
	(__formatter_chrono::_S_str_d3): Extracted from _S_str_d2.
	(__formatter_chrono::_M_H_I, __formatter_chrono::_M_R_X): Replace
	_S_empty_spec with _S_empty_fs().
	(__formatter_chrono::_M_j): Likewise and use _S_str_d3 in common
	case.
	(__format::operator-(_ChronoParts, _ChronoParts))
	(__format::operator-=(_ChronoParts, _ChronoParts))
	(__formatter_chrono::_S_fill_two_digits)
	(__formatter_chrono::_S_str_d1): Place always_inline attribute
	after comment.

2025-06-27  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/110739
	* include/bits/chrono_io.h (__formatter_chrono::_M_format_to):
	Rename _Out to _OutIter for consistency, and update calls
	to specifier functions.
	(__formatter_chrono::_M_wi, __formatter_chrono::_M_C_y_Y)
	(__formatter_chrono::_M_D_x, __formatter_chrono::_M_d_e)
	(__formatter_chrono::_M_F, __formatter_chrono::_M_g_G)
	(__formatter_chrono::_M_H_I, __formatter_chrono::_M_j)
	(__formatter_chrono::_M_m, __formatter_chrono::_M_M)
	(__formatter_chrono::_M_q, __formatter_chrono::_M_R_X)
	(__formatter_chrono::_M_u_w, __formatter_chrono::_M_U_V_W)
	(__formatter_chrono::_M_z, __formatter_chrono::_M_z):
	Remove _FormatContext parameter, and  introduce _OutIter
	for __out type.
	(__formatter_chrono::_M_a_A, __formatter_chrono::_M_B_b)
	(__formatter_chrono::_M_p, __formatter_chrono::_M_Q)
	(__formatter_chrono::_M_r, __formatter_chrono::_M_S)
	(__formatter_chrono::_M_subsecs, __formatter_chrono::_M_T):
	Introduce separate _OutIter template parameter for __out.
	(__formatter_chrono::_M_c, __formatter_chrono::_M_T):
	Likewise, and adjust calls to specifiers functions.
	* testsuite/std/time/format/empty_spec.cc: Make underlying
	type for Rep configurable.

2025-06-27  Iain Sandoe  <iain@sandoe.co.uk>

	* config/abi/pre/gnu.ver: Keep the closing brace of the
	CXXABI_1.3.17 symbol group together with the identifier
	for the inherited group.

2025-06-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/110739
	* include/bits/chrono_io.h (__formatter_chrono::_M_use_locale_fmt):
	Define.
	(__formatter_chrono::_M_locale_fmt): Moved to front of the class.
	(__formatter_chrono::_M_format_to): Construct and initialize
	struct tm and call _M_locale_fmt if needed.
	(__formatter_chrono::_M_c_r_x_X): Split into separate methods.
	(__formatter_chrono::_M_c, __formatter_chrono::_M_r): Define.
	(__formatter_chrono::_M_D): Renamed to _M_D_x.
	(__formatter_chrono::_M_D_x): Renamed from _M_D.
	(__formatter_chrono::_M_R_T): Split into _M_R_X and _M_T.
	(__formatter_chrono::_M_R_X): Extracted from _M_R_T.
	(__formatter_chrono::_M_T): Define in terms of _M_R_X and _M_subsecs.
	(__formatter_chrono::_M_subsecs): Extracted from _M_S.
	(__formatter_chrono::_M_S): Replaced __mod with __subs argument,
	removed _M_locale_fmt call, and delegate to _M_subsecs.
	(__formatter_chrono::_M_C_y_Y, __formatter_chrono::_M_d_e)
	(__formatter_chrono::_M_H_I, __formatter_chrono::_M_m)
	(__formatter_chrono::_M_u_w, __formatter_chrono::_M_U_V_W): Remove
	__mod argument and call to _M_locale_fmt.

2025-06-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/110739
	* include/bits/chrono_io.h (__format::__no_timezone_available):
	Removed, replaced with separate throws in formatter for
	__local_time_fmt
	(__format::_ChronoParts): Defined additional enumertors and
	declared as enum class.
	(__format::operator&(_ChronoParts, _ChronoParts))
	(__format::operator&=(_ChronoParts&, _ChronoParts))
	(__format::operator-(_ChronoParts, _ChronoParts))
	(__format::operator-=(_ChronoParts&, _ChronoParts))
	(__format::operator==(_ChronoParts, decltype(nullptr)))
	(_ChronoSpec::_M_time_only, _ChronoSpec::_M_floating_point_rep)
	(_ChronoSpec::_M_custom_rep, _ChronoSpec::_M_needed)
	(_ChronoSpec::_M_needs, __format::_ChronoData): Define.
	(__format::__formatter_chrono): Redefine to accept _ChronoData.
	(__formatter_chrono::_M_format_to_ostream): Moved to
	__formatter_duration.
	(__format::__formatter_duration): Define.
	(__formatter_chrono_info::format): Pass value-constructed
	_ChronoData.
	(std::formatter<chrono::day, _CharT>)
	(std::formatter<chrono::month, _CharT>)
	(std::formatter<chrono::year, _CharT>)
	(std::formatter<chrono::weekday, _CharT>)
	(std::formatter<chrono::weekday_indexed, _CharT>)
	(std::formatter<chrono::weekday_last, _CharT>)
	(std::formatter<chrono::month_day, _CharT>)
	(std::formatter<chrono::month_day_last, _CharT>)
	(std::formatter<chrono::month_weekday, _CharT>)
	(std::formatter<chrono::month_weekday_indexed, _CharT>)
	(std::formatter<chrono::month_weekday_last, _CharT>)
	(std::formatter<chrono::year_month, _CharT>)
	(std::formatter<chrono::year_month_day, _CharT>)
	(std::formatter<chrono::year_month_day_last, _CharT>)
	(std::formatter<chrono::year_month_weekday, _CharT>)
	(std::formatter<chrono::year_month_weekday_indexed, _CharT>)
	(std::formatter<chrono::year_month_weekday_last, _CharT>):
	Construct _ChronoData in format, and configure _M_needed in
	_ChronoSpec.
	(std::formatter<chrono::duration<_Rep, _Period>, _CharT>)
	(std::formatter<chrono::hh_mm_ss<_Duration>, _CharT>)
	(std::formatter<chrono::sys_time<_Duration>, _CharT>)
	(std::formatter<chrono::utc_time<_Duration>, _CharT>)
	(std::formatter<chrono::tai_time<_Duration>, _CharT>)
	(std::formatter<chrono::gps_time<_Duration>, _CharT>)
	(std::formatter<chrono::file_time<_Duration>, _CharT>)
	(std::formatter<chrono::local_time<_Duration>, _CharT>)
	(std::formatter<chrono::_detail::__local_time_fmt<_Duration>, _CharT>):
	Reworked in terms of __formatter_duration and _ChronoData.
	(std::formatter<chrono::_detail::__utc_leap_second<_Duration>, _CharT>):
	Removed.
	(_Parser<_Duration>::operator()): Adjusted for _ChronoParts
	being enum class.
	* include/std/chrono (__detail::__utc_leap_second): Removed,
	replaced with simply bumping _M_seconds in _ChronoData.
	* testsuite/std/time/format/empty_spec.cc: Updated %S integral
	ouput.

2025-06-26  Jakub Jelinek  <jakub@redhat.com>

	* include/bits/version.def (exception_ptr_cast): Add.
	* include/bits/version.h: Regenerate.
	* libsupc++/exception: Define __glibcxx_want_exception_ptr_cast before
	including bits/version.h.
	* libsupc++/exception_ptr.h (std::exception_ptr_cast): Define.
	(std::__exception_ptr::exception_ptr::_M_exception_ptr_cast): Declare.
	* libsupc++/eh_ptr.cc
	(std::__exception_ptr::exception_ptr::_M_exception_ptr_cast): Define.
	* src/c++23/std.cc.in (std::exception_ptr_cast): Export.
	* config/abi/pre/gnu.ver: Export
	_ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info
	at CXXABI_1.3.17.
	* testsuite/util/testsuite_abi.cc (check_version): Allow CXXABI_1.3.17.
	* testsuite/18_support/exception_ptr/exception_ptr_cast.cc: New test.

2025-06-26  Jakub Jelinek  <jakub@redhat.com>

	* include/bits/version.def (type_order): New.
	* include/bits/version.h: Regenerate.
	* libsupc++/compare: Define __glibcxx_want_type_order before
	including bits/version.h.
	(std::type_order, std::type_order_v): New trait and template variable.
	* src/c++23/std.cc.in (std::type_order, std::type_order_v): Export.
	* testsuite/18_support/comparisons/type_order/1.cc: New test.

2025-06-25  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/time/format/precision.cc: New tests.

2025-06-25  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/120650
	* include/bits/chrono_io.h
	(formatter<chrono::month_day_last,_CharT>::parse): Call _M_parse with
	only Month being available.
	* testsuite/std/time/format/data_not_present_neg.cc: New test.

2025-06-24  Patrick Palka  <ppalka@redhat.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120717
	* include/std/type_traits (__maybe_complete_object_type): New
	helper trait, factored out from ...
	(__is_complete_or_unbounded): ... here.  Only check sizeof on a
	__maybe_complete_object_type type.  Fix formatting.
	* testsuite/20_util/is_complete_or_unbounded/120717.cc: New test.

2025-06-16  Jason Merrill  <jason@redhat.com>

	* testsuite/20_util/is_complete_or_unbounded/memoization.cc
	* testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
	Expect -Wsfinae-incomplete.

2025-06-13  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120397
	* include/bits/stl_uninitialized.h (_UninitDestroyGuard<I,void>):
	Add new member function _S_destroy and call it from the
	destructor (for C++17 only).
	* testsuite/20_util/specialized_algorithms/uninitialized_default_construct/120397.cc:
	New test.
	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/120397.cc:
	New test.

2025-06-13  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/120648
	* include/bits/chrono_io.h (__formatter_chrono::_M_format_to):
	Handle %c, %r, %x and %X by passing them to _M_c_r_x_X.
	(__formatter_chrono::_M_c_r_x_X): Reworked from _M_c.
	(__formatter_chrono::_M_c): Renamed into above.
	(__formatter_chrono::_M_r, __formatter_chrono::_M_x)
	(__formatter_chrono::_M_X): Removed.
	* testsuite/std/time/format/pr117214.cc: New tests for %r, %x,
	%X with date, time and durations.

2025-06-13  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_algo.h (__detail::__by_ref_or_value_fn): New.
	(__detail::_Comp_proj): New.
	(__detail::__make_comp_proj): Use it instead.
	(__detail::_Pred_proj): New.
	(__detail::__make_pred_proj): Use it instead.

2025-06-13  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	PR c++/120644
	* include/std/optional (format_kind): Do not use `auto`.

2025-06-13  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/23_containers/vector/bool/format.cc: Replaced _CharT
	with CharT.
	* testsuite/std/format/debug.cc: Likewise.
	* testsuite/std/format/ranges/adaptors.cc: Likewise.
	* testsuite/std/format/ranges/formatter.cc: Likewise.
	* testsuite/std/format/ranges/map.cc: Likewise.
	* testsuite/std/format/ranges/sequence.cc: Likewise.
	* testsuite/std/format/ranges/string.cc: Likewise.
	* testsuite/std/format/tuple.cc: Likewise.
	* testsuite/std/time/format/empty_spec.cc: Likewise.
	* testsuite/std/time/format/pr120114.cc: Likewise.
	* testsuite/std/time/format/pr120481.cc: Likewise.
	* testsuite/std/time/format/precision.cc: Likewise.

2025-06-13  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h (__formatter_chrono::_M_format):
	Remove handling of empty _M_chrono_specs.
	(__formatter_chrono::_M_format_to_ostream): Changed to accept
	only chrono::duration and made public.
	(std::formatter<chrono::duration<_Rep, _Period>, _CharT>):
	Configure __defSpec and handle empty chrono-spec locally.

2025-06-13  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h (__format::__formatter_chrono_info)
	[_GLIBCXX_USE_CXX11_ABI || ! _GLIBCXX_USE_DUAL_ABI]: Define.
	(std::formatter<chrono::sys_info, _CharT>)
	(std::formatter<chrono::local_inf, _CharT>): Delegate to
	__format::__formatter_chrono_info.
	(std::operator<<(basic_ostream<_CharT, _Traits>& const sys_info&)):
	Use format on sys_info with empty format spec.

2025-06-13  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/time/format/whitespace.cc: New test.

2025-06-12  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	PR libstdc++/119496
	* include/bits/stl_algo.h: Adjust calls to requested_size.
	* include/bits/stl_tempbuf.h (requested_size): Rename with
	an _M_ prefix.
	* testsuite/17_intro/names.cc: Add a #define for
	requested_size.

2025-06-12  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/formatfwd.h (format_kind): Move the definition
	(and some supporting code) from <format>.
	* include/std/format (format_kind): Likewise.
	* include/bits/version.def (optional_range_support): Add
	the feature-testing macro.
	* include/bits/version.h: Regenerate.
	* include/std/optional (iterator, const_iterator, begin, end):
	Add range support.
	(enable_view): Specialize for std::optional.
	(format_kind): Specialize for std::optional.
	* testsuite/20_util/optional/range.cc: New test.
	* testsuite/20_util/optional/version.cc: Test the new
	feature-testing macro.

2025-06-12  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h (_ChronoFormats::_S_ftz)
	(_ChronoFormats::_S_ft, _ChronoFormats::_S_t): Define.
	(__formatter_chrono::_M_format_to_ostream): Remove handling for
	time_points.
	(std::formatter<chrono::hh_mm_ss<_Dur>, _CharT>)
	(std::formatter<chrono::sys_time<_Dur>, _CharT>)
	(std::formatter<chrono::utc_time<_Dur>, _CharT>)
	(std::formatter<chrono::tai_time<_Dur>, _CharT>)
	(std::formatter<chrono::gps_time<_Dur>, _CharT>)
	(std::formatter<chrono::file_time<_Dur>, _CharT>)
	(std::formatter<chrono::local_time<_Dur>, _CharT>)
	(std::formatter<chrono::__detail::__local_time_fmt<_Dur>, _CharT>)
	(std::formatter<chrono::zoned_time<_Dur>, _CharT>):
	Define __defSpec, and pass it as argument to _M_prase and
	constructor of __formatter_chrono.

2025-06-12  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h (__format::_ChronoFormats): Define.
	(__formatter_chrono::__formatter_chrono())
	(__formatter_chrono::__formatter_chrono(_ChronoSpec<_CharT>)): Define.
	(__formatter_chrono::_M_parse): Add parameter with default spec,
	and merge it with new values. Handle '%\0' as weekday index
	specifier.
	(__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B)
	(__formatter_chrono::_M_C_y_Y, __formatter_chrono::_M_d_e)
	(__formatter_chrono::_M_F): Support _M_debug flag.
	(__formatter_chrono::_M_wi, __formatter_chrono::_S_weekday_index):
	Define.
	(std::formatter<chrono::day, _CharT>)
	(std::formatter<chrono::month, _CharT>)
	(std::formatter<chrono::year, _CharT>)
	(std::formatter<chrono::weekday, _CharT>)
	(std::formatter<chrono::weekday_indexed, _CharT>)
	(std::formatter<chrono::weekday_last, _CharT>)
	(std::formatter<chrono::month_day, _CharT>)
	(std::formatter<chrono::month_day_last, _CharT>)
	(std::formatter<chrono::month_weekday, _CharT>)
	(std::formatter<chrono::month_weekday_last, _CharT>)
	(std::formatter<chrono::year_month, _CharT>)
	(std::formatter<chrono::year_month_day, _CharT>)
	(std::formatter<chrono::year_month_day_last, _CharT>)
	(std::formatter<chrono::year_month_weekday, _CharT>)
	(std::formatter<chrono::year_month_weekday_last, _CharT>):
	Define __defSpec, and pass it as argument to _M_parse and
	constructor of __formatter_chrono.

2025-06-12  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/mdspan (__mdspan::__mapping_alike): Rename template
	parameter from M to _M_p.
	(layout_right::mapping): Replace class with typename in template
	head.
	(layout_stride::mapping): Fix typo in comment.
	* testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc:
	Changed B to function.

2025-06-12  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (layout_left): Strengthen the exception
	guarantees of layout_left::mapping(layout_stride::mapping).
	* testsuite/23_containers/mdspan/layouts/ctors.cc:
	Simplify tests to reflect the change.

2025-06-12  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc: Add
	tests for layout_stride.
	* testsuite/23_containers/mdspan/layouts/ctors.cc: Add test for
	layout_stride and the interaction with other layouts.
	* testsuite/23_containers/mdspan/layouts/empty.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/mapping.cc: Ditto.
	* testsuite/23_containers/mdspan/layouts/stride.cc: New test.

2025-06-12  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (layout_stride): New class.
	* src/c++23/std.cc.in: Add layout_stride.

2025-06-12  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc: Add
	tests for layout_right.
	* testsuite/23_containers/mdspan/layouts/ctors.cc: Add tests for
	layout_right and the interaction with layout_left.
	* testsuite/23_containers/mdspan/layouts/empty.cc: ditto.
	* testsuite/23_containers/mdspan/layouts/mapping.cc: ditto.

2025-06-12  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (layout_right): New class.
	* src/c++23/std.cc.in: Add layout_right.

2025-06-12  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc: New test.
	* testsuite/23_containers/mdspan/layouts/ctors.cc: New test.
	* testsuite/23_containers/mdspan/layouts/empty.cc: New test.
	* testsuite/23_containers/mdspan/layouts/mapping.cc: New test.

2025-06-12  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan (layout_left): New class.
	* src/c++23/std.cc.in: Add layout_left.

2025-06-12  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan(__mdspan::_ExtentsStorage): Change name
	of private member _M_dynamic_extens to _M_dyn_exts.
	(extents): Change name of private member from _M_dynamic_extents
	to _M_exts.
	Fix two instances of whitespace errors.
	* testsuite/23_containers/mdspan/extents/ctor_default.cc: Fix
	integer comparison with cmp_equal.

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

	* doc/xml/manual/test.xml: Improve discussion of copyright
	notices in new test cases.
	* doc/html/manual/test.html: Regenerate.

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

	* scripts/create_testsuite_files: Remove incorrect comment about
	filtering out wchar_t tests.

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

	PR libstdc++/120625
	* include/std/format (__format::__disabled): Remove.
	(__formatter_disabled): New type.
	(formatter<char*, wchar_t>, formatter<const char*, wchar_t>)
	(formatter<char[N], wchar_t>, formatter<string, wchar_t>)
	(formatter<string_view, wchar_t>): Use __formatter_disabled as
	base class instead of formatter<__disabled, wchar_t>.
	* testsuite/std/format/formatter/120625.cc: New test.

2025-06-11  Jonathan Wakely  <jwakely@redhat.com>

	* doc/doxygen/user.cfg.in (PREDEFINED): Remove -D prefixes from
	some macros. Define _GLIBCXX_USE_BUILTIN_TRAIT and
	_GLIBCXX_HAVE_ICONV macros.

2025-06-11  Jonathan Wakely  <jwakely@redhat.com>

	* libsupc++/exception: Remove redundant parentheses and adjust
	whitespace.

2025-06-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/type_traits: Restore @cond and @endcond balance.

2025-06-11  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/time/format/empty_spec.cc: New tests.
	* testsuite/std/time/format/precision.cc: New test.

2025-06-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_construct.h: Replace std::__addressof with
	std::addressof in code that doesn't need to compile as C++98.
	Replace std::__is_constant_evaluated with
	std::is_constant_evaluated in code that doesn't need to compile
	as C++17 or earlier.
	* include/bits/stl_uninitialized.h: Likewise for __addressof.

2025-06-11  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/test.xml: Remove note about unused 'test'
	variables for old definition of VERIFY.
	* doc/html/manual/test.html: Regenerate.
	* testsuite/experimental/net/buffer/arithmetic.cc: Remove unused
	variable.
	* testsuite/experimental/net/buffer/const.cc: Likewise.
	* testsuite/experimental/net/buffer/mutable.cc: Likewise.
	* testsuite/experimental/net/buffer/size.cc: Likewise.
	* testsuite/experimental/net/timer/waitable/cons.cc: Likewise.
	* testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
	* testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
	* testsuite/ext/special_functions/airy_ai/check_value.cc:
	Likewise.
	* testsuite/ext/special_functions/airy_bi/check_value.cc:
	Likewise.
	* testsuite/ext/special_functions/conf_hyperg/check_value.cc:
	Likewise.
	* testsuite/ext/special_functions/hyperg/check_value.cc:
	Likewise.
	* testsuite/special_functions/01_assoc_laguerre/check_value.cc:
	Likewise.
	* testsuite/special_functions/02_assoc_legendre/check_value.cc:
	Likewise.
	* testsuite/special_functions/02_assoc_legendre/pr86655.cc:
	Likewise.
	* testsuite/special_functions/03_beta/check_value.cc: Likewise.
	* testsuite/special_functions/04_comp_ellint_1/check_value.cc:
	Likewise.
	* testsuite/special_functions/05_comp_ellint_2/check_value.cc:
	Likewise.
	* testsuite/special_functions/06_comp_ellint_3/check_value.cc:
	Likewise.
	* testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
	Likewise.
	* testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
	Likewise.
	* testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
	Likewise.
	* testsuite/special_functions/10_cyl_neumann/check_value.cc:
	Likewise.
	* testsuite/special_functions/11_ellint_1/check_value.cc:
	Likewise.
	* testsuite/special_functions/12_ellint_2/check_value.cc:
	Likewise.
	* testsuite/special_functions/13_ellint_3/check_value.cc:
	Likewise.
	* testsuite/special_functions/14_expint/check_value.cc:
	Likewise.
	* testsuite/special_functions/15_hermite/check_value.cc:
	Likewise.
	* testsuite/special_functions/16_laguerre/check_value.cc:
	Likewise.
	* testsuite/special_functions/17_legendre/check_value.cc:
	Likewise.
	* testsuite/special_functions/18_riemann_zeta/check_value.cc:
	Likewise.
	* testsuite/special_functions/19_sph_bessel/check_value.cc:
	Likewise.
	* testsuite/special_functions/20_sph_legendre/check_value.cc:
	Likewise.
	* testsuite/special_functions/20_sph_legendre/pr86655.cc:
	Likewise.
	* testsuite/special_functions/21_sph_neumann/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/pr86655.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_neg.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_neg.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_value.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/pr86655.cc:
	Likewise.
	* testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc:
	Likewise.

2025-06-11  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/sstream: Adjust whitespace.

2025-06-11  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120390
	* include/bits/stl_construct.h (_Destroy_aux::__destroy_n): New
	static member function.
	(_Destroy_aux<true>::__destroy_n): Likewise.
	(_Destroy_n_aux): Remove.
	(_Destroy(ForwardIterator, ForwardIterator)): Remove
	static_assert. Use is_trivially_destructible instead of
	__has_trivial_destructor.
	(_Destroy_n): Likewise. Use _Destroy_aux::__destroy_n instead of
	_Destroy_n_aux::__destroy_n.
	* testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
	Adjust dg-error strings. Move destroy_n tests to ...
	* testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc:
	New test.
	* testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
	Adjust dg-error strings.
	* testsuite/23_containers/vector/cons/destructible_neg.cc:
	Likewise.

2025-06-11  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/27_io/basic_istringstream/cons/char/string_view.cc:
	Only check get_allocator() for new string ABI.
	* testsuite/27_io/basic_ostringstream/cons/char/string_view.cc:
	Likewise.
	* testsuite/27_io/basic_stringbuf/cons/char/string_view.cc:
	Likewise.
	* testsuite/27_io/basic_stringstream/cons/char/string_view.cc:
	Likewise.

2025-06-10  Patrick Palka  <ppalka@redhat.com>

	* include/bits/max_size_type.h (__max_size_type::_M_val): Make
	public instead of private.
	(__max_size_type::_M_msb): Likewise.
	(__max_diff_type::_M_rep): Likewise.
	* testsuite/std/ranges/iota/max_size_type.cc: Verify
	__max_diff_type and __max_size_type are structural.

2025-06-10  Yihan Wang  <yronglin777@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/std/tuple (__can_make_from_tuple): New variable
	template.
	(__make_from_tuple_impl): Add static_assert.
	(make_from_tuple): Constrain using __can_make_from_tuple.
	* testsuite/20_util/tuple/dr3528.cc: New test.

2025-06-09  Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/119741
	* include/std/sstream: full implementation, really just
	decls, requires clause and plumbing.
	* include/bits/version.def, include/bits/version.h:
	new preprocessor symbol
	__cpp_lib_sstream_from_string_view.
	* testsuite/27_io/basic_stringbuf/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_istringstream/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_ostringstream/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_stringstream/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_stringbuf/cons/wchar_t/string_view.cc:
	New tests.
	* testsuite/27_io/basic_istringstream/cons/wchar_t/string_view.cc:
	New tests.
	* testsuite/27_io/basic_ostringstream/cons/wchar_t/string_view.cc:
	New tests.
	* testsuite/27_io/basic_stringstream/cons/wchar_t/string_view.cc:
	New tests.

2025-06-08  John David Anglin  <danglin@gcc.gnu.org>

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

2025-06-06  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/30_threads/semaphore/1.cc: Check type properties and
	max() values.
	* testsuite/30_threads/semaphore/3.cc: New test.
	* testsuite/30_threads/semaphore/cons_neg.cc: New test.

2025-06-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/semaphore_base.h (_Select_semaphore_impl): Rename
	to _Semaphore_impl and use std::conditional_t instead of an
	immediately invoked lambda expression.
	* include/std/semaphore (counting_semaphore): Adjust to use new
	name.

2025-06-06  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/30_threads/barrier/1.cc: Require hosted. Only
	require gthreads for non-linux targets.
	* testsuite/30_threads/barrier/2.cc: Likewise.
	* testsuite/30_threads/semaphore/1.cc: Likewise.
	* testsuite/30_threads/semaphore/2.cc: Likewise.
	* testsuite/30_threads/semaphore/cons.cc: Likewise.
	* testsuite/30_threads/semaphore/least_max_value_neg.cc:
	Likewise.
	* testsuite/30_threads/semaphore/try_acquire.cc: Likewise.

2025-06-06  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/120432
	* include/std/flat_map (flat_map::operator[]): Make the
	non-template overloads call try_emplace directly.  Remove
	non-standard same_as constraint on the template overload.
	* testsuite/23_containers/flat_map/1.cc (test08): New test.

2025-06-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h (__atomic_wait_address_until_v):
	Add assertion to prevent use with proxy waits.
	(__atomic_wait_address_for_v): Likewise.
	* include/bits/atomic_wait.h (__atomic_wait_address_v):
	Likewise.

2025-06-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_wait.h (__atomic_wait_address_v): Add bare
	wait flag.
	* include/bits/semaphore_base.h (__semaphore_base): Rename to
	__semaphore_impl. Replace local variable and predicate lambdas
	with _Available struct.
	(__platform_semaphore_impl): New class template.
	(__semaphore_impl): Remove alias template.
	(_Select_semaphore_impl): New alias template.
	* include/std/semaphore (counting_semaphore): Use
	_Select_semaphore_impl.

2025-06-06  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/120565
	* include/bits/chrono_io.h
	(operator<<(basic_ostream<_CharT, _Traits>&, const sys_info&))
	(operator<<(basic_ostream<_CharT, _Traits>&, const local_info&)):
	Support wchar_t as _CharT.
	* testsuite/std/time/format/empty_spec.cc: Instantiated test_infos for
	wchar_t and increase timeout.

2025-06-06  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/time/format/empty_spec.cc: New tests and increased
	timeout.

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

	PR libstdc++/120548
	* include/std/format (__formatter_fp::_M_localize): Do not
	include a leading sign character in the string to be grouped.
	* testsuite/std/format/functions/format.cc: Check grouping when
	sign is present in the output.

2025-06-05  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119152
	* src/c++23/std.cc.in (std::indirect, pmr::indirect)
	[__cpp_lib_indirect]
	(std::polymorphic, pmr::polymorphic) [__cpp_lib_polymorphic]: Export.

2025-06-05  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/120481
	* include/bits/chrono_io.h (__format::_S_chars): Reorder so it
	contains "-{}".
	(__format::_S_colon, __format::_S_slash, __format::_S_space)
	(__format::_S_plus_minus): Updated starting indicies.
	(__format::_S_minus_empty_spec): Define.
	(__formatter_chrono::_M_C_y_Y, __formatter_chrono::_M_R_T):
	Rework implementation.
	(__formatter_chrono::_M_d_e, __formatter_chrono::_M_F)
	(__formatter_chrono::_M_m, __formatter_chrono::_M_u_w)
	(__formatter_chrono::_M_H_I, __formatter_chrono::_M_p):
	Handle multi digits values.
	(__formatter_chrono::_S_digit): Return string view.
	(__formatter_chrono::_S_str_d1, __formatter_chrono::_S_str_d2)
	(__formatter_chrono::_S_fill_two_digits): Define.
	* testsuite/std/time/format/empty_spec.cc: Update test for
	year_month_day, that uses '%F'.
	* testsuite/std/time/format/pr120481.cc: New test.

2025-06-05  Nathan Myers  <ncm@cantrip.org>

	Revert:
	2025-06-04  Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/119741
	* include/std/sstream: full implementation, really just
	decls, requires clause and plumbing.
	* include/bits/version.def, include/bits/version.h:
	new preprocessor symbol
	__cpp_lib_sstream_from_string_view.
	* testsuite/27_io/basic_stringbuf/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_istringstream/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_ostringstream/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_stringstream/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_stringbuf/cons/wchar_t/string_view.cc:
	New tests.
	* testsuite/27_io/basic_istringstream/cons/wchar_t/string_view.cc:
	New tests.
	* testsuite/27_io/basic_ostringstream/cons/wchar_t/string_view.cc:
	New tests.
	* testsuite/27_io/basic_stringstream/cons/wchar_t/string_view.cc:
	New tests.

2025-06-04  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/std/time/format/empty_spec.cc: Only test time zones
	for cxx11 string ABI.

2025-06-04  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/99832
	* include/bits/chrono.h (system_clock::to_time_t): Add
	always_inline attribute to be agnostic to the underlying type of
	time_t.
	(system_clock::from_time_t): Add always_inline for consistency
	with to_time_t.
	* testsuite/20_util/system_clock/99832.cc: New test.

2025-06-04  Nathan Myers  <ncm@cantrip.org>

	PR libstdc++/119741
	* include/std/sstream: full implementation, really just
	decls, requires clause and plumbing.
	* include/bits/version.def, include/bits/version.h:
	new preprocessor symbol
	__cpp_lib_sstream_from_string_view.
	* testsuite/27_io/basic_stringbuf/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_istringstream/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_ostringstream/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_stringstream/cons/char/string_view.cc:
	New tests.
	* testsuite/27_io/basic_stringbuf/cons/wchar_t/string_view.cc:
	New tests.
	* testsuite/27_io/basic_istringstream/cons/wchar_t/string_view.cc:
	New tests.
	* testsuite/27_io/basic_ostringstream/cons/wchar_t/string_view.cc:
	New tests.
	* testsuite/27_io/basic_stringstream/cons/wchar_t/string_view.cc:
	New tests.

2025-06-04  Patrick Palka  <ppalka@redhat.com>

	* include/bits/c++config (_GLIBCXX_AUTO_CAST): Define.
	* include/bits/iterator_concepts.h (_Decay_copy, __decay_copy):
	Remove.
	(__member_begin, __adl_begin): Use _GLIBCXX_AUTO_CAST instead of
	__decay_copy as per P0849R8.
	* include/bits/ranges_base.h (_Begin): Likewise.
	(__member_end, __adl_end, _End): Likewise.
	(__member_rbegin, __adl_rbegin, _RBegin): Likewise.
	(__member_rend, __adl_rend, _Rend): Likewise.
	(__member_size, __adl_size, _Size): Likewise.
	(_Data): Likewise.

2025-06-04  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/time/format/empty_spec.cc: New tests.

2025-06-04  Patrick Palka  <ppalka@redhat.com>

	* include/bits/ranges_algo.h (__starts_with_fn, starts_with):
	Define.
	(__ends_with_fn, ends_with): Define.
	* include/bits/version.def (ranges_starts_ends_with): Define.
	* include/bits/version.h: Regenerate.
	* include/std/algorithm: Provide __cpp_lib_ranges_starts_ends_with.
	* src/c++23/std.cc.in (ranges::starts_with): Export.
	(ranges::ends_with): Export.
	* testsuite/25_algorithms/ends_with/1.cc: New test.
	* testsuite/25_algorithms/starts_with/1.cc: New test.

2025-06-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/semaphore_base.h (_S_get_current): Replace with
	non-static _M_get_current.
	(_S_do_try_acquire): Replace with non-static _M_do_try_acquire.

2025-06-04  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/104928
	* include/bits/semaphore_base.h (_S_do_try_acquire): Take old
	value by reference.
	(_M_acquire): Move _S_do_try_acquire call out of the predicate
	and loop on its result. Make the predicate capture and update
	the local copy of the value.
	(_M_try_acquire_until, _M_try_acquire_for): Likewise.
	(_M_try_acquire): Just call _M_try_acquire_for.
	* testsuite/30_threads/semaphore/104928-2.cc: New test.
	* testsuite/30_threads/semaphore/104928.cc: New test.

2025-06-04  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h (__formatter_chrono:_M_s): Add missing
	__out argument to format_to call.
	* testsuite/std/time/format/empty_spec.cc: New test.

2025-06-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/stop_token: Check __glibcxx_jthread instead of
	__cplusplus.

2025-06-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/type_traits (is_destructible, is_destructible_v):
	Define using new built-in.
	(is_nothrow_destructible, is_nothrow_destructible_v): Likewise.
	(is_trivially_destructible, is_trivially_destructible_v):
	Likewise.

2025-06-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h (__detail::__wait_until):
	Remove incorrect comment.
	(__atomic_wait_address_until_v): Do not take address of __args in
	call to __detail::__wait_until. Fix return statement to refer to
	member of __wait_result_type.
	(__atomic_wait_address_for_v): Change parameter type from
	time_point to duration.
	* src/c++20/atomic.cc (__spin_until_impl): Fix incorrect
	return value. Reuse result of first call to clock.

2025-06-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_vector.h (~_Vector_base): Add unreachable
	hint for negative capacity and cast to size_t explicitly.
	* include/bits/vector.tcc (vector::_M_realloc_append): Use
	size() instead of end() - begin().

2025-06-03  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/bit (__rotl, __rotr): Use static_cast for
	conversion from int to unsigned.

2025-06-03  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++23/std.cc.in: Remove redundant checks for feature test
	macros that are always true.

2025-06-02  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h (basic_string::size): Remove space
	before parameter list.
	(basic_string::capacity): Likewise.
	* include/bits/stl_deque.h (deque::size): Likewise.
	* include/bits/stl_vector.h (vector::size, vector::capacity):
	Likewise.
	* include/bits/vector.tcc (vector::_M_realloc_insert): Likewise.
	(vector::_M_realloc_append): Likewise.

2025-06-02  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120386
	* include/bits/ranges_algo.h (__unique_copy_fn): Reorder
	arguments for third case to match the first two cases.
	* include/bits/stl_algo.h (__unique_copy): Replace three
	overloads with two, depending only on the iterator category of
	the input range.  Dispatch to __unique_copy_1 for the
	non-forward case.
	(__unique_copy_1): New overloads for the case where the input
	range uses non-forward iterators.
	(unique_copy): Only pass the input range category to
	__unique_copy.
	* testsuite/25_algorithms/unique_copy/lwg2439.cc: New test.

2025-06-02  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/funcwrap.h (__polyfunc::__pass_by_rref): Define.
	(__polyfunc::__param_t): Update to use __pass_by_rref.
	* include/bits/cpyfunc_impl.h:: Assert that are parameters type
	are complete.
	* include/bits/funcref_impl.h: Likewise.
	* include/bits/mofunc_impl.h: Likewise.
	* testsuite/20_util/copyable_function/call.cc: New test.
	* testsuite/20_util/function_ref/call.cc: New test.
	* testsuite/20_util/move_only_function/call.cc: New test.
	* testsuite/20_util/copyable_function/conv.cc: New test.
	* testsuite/20_util/function_ref/conv.cc: New test.
	* testsuite/20_util/move_only_function/conv.cc: New test.
	* testsuite/20_util/copyable_function/incomplete_neg.cc: New test.
	* testsuite/20_util/function_ref/incomplete_neg.cc: New test.
	* testsuite/20_util/move_only_function/incomplete_neg.cc: New test.

2025-06-02  Jonathan Wakely  <jwakely@redhat.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119152
	* include/bits/indirect.h (std::polymorphic, pmr::polymorphic)
	[__glibcxx_polymorphic]: Define.
	* include/bits/version.def (polymorphic): Define.
	* include/bits/version.h: Regenerate.
	* include/std/memory: Define __cpp_lib_polymorphic.
	* testsuite/std/memory/polymorphic/copy.cc: New test.
	* testsuite/std/memory/polymorphic/copy_alloc.cc: New test.
	* testsuite/std/memory/polymorphic/ctor.cc: New test.
	* testsuite/std/memory/polymorphic/ctor_poly.cc: New test.
	* testsuite/std/memory/polymorphic/incomplete.cc: New test.
	* testsuite/std/memory/polymorphic/invalid_neg.cc: New test.
	* testsuite/std/memory/polymorphic/move.cc: New test.
	* testsuite/std/memory/polymorphic/move_alloc.cc: New test.

2025-05-30  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/time/format/empty_spec.cc: New test.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h: Use __wait_result_type.
	* include/bits/atomic_wait.h (__wait_result_type): New struct.
	(__wait_args::_M_prep_for_wait_on): Rename to _M_setup_wait, use
	__wait_result_type.
	(__atomic_wait_address): Adjust to call _M_setup_wait.
	* src/c++20/atomic.cc (__spin_impl): Use __wait_result_type.
	(__wait_impl): Likewise.
	(__spin_until_impl): Likewise.
	(__wait_until_impl): Likewise.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118494
	PR libstdc++/110854
	PR libstdc++/98749
	* acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Remove checks for
	sem_timedwait. Do not define _GLIBCXX_HAVE_POSIX_SEMAPHORE.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/bits/semaphore_base.h (__platform_semaphore): Remove.
	(__atomic_semaphore): Replace with __semaphore_base<bool> and
	make type of _M_count depend on template parameter. Fix _S_max
	constant to use correct type.
	(__semaphore_base::_M_try_acquire): Qualify to avoid ADL.
	(__semaphore_base::_M_release): Return old value. Remove FIXME
	comment.
	(__semaphore_impl): Replace typedef with alias template.
	* include/bits/version.def (semaphore): Do not depend on
	_GLIBCXX_HAVE_POSIX_SEMAPHORE.
	* include/bits/version.h: Regenerate.
	* include/std/semaphore (semaphore): Adjust type of _M_sem
	member. Add constexpr to constructor. Add assertions to
	(semaphore::semaphore(ptrdiff_t)): Add constexpr. Add assertion
	for precondition.
	(semaphore::release): Add assertion using value returned from
	_M_release.
	* testsuite/30_threads/semaphore/100806.cc: Increase template
	argument for std::counting_semaphore, so constructor
	precondition is met.
	* testsuite/30_threads/semaphore/cons.cc: New test.
	* testsuite/30_threads/semaphore/try_acquire_posix.cc: Remove.
	* testsuite/30_threads/semaphore/platform_try_acquire_for.cc:
	Removed.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/barrier (__tree_barrier_base): New class.
	(__tree_barrier): Move non-dependent code into
	__tree_barrier_base and derive from it.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118395
	PR libstdc++/108974
	PR libstdc++/98749
	* include/std/barrier (__tree_barrier): Use default
	member-initializers. Change _M_state member from
	unique_ptr<__state_t[]> to atomic<__state_t*>. Add
	no_unique_address attribute to _M_completion.
	(__tree_barrier::_M_arrive): Load value from _M_state.
	(__tree_barrier::_M_invoke_completion): New member function to
	ensure a throwing completion function will terminate, as
	proposed in LWG 3898.
	(__tree_barrier::max): Reduce by one to avoid overflow.
	(__tree_barrier::__tree_barrier): Add constexpr. Qualify call to
	std::move. Remove mem-initializers made unnecessary by default
	member-initializers. Add precondition check. Only allocate state
	array if not constant evaluated.
	(__tree_barrier::arrive): Add precondition check. Do deferred
	initialization of _M_state if needed.
	(barrier): Add static_assert, as proposed in LWG 3898.
	(barrier::barrier): Add constexpr.
	* testsuite/30_threads/barrier/cons.cc: New test.
	* testsuite/30_threads/barrier/lwg3898.cc: New test.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/latch (latch::arrive_and_wait): Optimise.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* config/abi/pre/gnu.ver: Add new symbol version and exports.
	* include/bits/atomic_timed_wait.h (__platform_wait_until): Move
	to atomic.cc.
	(__cond_wait_until, __spin_until_impl): Likewise.
	(__wait_until_impl): Likewise. Change __wait_args_base parameter
	to non-const reference and change third parameter to
	__wait_clock_t::duration.
	(__wait_until): Change __wait_args_base parameter to non-const
	reference. Change Call time_since_epoch() to get duration from
	time_point.
	(__wait_for): Change __wait_args_base parameter to non-const
	reference.
	(__atomic_wait_address_until): Call _M_prep_for_wait_on on args.
	(__atomic_wait_address_for): Likewise.
	(__atomic_wait_address_until_v): Qualify call to avoid ADL. Do
	not forward __vfn.
	* include/bits/atomic_wait.h (__platform_wait_uses_type): Use
	alignof(T) not alignof(T*).
	(__futex_wait_flags, __platform_wait, __platform_notify)
	(__waitable_state, __spin_impl, __notify_impl): Move to
	atomic.cc.
	(__wait_impl): Likewise. Change __wait_args_base parameter to
	non-const reference.
	(__wait_args_base::_M_wait_state): New data member.
	(__wait_args_base::_M_prep_for_wait_on): New member function.
	(__wait_args_base::_M_load_proxy_wait_val): New member
	function.
	(__wait_args_base::_S_memory_order_for): Remove member function.
	(__atomic_wait_address): Call _M_prep_for_wait_on on args.
	(__atomic_wait_address_v): Qualify call to avoid ADL.
	* src/c++20/Makefile.am: Add new file.
	* src/c++20/Makefile.in: Regenerate.
	* src/c++20/atomic.cc: New file.
	* testsuite/17_intro/headers/c++1998/49745.cc: Remove XFAIL for
	C++20 and later.
	* testsuite/29_atomics/atomic/wait_notify/100334.cc: Remove use
	of internal implementation details.
	* testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.35 version.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h (__wait_until_impl): Adjust
	to use new naming.
	* include/bits/atomic_wait.h (__waiter_pool_impl): Rename to
	__waitable_state.
	(__waiter_pool_impl::_S_wait): Rename to _M_waiters.
	(__waiter_pool_impl::_S_impl_for): Rename to _S_state_for.
	(__waiter_pool_impl::_S_track): Adjust to use new naming.
	(__wait_impl, __notify_impl): Likewise.
	* testsuite/29_atomics/atomic/wait_notify/100334.cc: Adjust to
	use new naming.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h
	(__atomic_wait_address_until_v): Replace __atomic_compare with
	__atomic_eq.
	(__atomic_wait_address_for_v): Likewise.
	* include/bits/atomic_wait.h (__atomic_compare): Rename to
	__atomic_eq.
	(__atomic_wait_address_v): Replace __atomic_compare with
	__atomic_eq.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h (__wait_until_impl): Change
	first parameter to const void* and then static_cast to const
	__platform_wait_t* when not using proxied wait.
	(__wait_until): Change first parameter to const void*.
	(__wait_for): Likewise.
	(__atomic_wait_address_until): Remove reinterpret_cast and allow
	address to implicitly convert to const void* instead.
	(__atomic_wait_address_for): Likewise.
	* include/bits/atomic_wait.h: (__wait_impl, __notify_impl):
	Change first parameter to const void* and then static_cast to
	const __platform_wait_t* when not using proxied wait.
	(__atomic_wait_address, __atomic_notify_address) Remove
	reinterpret_cast and allow address to implicitly convert to
	const void* instead.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_wait.h (__platform_wait): Change function
	template to a normal function. The parameter is always
	__platform_wait_t* which is just int* for this implementation of
	the function.
	(__platform_notify): Likewise.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h (__to_wait_clock): Do not use
	chrono::ceil if clock and duration are already correct type.
	(__wait_until): Always call __to_wait_clock.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_wait.h (__notify_impl): Increment the
	proxy value before returning early for the uncontended case.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h (__cond_wait_impl): Add
	missing inline keyword.
	(__spin_until_impl): Change parameter from pointer to reference.
	Replace make_pair with list-initialization.  Initialize variable
	for return value.
	(__wait_until_impl): Likewise. Remove some preprocessor
	conditional logic. Use _S_track for contention tracking.
	Avoid unnecessary const_cast.
	(__wait_until): Change parameter from pointer to reference.
	Replace make_pair with list-initialization.
	(__wait_for):  Change parameter from pointer to reference. Add
	__do_spin flag to args.
	* include/bits/atomic_wait.h (__waiter_pool_impl::_S_track): New
	function returning an RAII object for contention tracking.
	(__wait_flags): Do not set the __do_spin flag in the __spin_only
	enumerator. Comment out the unused __abi_version_mask
	enumerator.  Define operator| and operator|= overloads.
	(__wait_args_base::operator&): Define.
	(__wait_args::operator&, __wait_args::_S_default_flags): Remove.
	(__wait_args::operator|, __wait_args::operator|=): Remove.
	(__spin_impl): Change parameter from pointer to reference.
	Replace make_pair call with list-initialization.
	(__wait_impl): Likewise.  Remove some preprocessor conditional
	logic.  Always store old value in __args._M_old. Avoid
	unnecessary const_cast. Use _S_track.
	(__notify_impl): Change parameter to reference. Remove some
	preprocessor conditional logic.
	(__atomic_wait_address): Add comment. Update __args._M_old on
	each iteration.
	(__atomic_wait_address_v): Add comment.
	* include/std/latch (latch::wait): Adjust predicates for new
	logic.
	* testsuite/29_atomics/atomic_integral/wait_notify.cc: Improve
	test.

2025-05-30  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_timed_wait.h: Whitespace fixes.
	* include/bits/atomic_wait.h: Likewise.

2025-05-30  Thomas Rodgers  <trodgers@redhat.com>

	* include/bits/atomic_timed_wait.h (__spin_until_impl): Accept
	__wait_args as const __wait_args_base*.
	(__wait_until_impl): Likewise.
	(__wait_until): Likewise.
	(__wait_for): Likewise.
	(__atomic_wait_address_until): Pass __wait_args by address.
	(__atomic_wait_address_for): Likewise.
	* include/bits/atomic_wait.h (__wait_args_base): New struct.
	(__wait_args): Derive from __wait_args_base.
	(__wait_args::__wait_args()): Adjust ctors to call call base ctor.
	(__wait_args::__wait_args(const __wait_args_base&)): New ctor.
	(__wait_args::operator|=): New method.
	(__wait_args::_S_flags_for): Change return type to
	__wait_flags.
	(__spin_impl): Accept __wait_args as const __wait_args_base*.
	(__wait_impl): Likewise.
	(__notify_impl): Likewise.
	(__atomic_wait_address): Pass __wait_args by address.
	(__atomic_wait_address_v): Likewise.
	(__atomic_notify_address): Likewise.

2025-05-30  Thomas Rodgers  <trodgers@redhat.com>

	* include/bits/atomic_timed_wait.h:
	(__detail::__platform_wait_until_impl): Rename to
	__platform_wait_until.
	(__detail::__platform_wait_until): Remove previous
	definition.
	(__detail::__cond_wait_until_impl): Rename to
	__cond_wait_until.
	(__detail::__cond_wait_until): Remove previous
	definition.
	(__detail::__spin_until_impl): New function.
	(__detail::__wait_until_impl): New function.
	(__detail::__wait_until): New function.
	(__detail::__wait_for): New function.
	(__detail::__timed_waiter_pool): Remove type.
	(__detail::__timed_backoff_spin_policy): Remove type.
	(__detail::__timed_waiter): Remove type.
	(__detail::__enters_timed_wait): Remove type alias.
	(__detail::__bare_timed_wait): Remove type alias.
	(__atomic_wait_address_until): Adjust to new implementation
	detail.
	(__atomic_wait_address_until_v): Likewise.
	(__atomic_wait_address_bare): Remove.
	(__atomic_wait_address_for): Adjust to new implementation
	detail.
	(__atomic_wait_address_for_v): Likewise.
	(__atomic_wait_address_for_bare): Remove.
	* include/bits/atomic_wait.h: Include bits/stl_pair.h.
	(__detail::__default_spin_policy): Remove type.
	(__detail::__atomic_spin): Remove function.
	(__detail::__waiter_pool_base): Rename to __waiter_pool_impl.
	Remove _M_notify.  Rename _S_for to _S_impl_for.
	(__detail::__waiter_base): Remove type.
	(__detail::__waiter_pool): Remove type.
	(__detail::__waiter): Remove type.
	(__detail::__enters_wait): Remove type alias.
	(__detail::__bare_wait): Remove type alias.
	(__detail::__wait_flags): New enum.
	(__detail::__wait_args): New struct.
	(__detail::__wait_result_type): New type alias.
	(__detail::__spin_impl): New function.
	(__detail::__wait_impl): New function.
	(__atomic_wait_address): Adjust to new implementation detail.
	(__atomic_wait_address_v): Likewise.
	(__atomic_notify_address): Likewise.
	(__atomic_wait_address_bare): Delete.
	(__atomic_notify_address_bare): Likewise.
	* include/bits/semaphore_base.h: Adjust implementation to
	use new __atomic_wait_address_v contract.
	* include/std/barrier: Adjust implementation to use new
	__atomic_wait contract.
	* include/std/latch: Adjust implementation to use new
	__atomic_wait contract.
	* testsuite/29_atomics/atomic/wait_notify/100334.cc (main):
	Adjust to for __detail::__waiter_pool_base renaming.

2025-05-29  Patrick Palka  <ppalka@redhat.com>

	* include/std/flat_map (_Flat_map_impl::operator==): Compare
	keys and values separately.

2025-05-29  Patrick Palka  <ppalka@redhat.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120465
	* include/std/flat_map (_Flat_map_impl::_M_erase_if): Use a
	projection with ranges::remove_if to pass a pair instead of
	a tuple to the predicate.
	* testsuite/23_containers/flat_map/1.cc (test07): Strengthen
	to expect the argument passed to the predicate is a pair.
	* testsuite/23_containers/flat_multimap/1.cc (test07): Likewise.

2025-05-29  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/17_intro/names.cc [_AIX] (a): Undefine.
	* testsuite/experimental/names.cc [_AIX] (ptr): Undefine.

2025-05-29  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/22_locale/num_put/put/char/lwg4084.cc [_AIX]: Adjust
	expected output for NaN and infinity.

2025-05-29  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/23_containers/deque/capacity/shrink_to_fit.cc:
	Remove dg-xfail-run-if for AIX.
	* testsuite/23_containers/unordered_map/96088.cc: Replace
	dg-xfail-run-if with dg-require-effective-target c++20.
	* testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
	* testsuite/23_containers/unordered_set/96088.cc: Likewise.

2025-05-29  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/boost_concept_check.h: Disable -Wlong-long
	warnings.
	* testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
	line number.

2025-05-29  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/test.xml: Remove outdated documentation on
	testing with -std options in --target_board.
	* doc/html/manual/test.html: Regenerate.

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

	* testsuite/17_intro/names.cc [_AIX] (n): Undefine.
	* testsuite/experimental/names.cc [_AIX] (ptr): Undefine.

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

	* testsuite/std/format/debug.cc: Disable for targets with 16-bit
	wchar_t.
	* testsuite/std/format/functions/format.cc: Use -DUNICODE for
	targets with 32-bit wchar_t.
	(test_unicode) [UNICODE]: Only run checks when UNICODE is
	defined.

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

	* include/Makefile.in: Regenerate.

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

	PR libstdc++/96710
	* include/bits/std_abs.h [__SIZEOF_INT128__] (abs(__int128)):
	Define.
	[_GLIBCXX_USE_FLOAT128] (abs(__float128)): Enable definition for
	strict modes.
	* testsuite/26_numerics/headers/cmath/82644.cc: Use strict_std
	instead of defining __STRICT_ANSI__.
	* testsuite/26_numerics/headers/cstdlib/abs128.cc: New test.

2025-05-27  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan: Value initialize the array storing the
	dynamic extents.
	* testsuite/23_containers/mdspan/extents/ctor_default.cc: New
	test.

2025-05-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119152
	* testsuite/std/memory/indirect/ctor.cc: Run test_inplace_ctor.

2025-05-26  Jonathan Wakely  <jwakely@redhat.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119152
	* doc/doxygen/stdheader.cc: Added indirect.h file.
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/indirect.h: New file.
	* include/bits/version.def (indirect): Define.
	* include/bits/version.h: Regenerate.
	* include/std/memory: Include new header.
	* testsuite/std/memory/indirect/copy.cc
	* testsuite/std/memory/indirect/copy_alloc.cc
	* testsuite/std/memory/indirect/ctor.cc
	* testsuite/std/memory/indirect/incomplete.cc
	* testsuite/std/memory/indirect/invalid_neg.cc
	* testsuite/std/memory/indirect/move.cc
	* testsuite/std/memory/indirect/move_alloc.cc
	* testsuite/std/memory/indirect/relops.cc

2025-05-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119126
	* doc/doxygen/stdheader.cc: Added funcref_impl.h file.
	* include/Makefile.am: Added funcref_impl.h file.
	* include/Makefile.in: Added funcref_impl.h file.
	* include/bits/funcref_impl.h: New file.
	* include/bits/funcwrap.h: (_Ptrs::_M_obj): Const-qualify.
	(_Storage::_M_ptr, _Storage::_M_ref): Remove.
	(__polyfunc::__cast_to) Define.
	(_Base_invoker::_S_ptrs, _Base_invoker::_S_nttp)
	(_Base_invoker::_S_bind_ptrs, _Base_invoker::_S_bind_ref)
	(_Base_invoker::_S_call_ptrs): Define.
	(_Base_invoker::_S_call_storage): Foward to _S_call_ptrs.
	(_Manager::_S_local, _Manager::_S_ptr): Adjust for _M_obj being
	const qualified.
	(__polyfunc::_Manager, __polyfunc::_Mo_base): Guard with
	__glibcxx_move_only_function || __glibcxx_copyable_function.
	(__polyfunc::__skip_first_arg, __polyfunc::__deduce_funcref)
	(std::function_ref) [__glibcxx_function_ref]: Define.
	* include/bits/utility.h (std::nontype_t, std::nontype)
	(__is_nontype_v) [__glibcxx_function_ref]: Define.
	* include/bits/version.def: Define function_ref.
	* include/bits/version.h: Regenerate.
	* include/std/functional: Define __cpp_lib_function_ref.
	* src/c++23/std.cc.in (std::nontype_t, std::nontype)
	(std::function_ref) [__cpp_lib_function_ref]: Export.
	* testsuite/20_util/function_ref/assign.cc: New test.
	* testsuite/20_util/function_ref/call.cc: New test.
	* testsuite/20_util/function_ref/cons.cc: New test.
	* testsuite/20_util/function_ref/cons_neg.cc: New test.
	* testsuite/20_util/function_ref/conv.cc: New test.
	* testsuite/20_util/function_ref/deduction.cc: New test.
	* testsuite/20_util/function_ref/mutation.cc: New test.

2025-05-23  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120384
	* include/bits/stl_algo.h (__unique_copy): Remove all
	_BinaryPredicateConcept concept checks.
	(unique_copy): Check _BinaryPredicateConcept in overload that
	takes a predicate.
	* testsuite/25_algorithms/unique_copy/120384.cc: New test.

2025-05-23  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/type_traits (is_constant_evaluated): Add
	always_inline attribute.

2025-05-23  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/17_intro/names.cc [__sun__] (a, i, n): Undefine.

2025-05-23  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* testsuite/std/format/parse_ctx.cc: Fix typo for bfloat16 guard.

2025-05-22  Jonathan Wakely  <jwakely@redhat.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/allocated_ptr.h (_Scoped_allocation): New class
	template.

2025-05-22  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/util/pstl/test_utils.h (ForwardIterator::operator++):
	Fix return type.
	(BidirectionalIterator::operator++): Likewise.
	(BidirectionalIterator::operator--): Likewise.

2025-05-22  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120367
	* include/bits/stl_vector.h (_M_range_initialize): Initialize
	_M_impl._M_finish.
	* testsuite/23_containers/vector/cons/from_range.cc: Check with
	a type that throws on construction.
	exceptions during construction.

2025-05-21  Alexandre Oliva  <oliva@adacore.com>

	* testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc:
	Guard non-wide stold calls with conditions for it to be
	defined.
	* testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc:
	Likewise.

2025-05-21  Xℹ Ruoyao  <xry111@mengyan1223.wang>

	PR libstdc++/81806
	* include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
	(split_finish): Use maintained size, instead of calling
	std::distance.

2025-05-21  Xℹ Ruoyao  <xry111@mengyan1223.wang>

	* include/ext/pb_ds/detail/rb_tree_map_/node.hpp
	(rb_tree_node_::size_type): New typedef.
	(rb_tree_node_::m_subtree_size): New field.
	* include/ext/pb_ds/detail/splay_tree_/node.hpp
	(splay_tree_node_::size_type): New typedef.
	(splay_tree_node_::m_subtree_size): New field.
	* include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
	(PB_DS_BIN_TREE_NAME::update_subtree_size): Declare new member
	function.
	* include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
	(update_subtree_size): Define.
	(apply_update, update_to_top): Call update_subtree_size.

2025-05-21  Xℹ Ruoyao  <xry111@mengyan1223.wang>

	* include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
	(insert_leaf_new, insert_imp_empty): remove redundant statements.

2025-05-20  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h (_ChronoSpec::_M_locale_specific):
	Declare as bit fiekd in tail-padding..
	* include/bits/formatfwd.h (__format::_Align): Defined as enum
	class and add using enum.
	* include/std/format (__format::_Pres_type, __format::_Sign)
	(__format::_WidthPrec,  __format::_Arg_t): Defined as enum class
	and add using enum.
	(_Pres_type::_Pres_esc): Replace with _Pres_max.
	(_Pres_type::_Pres_seq, _Pres_type::_Pres_str): Remove.
	(__format::_Pres_type): Updated values of enumerators as described
	above.
	(__format::_Spec): Rearranged members to have 8 bits of tail-padding.
	(_Spec::_M_debug): Defined.
	(_Spec::_M_reserved): Extended to 8 bits and moved at the end.
	(_Spec::_M_reserved2): Removed.
	(_Spec::_M_parse_fill_and_align, _Spec::_M_parse_sign)
	(__format::__write_padded_as_spec): Adjusted default value checks.
	(__format::_Term_char): Add using enum and adjust enumertors.
	(__Escapes::_S_term): Adjusted for _Term_char values.
	(__format::__should_escape_ascii): Adjusted _Term_char uses.
	(__format::__write_escaped): Adjusted for _Term_char.
	(__formatter_str::parse): Set _Pres_s if specifed and _M_debug
	instead of _Pres_esc.
	(__formatter_str::set_debug_format): Set _M_debug instead of
	_Pres_esc.
	(__formatter_str::format, __formatter_str::_M_format_range):
	Check _M_debug instead of _Prec_esc.
	(__formatter_str::_M_format_escaped): Adjusted _Term_char uses.
	(__formatter_int::__formatter_int(_Spec<_CharT>)): Set _Pres_d if
	default presentation type is not set.
	(__formatter_int::_M_parse): Adjusted default value checks.
	(__formatter_int::_M_do_parse): Set _M_debug instead of _Pres_esc.
	(__formatter_int::_M_format_character): Handle escaped presentation.
	(__formatter_int::_M_format_character_escaped)
	(__formatter_int::_S_character_width): Merged into
	_M_format_character.
	(__formatter_ptr::__formatter_ptr(_Spec<_CharT>)): Set _Pres_p if
	default presentation type is not set.
	(__formatter_ptr::parse): Add default __type parameter, store _Pres_p,
	and handle _M_alt to be consistent with meaning for integers.
	(__foramtter_ptr<_CharT>::_M_set_default): Define.
	(__format::__pack_arg_types, std::basic_format_args): Add necessary
	casts.
	(formatter<_CharT, _CharT>::set_debug_format)
	(formatter<char, wchar_t>::set_debug_format): Set _M_debug instead of
	_Pres_esc.
	(formatter<_CharT, _CharT>::format, formatter<char, wchar_t>::format):
	Simplify calls to _M_format_character.
	(range_formatter<_Rg, _CharT>::parse): Replace _Pres_str with
	_Pres_s and set _M_debug instead of _Pres_esc.
	(range_formatter<_Rg, _CharT>::format): Replace _Pres_str with
	_Pres_s.

2025-05-20  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/faq.xml: Update URL for archived SGI STL docs.
	* doc/xml/manual/containers.xml: Likewise.
	* doc/xml/manual/extensions.xml: Likewise.
	* doc/xml/manual/using.xml: Likewise.
	* doc/xml/manual/utilities.xml: Likewise.
	* doc/html/*: Regenerate.

2025-05-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/ranges (_ZipTransform::operator()): Remove name of
	unused parameter.
	(chunk_view::_Iterator, stride_view::_Iterator): Likewise.
	(join_with_view): Declare _Iterator and _Sentinel as class
	instead of struct.
	(repeat_view): Declare _Iterator as class instead of struct.

2025-05-19  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120293
	* include/bits/chrono_io.h (_M_format_to_ostream): Add special
	case for local_time convertible to local_days.
	* testsuite/std/time/clock/local/io.cc: Check formatting of
	chrono::local_days.

2025-05-16  Patrick Palka  <ppalka@redhat.com>

	* include/std/type_traits (__is_invocable): Define in terms of
	corresponding builtin if available.
	(__is_nothrow_invocable): Likewise.
	(is_invocable_v): Likewise.
	(is_nothrow_invocable_v): Likewise.

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

	PR libstdc++/65909
	* testsuite/lib/libstdc++.exp (check_v3_target_namedlocale):
	Change name of formal argument to locale.

2025-05-15  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/std/mdspan: Implement the mandate for extents as
	signed or unsigned integer and not any interal type. Remove
	leading underscores from names in static_assert message.
	* testsuite/23_containers/mdspan/extents/class_mandates_neg.cc:
	Check that extents<char,...> and extents<bool,...> are invalid.
	Adjust dg-prune-output pattern.
	* testsuite/23_containers/mdspan/extents/misc.cc: Update
	tests to avoid `char` and `bool` as IndexType.

2025-05-15  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120190
	* include/std/format (format_kind): Adjust primary template to
	not depend on itself.
	* testsuite/std/format/ranges/format_kind_neg.cc: Adjust
	expected errors. Check more invalid specializations.

2025-05-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/complex (arg(T)): Use __builtin_signbit instead of
	std::signbit.

2025-05-15  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120235
	* doc/html/*: Regenerate.
	* doc/xml/manual/evolution.xml: Document deprecation.
	* include/std/complex: Replace references to TR1 subclauses with
	corresponding C++11 subclauses.
	(fabs): Add deprecated attribute.
	* testsuite/26_numerics/complex/fabs_neg.cc: New test.

2025-05-15  Jason Merrill  <jason@redhat.com>

	* testsuite/lib/libstdc++.exp: Add -Wabi.

2025-05-15  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119246
	* include/std/format: Updated check for _GLIBCXX_FORMAT_F128.

2025-05-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119125
	* include/bits/move_only_function.h: Move to...
	* include/bits/funcwrap.h: ...here.
	* doc/doxygen/stdheader.cc (init_map): Replaced move_only_function.h
	with funcwrap.h, and changed include guard to use feature test macro.
	Move bits/version.h include before others.
	* include/Makefile.am: Likewise.
	* include/Makefile.in: Likewise.
	* include/std/functional: Likewise.

2025-05-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119125
	* doc/doxygen/stdheader.cc: Addded cpyfunc_impl.h header.
	* include/Makefile.am: Add bits cpyfunc_impl.h.
	* include/Makefile.in: Add bits cpyfunc_impl.h.
	* include/bits/cpyfunc_impl.h: New file.
	* include/bits/mofunc_impl.h: Mention LWG 4255.
	* include/bits/move_only_function.h: Update header description
	and change guard to also check __glibcxx_copyable_function.
	(_Manager::_Func): Remove noexcept.
	(std::__is_polymorphic_function_v<move_only_function<_Tp>>)
	(__variant::_Never_valueless_alt<std::move_only_function<_Signature...>>)
	(move_only_function) [__glibcxx_move_only_function]: Adjust guard.
	(std::__is_polymorphic_function_v<copyable_function<_Tp>>)
	(__variant::_Never_valueless_alt<std::copyable_function<_Signature...>>)
	(__polyfunc::_Cpy_base, std::copyable_function)
	[__glibcxx_copyable_function]: Define.
	* include/bits/version.def: Define copyable_function.
	* include/bits/version.h: Regenerate.
	* include/std/functional: Define __cpp_lib_copyable_function.
	* src/c++23/std.cc.in (copyable_function)
	[__cpp_lib_copyable_function]: Export.
	* testsuite/20_util/copyable_function/call.cc: New test based on
	move_only_function tests.
	* testsuite/20_util/copyable_function/cons.cc: New test based on
	move_only_function tests.
	* testsuite/20_util/copyable_function/conv.cc: New test based on
	move_only_function tests.
	* testsuite/20_util/copyable_function/copy.cc: New test.
	* testsuite/20_util/copyable_function/move.cc: New test based on
	move_only_function tests.

2025-05-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119125
	* include/bits/mofunc_impl.h: (std::move_only_function): Adjusted for
	changes in bits/move_only_function.h
	(move_only_function::move_only_function(_Fn&&)): Special case
	move_only_functions with same invoker.
	(move_only_function::operator=(move_only_function&&)): Handle self
	assigment.
	* include/bits/move_only_function.h (__polyfunc::_Ptrs)
	(__polyfunc::_Storage): Refactored from _Mo_func::_Storage.
	(__polyfunc::__param_t): Moved from move_only_function::__param_t.
	(__polyfunc::_Base_invoker, __polyfunc::_Invoke): Refactored from
	move_only_function::_S_invoke.
	(__polyfunc::_Manager): Refactored from _Mo_func::_S_manager.
	(std::_Mofunc_base): Moved into __polyfunc::_Mo_base with parts
	extracted to __polyfunc::_Storage and __polyfunc::_Manager.
	(__polyfunc::__deref_as, __polyfunc::__invoker_of)
	(__polyfunc::__base_of, __polyfunc::__is_invoker_convertible): Define.
	(std::__is_move_only_function_v): Renamed to
	__is_polymorphic_function_v.
	(std::__is_polymorphic_function_v): Renamed from
	__is_move_only_function_v.
	* testsuite/20_util/move_only_function/call.cc: Test for
	functions pointers.
	* testsuite/20_util/move_only_function/conv.cc: New test.
	* testsuite/20_util/move_only_function/move.cc: Tests for
	self assigment.

2025-05-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119246
	* include/std/format (__format::__bflt16_t): Define.
	(_GLIBCXX_FORMAT_F128): Separate value for cases where _Float128
	is used.
	(__format::__float128_t): Renamed to __format::__flt128_t.
	(std::formatter<_Float128, _CharT>): Define always if there is
	formattable 128bit float.
	(std::formatter<__float128, _CharT>): Define.
	(_Arg_type::_Arg_f128): Rename to _Arg_float128 and adjust value.
	(_Arg_type::_Arg_ibm128): Change value to _Arg_ldbl.
	(_Arg_type::_Arg_ieee128): Define as alias to _Arg_float128.
	(_Arg_value::_M_f128): Replaced with _M_ieee128 and _M_float128.
	(_Arg_value::_M_ieee128, _Arg_value::_M_float128)
	(_Arg_value::_M_bf16, _Arg_value::_M_f16, _Arg_value::_M_f32)
	(_Arg_value::_M_f64): Define.
	(_Arg_value::_S_get, basic_format_arg::_S_to_enum): Handle __bflt16,
	_Float16, _Float32, _Float64, and __float128 types.
	(basic_format_arg::_S_to_arg_type): Preserve _bflt16, _Float16,
	_Float32, _Float64 and __float128 types.
	(basic_format_arg::_M_visit): Handle _Arg_float128, _Arg_ieee128,
	_Arg_b16, _Arg_f16, _Arg_f32, _Arg_f64.
	* testsuite/std/format/arguments/args.cc: Updated to illustrate
	that extended floating point types use handles now. Added test
	for __float128.
	* testsuite/std/format/parse_ctx.cc: Extended test to cover class
	to check_dynamic_spec with floating point types and handles.

2025-05-14  Ville Voutilainen  <ville.voutilainen@gmail.com>

	* include/std/utility (to_underlying): Add the __always_inline__ attribute.

2025-05-12  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/119645
	* configure.host [GCN, nvptx] (atomicity_dir): Don't set.

2025-05-12  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/119714
	PR libstdc++/112490
	* include/std/expected (expected::operator==): Replace
	non-dependent std::expected function parameter with a dependent
	one of type expected<_Vp, _Er> where _Vp matches _Tp.
	* testsuite/20_util/expected/119714.cc: New test.

2025-05-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120187
	* include/c_global/ciso646: Only give deprecated warning for
	C++20 and later.
	* include/c_global/ccomplex: Add @since to Doxygen comment.
	* include/c_global/cstdalign: Likewise.
	* include/c_global/cstdbool: Likewise.
	* include/c_global/ctgmath: Likewise.
	* testsuite/18_support/headers/ciso646/macros.cc: Remove
	dg-warning for c++17_only effective target.
	* testsuite/18_support/headers/ciso646/macros-2.cc: New test.

2025-05-12  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2023.xml: Update status of proposals
	implemented after GCC 14.2 release.
	* doc/html/manual/status.html: Regenerate.

2025-05-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120198
	* include/bits/version.def (scoped_lock): Do not depend on
	gthreads or hosted.
	* include/bits/version.h: Regenerate.
	* include/std/mutex (scoped_lock): Update comment.
	* testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
	Remove dg-require-gthreads and use custom lockable type instead
	of std::mutex. Check that typedef is only present for a single
	template argument.

2025-05-12  Thomas Schwinge  <tschwinge@baylibre.com>

	PR libstdc++/70560
	PR libstdc++/119667
	* acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Use '__SIZE_TYPE__'
	instead of 'size_t'.
	* configure: Regenerate.

2025-05-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118260
	* python/hook.in: Suppress output from gdb.execute calls to
	register skips.

2025-05-12  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/status_cxx2017.xml: Update status for
	std::to_chars and std::from_chars.
	* doc/html/manual/*: Regenerate.

2025-05-12  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/65909
	* testsuite/lib/libstdc++.exp (check_v3_target_namedlocale):
	Hardcode the locale name instead of passing it to the
	executable. Do not hardcode buffer size for string.

2025-05-10  Alexandre Oliva  <oliva@adacore.com>

	* src/c++23/print.cc [__VXWORKS__]: Include ioLib.h.

2025-05-09  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/chrono_io.h (__formatter_chrono::_M_format_to):
	Extracted from _M_format.
	(__formatter_chrono::_M_format): Use _Padding_sink and delegate
	to _M_format_to.

2025-05-09  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/format (__Sink_iter<_CharT>::_M_discarding)
	(__Sink<_CharT>::_M_discarding, _Iter_sink<_CharT, _OutIter>::_M_discarding)
	(_Padding_sinl<_CharT, _Out>::_M_padwidth)
	(_Padding_sink<_CharT, _Out>::_M_maxwidth): Remove const.
	(_Padding_sink<_CharT, _Out>::_M_sync_discarding)
	(_Padding_sink<_CharT, _Out>::_M_discarding): Define.
	(_Padding_sink<_CharT, _Out>::_Padding_sink(_Out, size_t, size_t))
	(_Padding_sink<_CharT, _Out>::_M_force_update):
	(_Padding_sink<_CharT, _Out>::_M_flush): Call _M_sync_discarding.
	(_Padding_sink<_CharT, _Out>::_Padding_sink(_Out, size_t)): Delegate.

2025-05-07  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120159
	* src/c++23/std.cc.in (is_layout_compatible_v): Export.

2025-05-07  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++23/std.cc.in: Fix export for std::extents.

2025-05-07  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* testsuite/23_containers/mdspan/extents/class_mandates_neg.cc: New test.
	* testsuite/23_containers/mdspan/extents/ctor_copy.cc: New test.
	* testsuite/23_containers/mdspan/extents/ctor_ints.cc: New test.
	* testsuite/23_containers/mdspan/extents/ctor_shape.cc: New test.
	* testsuite/23_containers/mdspan/extents/custom_integer.cc: New test.
	* testsuite/23_containers/mdspan/extents/misc.cc: New test.

2025-05-07  Luc Grosheintz  <luc.grosheintz@gmail.com>

	PR libstdc++/107761
	* include/std/mdspan (extents): New class.
	* src/c++23/std.cc.in: Add 'using std::extents'.

2025-05-07  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* doc/doxygen/user.cfg.in: Add <mdspan>.
	* include/Makefile.am: Ditto.
	* include/Makefile.in: Ditto.
	* include/precompiled/stdc++.h: Ditto.
	* include/std/mdspan: New file.

2025-05-07  Luc Grosheintz  <luc.grosheintz@gmail.com>

	* include/bits/version.def: Add internal feature testing macro
	__glibcxx_mdspan.
	* include/bits/version.h: Regenerate.

2025-05-07  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/120114
	* include/bits/chrono_io.h (__formatter_chrono::_M_format): Use __field_width.
	* testsuite/std/time/format/pr120114.cc: New test.

2025-05-07  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/120147
	* acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Restore use of
	AC_LANG_CPLUSPLUS.
	* configure: Regenerate.

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

	PR libstdc++/70560
	PR libstdc++/119667
	* acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Only check for
	__atomic_fetch_add on _Atomic_word. Define new macro
	_GLIBCXX_ATOMIC_WORD_BUILTINS and stop defining macro
	_GLIBCXX_ATOMIC_BUILTINS.
	(GLIBCXX_ENABLE_BACKTRACE): Check for __atomic_load_n and
	__atomic_store_n on int, void* and size_t.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.host: Fix typo in comment.
	* include/ext/atomicity.h (__exchange_and_add, __atomic_add):
	Depend on _GLIBCXX_ATOMIC_WORD_BUILTINS macro instead of old
	_GLIBCXX_ATOMIC_BUILTINS macro.

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

	PR libstdc++/117905
	* include/pstl/glue_numeric_impl.h (reduce, transform_reduce)
	(transform_reduce, inclusive_scan, transform_exclusive_scan)
	(transform_inclusive_scan): Use std::move for __init parameter.
	* include/pstl/numeric_impl.h (__brick_transform_reduce)
	(__pattern_transform_reduce, __brick_transform_scan)
	(__pattern_transform_scan): Likewise.
	* include/std/numeric (inclusive_scan, transform_exclusive_scan):
	Use std::move to create local copy of the first element.
	* testsuite/26_numerics/pstl/numeric_ops/108236.cc: Move test
	using move-only type to ...
	* testsuite/26_numerics/pstl/numeric_ops/move_only.cc: New test.

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

	PR libstdc++/120029
	* src/c++17/fs_path.cc (path::operator+=(const path&)): Handle
	parameters that alias the path or one of its components.
	* testsuite/27_io/filesystem/path/concat/120029.cc: New test.
	* testsuite/experimental/filesystem/path/concat/120029.cc: New
	test.

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

	PR c++/120112
	* include/bits/ptr_traits.h (_Safe_iterator_base): Use class
	keyword in class-head of declaration.
	* include/debug/debug.h (_Safe_iterator): Likewise.

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

	* include/bits/stl_iterator.h (counted_iterator): Add noexcept
	to friend operators which only access the _M_length member.

2025-05-02  Dhruv Chawla  <dhruvc@nvidia.com>

	* include/std/memory: Define __glibcxx_want_addressof_constexpr.
	* testsuite/20_util/headers/memory/version.cc: Test for macro
	value.

2025-05-02  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/23_containers/vector/allocator/default_init.cc:
	Add a check using constant evaluation.
	* testsuite/23_containers/vector/bool/allocator/default_init.cc:
	Likewise.
	* testsuite/util/testsuite_allocator.h (default_init_allocator):
	Make all member functions and equality ops constexpr.

2025-05-02  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++11/Makefile.am: Simplify existing prerequisites for wchar and
	dual-abi targets that are built from other sources. Add similar
	prerequisites for more wchar and dual-abi files.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++17/Makefile.am [ENABLE_DUAL_ABI]: Add prerequisites for
	dual-abi targets that are built from other sources.
	* src/c++17/Makefile.in: Regenerate.

2025-04-30  François Dumont  <frs.dumont@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/lib/libstdc++.exp (v3_target_compile): Strip version namespace
	from compiler output.
	* testsuite/20_util/aligned_storage/value.cc [_GLIBCXX_INLINE_VERSION]:
	Avoid align_msa check.
	* testsuite/20_util/function/cons/70692.cc: Remove now useless __8 namespace
	pattern.
	* testsuite/23_containers/map/48101_neg.cc: Likewise.
	* testsuite/23_containers/multimap/48101_neg.cc: Likewise.

2025-04-30  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/109162
	* include/std/format (_Padding_sink::_M_update): Fixed condition for
	calling _M_force_update.
	* testsuite/std/format/debug.cc: Add test that reproduces this issue
	on 64bit architecture.
	* testsuite/std/format/ranges/sequence.cc: Another edge value test.

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

	* include/bits/version.def (make_obj_using_allocator): Use
	no_stdname.
	* include/bits/version.h: Regenerate.

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

	* include/bits/regex_compiler.h: Replace _GLIBCXX17_CONSTEXPR
	with constexpr and disable diagnostics with pragmas.
	(_AnyMatcher::operator()): Use constexpr-if instead of tag
	dispatching. Postpone calls to _M_translate until after checking
	result of earlier calls.
	(_AnyMatcher::_M_apply): Remove both overloads.
	(_BracketMatcher::operator(), _BracketMatcher::_M_ready):
	Replace tag dispatching with 'if constexpr'.
	(_BracketMatcher::_M_apply(_CharT, true_type)): Remove.
	(_BracketMatcher::_M_apply(_CharT, false_type)): Remove second
	parameter.
	(_BracketMatcher::_M_make_cache): Remove both overloads.
	* include/bits/regex_compiler.tcc (_BracketMatcher::_M_apply):
	Remove second parameter.
	* include/bits/regex_executor.tcc: Replace _GLIBCXX17_CONSTEXPR
	with constexpr and disable diagnostics with pragmas.
	(_Executor::_M_handle_backref): Replace __glibcxx_assert with
	static_assert.
	(_Executor::_M_handle_accept): Mark _S_opcode_backref case as
	unreachable for non-DFS mode and do not instantiate
	_M_handle_backref for that case.

2025-04-29  Barnabás Pőcze  <pobrn@protonmail.com>

	PR libstdc++/112934
	* include/bits/stl_map.h (map::erase): Use _M_erase_unique.
	* include/bits/stl_set.h (set::erase): Likewise.
	* include/bits/stl_tree.h (_Rb_tree::_M_erase_unique): Add.

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

	PR libstdc++/119427
	* include/std/flat_map (_Flat_map_impl::erase_if): Replace
	this hidden friend with ...
	(_Flat_map_impl::_M_erase_if): ... this member function.
	(flat_map): Export _Flat_map_impl::_M_erase_if.
	(erase_if(flat_map)): Define.
	(flat_multimap): Export _Flat_map_impl::_M_erase_if.
	(erase_if(flat_multimap)): Define.
	* include/std/flat_set (_Flat_set_impl::erase_if): Replace
	with ...
	(_Flat_set_impl::_M_erase_if): ... this member function.
	(flat_set): Export _Flat_set_impl::_M_erase_if.
	(erase_if(flat_set)): Define.
	(flat_multiset): Export _Flat_set_impl::_M_erase_if.
	(erase_if(flat_multiset)): Define.
	* testsuite/23_containers/flat_map/1.cc (test07): New test.
	* testsuite/23_containers/flat_multimap/1.cc (test07): New test.
	* testsuite/23_containers/flat_multiset/1.cc (test09): New test.
	* testsuite/23_containers/flat_set/1.cc (test09): New test.

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

	* include/bits/char_traits.h (char_traits::assign): Use
	constexpr-if unconditionally for C++11 and C++14.
	* include/bits/locale_conv.h (__do_str_codecvt): Likewise.
	* include/bits/ostream.h (basic_ostream::_S_cast_flt): Likewise.
	* include/bits/random.tcc (shuffle_order_engine::operator())
	(seed_seq::seed_seq(Iter, Iter)): Likewise.
	* include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release):
	Likewise.
	* include/bits/stl_tree.h (_Rb_tree::_M_move_data): Likewise.
	* include/bits/uniform_int_dist.h
	(uniform_int_distribution::operator()): Likewise.
	* include/bits/valarray_array.h (__valarray_default_construct)
	(__valarray_fill_construct, __valarray_copy_construct)
	(__valarray_copy_construct, __valarray_destroy_elements):
	Likewise.
	* include/experimental/numeric (lcm): Likewise.
	* include/std/bit (__rotl, __rotr, __countl_zero, __countr_zero)
	(__popcount, __bit_ceil) Likewise.:
	* include/std/bitset (operator>>): Likewise.
	* include/std/charconv (__to_chars_8, __to_chars_i)
	(__from_chars_alnum_to_val, from_chars): Likewise.
	* include/tr2/dynamic_bitset (__dynamic_bitset_base): Likewise.
	* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
	line number.

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

	* include/bits/std_function.h (_Target_handler): Remove.
	(function::target): Use constexpr-if for C++11 and
	C++14, with diagnostic pragmas to suppress warnings.

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

	* include/bits/stl_vector.h (_S_do_relocate): Remove.
	(_S_relocate): Remove tag dispatching path.
	* include/bits/vector.tcc (reserve, _M_realloc_insert)
	(_M_realloc_append, _M_default_append): Add diagnostic pragmas
	and use 'if constexpr' in C++11 and C++14. Call
	std::__relocate_a directly instead of _S_relocate.

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

	* include/bits/basic_string.h (operator+(string&&, string&&)):
	Do not assume that COW strings have equal allocators. Use
	constexpr-if unconditionally.
	* testsuite/21_strings/basic_string/allocator/char/operator_plus.cc:
	Remove cxx11_abi effective-target check.
	* testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc:
	Likewise.

2025-04-28  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* testsuite/20_util/shared_ptr/requirements/1.cc: Test both
	shared_ptr and weak_ptr.
	Add more tests.
	* testsuite/20_util/weak_ptr/requirements/1.cc: Removed as
	superseded by the other test.

2025-04-28  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119970
	* include/std/ostream (vprint_unicode) [_WIN32 && !__CYGWIN__]: Call
	_Str_sink::_M_span instead of view.
	* include/std/print (vprint_unicode) [_WIN32 && !__CYGWIN__]: Call
	_Str_sink::_M_span instead of view.

2025-04-28  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/ranges_base.h (__detail::__range_key_type):
	Replace remove_const_t with remove_cvref_t.
	(__detail::__range_mapped_type): Apply remove_cvref_t.
	* include/bits/stl_iterator.h: (__detail::__iter_key_t):
	Replace remove_const_t with __remove_cvref_t.
	(__detail::__iter_val_t): Apply __remove_cvref_t.
	* testsuite/23_containers/flat_map/1.cc: New tests.
	* testsuite/23_containers/flat_multimap/1.cc: New tests.
	* testsuite/23_containers/map/cons/deduction.cc: New tests.
	* testsuite/23_containers/map/cons/from_range.cc: New tests.
	* testsuite/23_containers/multimap/cons/deduction.cc: New tests.
	* testsuite/23_containers/multimap/cons/from_range.cc: New tests.
	* testsuite/23_containers/unordered_map/cons/deduction.cc: New tests.
	* testsuite/23_containers/unordered_map/cons/from_range.cc: New tests.
	* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
	New tests.
	* testsuite/23_containers/unordered_multimap/cons/from_range.cc:
	New tests.

2025-04-28  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/unordered_map.h (unordered_map):
	Define constructors accepting:
	(_InputIterator, _InputIterator, const allocator_type&),
	(initializer_list<value_type>, const allocator_type&),
	(unordered_multimap): Likewise.
	* include/debug/unordered_map (unordered_map): Likewise.
	(unordered_multimap): Likewise.
	* include/bits/unordered_set.h (unordered_set):
	Define constructors and deduction guide accepting:
	(_InputIterator, _InputIterator, const allocator_type&),
	(initializer_list<value_type>, const allocator_type&),
	(unordered_multiset): Likewise.
	* include/debug/unordered_set (unordered_set): Likewise.
	(unordered_multiset): Likewise.
	* testsuite/23_containers/unordered_map/cons/66055.cc: New tests.
	* testsuite/23_containers/unordered_map/cons/deduction.cc: New tests.
	* testsuite/23_containers/unordered_multimap/cons/66055.cc: New tests.
	* testsuite/23_containers/unordered_multimap/cons/deduction.cc:	New
	tests.
	* testsuite/23_containers/unordered_multiset/cons/66055.cc: New tests.
	* testsuite/23_containers/unordered_multiset/cons/deduction.cc:	New
	tests.
	* testsuite/23_containers/unordered_set/cons/66055.cc: New tests.
	* testsuite/23_containers/unordered_set/cons/deduction.cc: New tests.

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

	* include/bits/ptr_traits.h (to_address): Use markdown for
	formatting in Doxygen comments.

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

	* src/c++11/Makefile.am: Add prerequisites for targets that
	depend on string-inst.cc.
	* src/c++11/Makefile.in: Regenerate.

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

	* include/bits/move.h (addressof): Use __builtin_addressof
	directly.

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

	* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
	Remove dg-error directives for additional c++26 errors.

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

	* include/std/latch (latch::_M_a): Rename to _M_counter.

2025-04-25  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/109162
	* include/bits/formatfwd.h (__simply_formattable_range): Moved from
	std/format.
	* include/std/format (__formatter_str::_format): Extracted escaped
	string handling to separate method...
	(__formatter_str::_M_format_escaped): Use __Padding_sink.
	(__formatter_str::_M_format): Adjusted implementation.
	(__formatter_str::_S_trunc): Extracted as namespace function...
	(__format::_truncate): Extracted from __formatter_str::_S_trunc.
	(__format::_Seq_sink): Removed forward declarations, made members
	protected and non-final.
	(_Seq_sink::_M_trim): Define.
	(_Seq_sink::_M_span): Renamed from view.
	(_Seq_sink::view): Returns string_view instead of span.
	(__format::_Str_sink): Moved after _Seq_sink.
	(__format::__format_padded): Use _Padding_sink.
	* testsuite/std/format/debug.cc: Add timeout and new tests.
	* testsuite/std/format/ranges/sequence.cc: Specify unicode as
	encoding and new tests.
	* testsuite/std/format/ranges/string.cc: Likewise.
	* testsuite/std/format/tuple.cc: Likewise.

2025-04-25  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/format/ranges/adaptors.cc: Updated test.

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

	* testsuite/22_locale/ctype/is/string/89728_neg.cc: Remove
	dg-error for c++98_only effective target.

2025-04-25  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119918
	* include/bits/formatfwd.h (__format::_Align): Moved from std/format.
	(std::__throw_format_error, __format::__formatter_str)
	(__format::__formatter_ptr): Declare.
	* include/std/format (__format::_Align): Moved to bits/formatfwd.h.
	(__formatter_int::__formatter_int): Define.
	(__format::__formatter_ptr): Extracted from formatter for const void*.
	(std::formatter<const void*, _CharT>, formatter<void*, _CharT>)
	(std::formatter<nullptr_t, _CharT>): Delegate to __formatter_ptr<_CharT>.
	* include/std/thread (std::formatter<thread::id, _CharT>): Constrain
	_CharT template parameter.
	(formatter<thread::id, _CharT>::parse): Specify default aligment, and
	qualify __throw_format_error to disable ADL.
	(formatter<thread::id, _CharT>::format): Use formatters to write directly
	to output.
	* testsuite/30_threads/thread/id/output.cc: Tests for formatting thread::id
	representing not-a-thread with padding and formattable concept.

2025-04-25  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/109162
	* include/bits/version.def (format_ranges): Remove no_stdname and
	update value.
	* include/bits/version.h: Regenerate.
	* src/c++23/std.cc.in: Replace __glibcxx_format_ranges with
	__cpp_lib_format_ranges.
	* testsuite/std/format/formatter/lwg3944.cc: Likewise.
	* testsuite/std/format/parse_ctx.cc: Likewise.
	* testsuite/std/format/string.cc: Likewise.
	* testsuite/std/format/ranges/feature_test.cc: New test.

2025-04-25  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/109162
	* include/bits/formatfwd.h (__format::__parsable_with)
	(__format::__formattable_with, __format::__formattable_impl)
	(__format::__has_debug_format, __format::__const_formattable_range)
	(__format::__maybe_const_range, __format::__maybe_const)
	(std::formattable): Moved from std/format.
	(__format::Iter_for, std::range_formatter): Forward declare.
	* include/bits/stl_queue.h (std::formatter): Forward declare.
	(std::queue, std::priority_queue): Befriend formatter specializations.
	* include/bits/stl_stack.h (std::formatter): Forward declare.
	(std::stack): Befriend formatter specializations.
	* include/std/format (__format::_Iter_for): Define as struct with
	(__format::__parsable_with, __format::__formattable_with)
	(__format::__formattable_impl, __format::__has_debug_format)
	(_format::__const_formattable_range, __format::__maybe_const_range)
	(__format::__maybe_const, std::formattable): Moved to bits/formatfwd.h.
	(std::range_formatter): Remove default argument specified in declaration
	in bits/formatfwd.h.
	* include/std/queue: Include bits/version.h before bits/stl_queue.h.
	(formatter<queue<_Tp, _Container, _Compare>, _CharT>)
	(formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>): Define.
	* include/std/stack: Include bits/version.h before bits/stl_stack.h
	(formatter<stack<_Tp, _Container, _Compare>, _CharT>): Define.
	* testsuite/std/format/ranges/adaptors.cc: New test.

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

	* include/std/future (__future_base::_Task_state): Check
	invocable requirement here.
	(__future_base::_Task_state::_S_create): New static member
	function.
	(__future_base::_Task_state::_M_reset): Use _S_create.
	(__create_task_state): Remove.
	(packaged_task): Use _Task_state::_S_create instead of
	__create_task_state.
	* testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
	Adjust dg-error patterns.
	* testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc:
	Likewise.

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

	* include/bits/stl_tree.h (_Rb_tree::_M_key_compare): New member
	function to invoke comparison function.
	(_Rb_tree): Use new member function instead of accessing the
	comparison function directly.

2025-04-24  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/23_containers/forward_list/48101_neg.cc: Remove
	dg-prune-output that doesn't match anything.
	* testsuite/23_containers/list/48101_neg.cc: Likewise.
	* testsuite/23_containers/multiset/48101_neg.cc: Likewise.
	* testsuite/23_containers/set/48101_neg.cc: Likewise.

2025-04-24  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/generator (generator::yield_value): Add overload
	taking lvalue element_of view, as per LWG 3899.
	* testsuite/24_iterators/range_generators/lwg3899.cc: New test.

2025-04-24  François Dumont  <frs.dumont@gmail.com>

	* testsuite/util/replacement_memory_operators.h: Adapt for -fno-exceptions
	context.
	* testsuite/23_containers/deque/capacity/shrink_to_fit.cc: Adapt test
	to check std::deque shrink_to_fit method.

2025-04-23  Andreas Schwab  <schwab@linux-m68k.org>

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

2025-04-23  ZENG Hao  <c@cyano.cn>

	* src/c++23/std.cc.in (atomic_signed_lock_free): Guard with
	preprocessor check for __cpp_lib_atomic_lock_free_type_aliases.
	(atomic_unsigned_lock_free): Likewise.

2025-04-22  Patrick Palka  <ppalka@redhat.com>

	Revert:
	2024-08-22  Patrick Palka  <ppalka@redhat.com>

	* include/bits/iterator_concepts.h (__detail::__projected): Define
	an optimized partial specialization for when the projection is
	std::identity.
	* testsuite/24_iterators/indirect_callable/projected.cc: Verify the
	optimization.

2025-04-22  Andreas Schwab  <schwab@linux-m68k.org>

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

2025-04-22  Andreas Schwab  <schwab@linux-m68k.org>

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

2025-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Regenerate.
	* config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.

2025-04-22  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.

2025-04-22  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/powerpc64le-linux-gnu/baseline_symbols.txt: Update.

2025-04-22  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/23_containers/flat_map/1.cc: Add dg-timeout-factor 2.
	* testsuite/23_containers/flat_multimap/1.cc: Likewise.
	* testsuite/std/format/ranges/map.cc: Likewise.
	* testsuite/std/format/ranges/sequence.cc: Likewise.
	* testsuite/std/format/ranges/string.cc: Likewise.

2025-04-22  Andreas Schwab  <schwab@linux-m68k.org>

	* testsuite/util/testsuite_abi.cc (check_version): Update latestp
	to use GLIBCXX_3.4.35 and CXXABI_1.3.17.

2025-04-18  François Dumont  <frs.dumont@gmail.com>

	* testsuite/util/debug/unordered_checks.h (fill_container): New helper method.
	(use_erased_local_iterator, invalid_local_iterator_pre_increment)
	(invalid_local_iterator_post_increment, invalid_local_iterator_compare)
	(invalid_local_iterator_range): Use latter.
	(fill_and_get_local_iterator): New, use fill_container.
	(use_invalid_local_iterator): Use latter.
	(invalid_local_iterator_arrow_operator): New test function.
	(invalid_local_iterator_copy_instantiation): New test function.
	(invalid_local_iterator_move_instantiation): New test function.
	(invalid_local_iterator_copy_assignment): New test function.
	(invalid_local_iterator_move_assignment): New test function.
	(invalid_local_iterator_const_conversion): New test function.
	* testsuite/23_containers/unordered_map/debug/invalid_local_iterator_arrow_operator_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_map/debug/invalid_local_iterator_const_conversion_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_map/debug/invalid_local_iterator_copy_assignment_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_map/debug/invalid_local_iterator_copy_construction_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_map/debug/invalid_local_iterator_move_assignment_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_map/debug/invalid_local_iterator_move_construction_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc: Test unordered_map.
	* testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc: Test unordered_multimap.
	* testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/cend_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/end1_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/end2_neg.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_arrow_operator_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_const_conversion_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_copy_assignment_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_copy_construction_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_move_assignment_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_move_construction_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_multimap/debug/max_load_factor_neg.cc:
	Test unordered_multimap.
	* testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_arrow_operator_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_const_conversion_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_copy_assignment_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_copy_construction_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_move_assignment_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_move_construction_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_set/debug/invalid_local_iterator_arrow_operator_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_set/debug/invalid_local_iterator_const_conversion_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_set/debug/invalid_local_iterator_copy_assignment_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_set/debug/invalid_local_iterator_copy_construction_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_set/debug/invalid_local_iterator_move_assignment_neg.cc:
	New test case.
	* testsuite/23_containers/unordered_set/debug/invalid_local_iterator_move_construction_neg.cc:
	New test case.

2025-04-18  Tomasz Kamiński  <tkaminsk@redhat.com>

	* doc/xml/manual/appendix_contributing.xml: Add 'and functions'.

2025-04-17  Jason Merrill  <jason@redhat.com>

	* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
	diagnostic.

2025-04-17  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119840
	* include/std/format (_M_parse_fill_and_align): Cast elements of
	__not_fill to _CharT.

2025-04-17  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/format (format_kind): Do not use 'not'
	alternative token to make the primary template ill-formed. Use
	the undeclared identifier __primary_template_not_defined and a
	comment that will appear in diagnostics.
	* testsuite/std/format/ranges/format_kind_neg.cc: New test.

2025-04-17  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/109162
	* include/std/format (__format::__simply_formattable_range): Define.
	(range_formatter::format): Do not instantiate _M_format for mutable
	_Rg if const _Rg can be used.

2025-04-16  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/109162
	* include/std/format (range_formatter::format): Format const range,
	only if reference type is not changed.
	* testsuite/std/format/ranges/formatter.cc: New tests.

2025-04-16  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/109162
	* include/std/format (__formatter_int::_M_format_character_escaped)
	(__formatter_str::format): Use __sink.out() to produce _Sink_iter.
	(__format::__const_formattable_range): Moved closer to range_formatter.
	(__format::__maybe_const_range): Use `__conditional_t` and moved closer
	to range_formatter.
	(__format::__format_padded, __format::maybe_const)
	(__format::__indexed_formatter_storage, __format::__tuple_formatter)
	(std::formatter<pair<_Fp, _Sp>, _CharT>>)
	(std::formatter<tuple<_Tps...>, _CharT): Define.
	(std::formatter<_Rg, _CharT>::format): Cast incoming range to
	__format::__maybe_const_range<_Rg, _CharT>&.
	(std::formatter<_Rg, _CharT>::_M_format): Extracted from format,
	and use __format_padded.
	(std::formatter<_Rg, _CharT>::_M_format_no_padding): Rename...
	(std::formatter<_Rg, _CharT>::_M_format_elems): ...to this.
	(std::formatter<_Rg, _CharT>::_M_format_with_padding): Extracted as
	__format_padded.
	* testsuite/util/testsuite_iterators.h (test_input_range_nocopy):
	Define.
	* testsuite/std/format/ranges/formatter.cc: Tests for `m` specifier.
	* testsuite/std/format/ranges/sequence.cc: Tests for array and subrange.
	* testsuite/std/format/ranges/map.cc: New test.
	* testsuite/std/format/tuple.cc: New test.

2025-04-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/ranges (__glibcxx_want_ranges_iota): Do not
	define.

2025-04-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/numeric (ranges): Only declare namespace for C++23
	and later.
	(ranges::iota_result): Fix indentation.
	* testsuite/17_intro/names.cc: Check ranges is not used as an
	identifier before C++20.

2025-04-15  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/109162
	* include/std/format (__format::__has_debug_format, _Pres_type::_Pres_seq)
	(_Pres_type::_Pres_str, __format::__Stackbuf_size): Define.
	(_Separators::_S_squares, _Separators::_S_parens, _Separators::_S_comma)
	(_Separators::_S_colon): Define additional constants.
	(_Spec::_M_parse_fill_and_align): Define overload accepting
	list of excluded characters for fill, and forward existing overload.
	(__formatter_str::_M_format_range): Define.
	(__format::_Buf_sink) Use __Stackbuf_size for size of array.
	(__format::__is_map_formattable, std::range_formatter)
	(std::formatter<_Rg, _CharT>): Define.
	* src/c++23/std.cc.in (std::format_kind, std::range_format)
	(std::range_formatter): Export.
	* testsuite/std/format/formatter/lwg3944.cc: Guarded tests with
	__glibcxx_format_ranges.
	* testsuite/std/format/formatter/requirements.cc: Adjusted for standard
	behavior.
	* testsuite/23_containers/vector/bool/format.cc: Test vector<bool> formatting.
	* testsuite/std/format/ranges/format_kind.cc: New test.
	* testsuite/std/format/ranges/formatter.cc: New test.
	* testsuite/std/format/ranges/sequence.cc: New test.
	* testsuite/std/format/ranges/string.cc: New test.

2025-04-15  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/119748
	* include/bits/basic_string.h (_S_copy_chars): Only optimize for
	contiguous iterators that are convertible to const charT*. Use
	explicit conversion to charT after dereferencing iterator.
	(_S_copy_range): Likewise for contiguous ranges.
	* include/bits/basic_string.tcc (_M_construct): Use explicit
	conversion to charT after dereferencing iterator.
	* include/bits/cow_string.h (_S_copy_chars): Likewise.
	(basic_string(from_range_t, R&&, const Allocator&)): Likewise.
	Only optimize for contiguous iterators that are convertible to
	const charT*.
	* testsuite/21_strings/basic_string/cons/char/119748.cc: New
	test.
	* testsuite/21_strings/basic_string/cons/wchar_t/119748.cc:
	New test.

2025-04-15  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/util/testsuite_iterators.h (test_container): Define
	array constructor for C++98 as well.

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

	PR libstdc++/21334
	* doc/xml/manual/using.xml: Document that container data race
	avoidance rules do not apply to COW std::string.
	* doc/html/*: Regenerate.

2025-04-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119725
	* testsuite/std/format/debug.cc: Updated dg-options.
	* testsuite/std/format/debug_nonunicode.cc: Updated dg-options.

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

	* src/c++17/fast_float/LOCAL_PATCHES: Update.

2025-04-11  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>

	* src/c++17/fast_float/fast_float.h (full_multiplication):
	Support aarch64-w64-mingw32 target.

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

	* include/bits/basic_string.h (_S_copy_chars): Replace overloads
	with constexpr-if and extend optimization to all contiguous
	iterators.
	* src/c++11/string-inst.cc: Extend comment.

2025-04-11  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/111055
	* include/bits/version.def (containers_ranges): Define.
	* include/bits/version.h: Regenerate.
	* include/bits/ranges_base.h (__detail::__container_compatible_range)
	(__detail::__range_to_alloc_type, __detail::__range_mapped_type)
	(__detail::__range_key_type): Depend on __glibcxx_containers_ranges
	instead of __glibcxx_ranges_to_container.
	* include/bits/basic_string.h: Replace __glibcxx_ranges_to_container with
	__glibcxx_containers_ranges.
	* include/bits/cow_string.h: Likewise.
	* include/bits/deque.tcc: Likewise.
	* include/bits/forward_list.h: Likewise.
	* include/bits/stl_bvector.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/bits/stl_list.h: Likewise.
	* include/bits/stl_map.h: Likewise.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_queue.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/stl_stack.h: Likewise.
	* include/bits/stl_vector.h: Likewise.
	* include/bits/unordered_map.h: Likewise.
	* include/bits/unordered_set.h: Likewise.
	* include/bits/vector.tcc: Likewise.
	* include/debug/deque: Likewise.
	* include/debug/forward_list: Likewise.
	* include/debug/list: Likewise.
	* include/debug/map.h: Likewise.
	* include/debug/multimap.h: Likewise.
	* include/debug/multiset.h: Likewise.
	* include/debug/set.h: Likewise.
	* include/debug/unordered_map: Likewise.
	* include/debug/unordered_set: Likewise.
	* include/debug/vector: Likewise.
	* include/std/deque: Provide __cpp_lib_containers_ranges.
	* include/std/forward_list: Likewise.
	* include/std/list: Likewise.
	* include/std/map: Likewise.
	* include/std/queue: Likewise.
	* include/std/set: Likewise.
	* include/std/stack: Likewise.
	* include/std/string: Likewise.
	* include/std/unordered_map: Likewise.
	* include/std/unordered_set: Likewise.
	* include/std/vector: Likewise.
	* testsuite/21_strings/basic_string/cons/from_range.cc: Test for value
	__cpp_lib_containers_ranges.
	* testsuite/23_containers/deque/cons/from_range.cc: Likewise.
	* testsuite/23_containers/forward_list/cons/from_range.cc: Likewise.
	* testsuite/23_containers/list/cons/from_range.cc: Likewise.
	* testsuite/23_containers/map/cons/from_range.cc: Likewise.
	* testsuite/23_containers/multimap/cons/from_range.cc: Likewise.
	* testsuite/23_containers/multiset/cons/from_range.cc: Likewise.
	* testsuite/23_containers/priority_queue/cons_from_range.cc: Likewise.
	* testsuite/23_containers/queue/cons_from_range.cc: Likewise.
	* testsuite/23_containers/set/cons/from_range.cc: Likewise.
	* testsuite/23_containers/stack/cons_from_range.cc: Likewise.
	* testsuite/23_containers/unordered_map/cons/from_range.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/cons/from_range.cc: Likewise.
	* testsuite/23_containers/unordered_multiset/cons/from_range.cc: Likewise.
	* testsuite/23_containers/unordered_set/cons/from_range.cc: Likewise.
	* testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise.
	* testsuite/23_containers/vector/cons/from_range.cc: Likewise.

2025-04-11  Jonathan Wakely  <jwakely@redhat.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/111055
	* include/bits/basic_string.h (_S_copy_range): New function.
	(basic_string(from_range_t, R%%, const Alloc&)): New
	constructor.
	(append_range, assign_range, insert_range, replace_with_range):
	New functions.
	* include/bits/cow_string.h: Likewise.
	* testsuite/21_strings/basic_string/cons/from_range.cc: New
	test.
	* testsuite/21_strings/basic_string/modifiers/append/append_range.cc:
	New test.
	* testsuite/21_strings/basic_string/modifiers/assign/assign_range.cc:
	New test.
	* testsuite/21_strings/basic_string/modifiers/insert/insert_range.cc:
	New test.
	* testsuite/21_strings/basic_string/modifiers/replace/replace_with_range.cc:
	New test.

2025-04-11  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/109162
	* include/bits/chrono_io.h (__detail::_Widen): Moved to std/format file.
	* include/bits/unicode-data.h: Regnerate.
	* include/bits/unicode.h (__unicode::_Utf_iterator::_M_units)
	(__unicode::__should_escape_category): Define.
	* include/std/format (_GLIBCXX_WIDEN_, _GLIBCXX_WIDEN):	Copied from
	include/bits/chrono_io.h.
	(__format::_Widen): Moved from include/bits/chrono_io.h.
	(__format::_Term_char, __format::_Escapes, __format::_Separators)
	(__format::__should_escape_ascii, __format::__should_escape_unicode)
	(__format::__write_escape_seq, __format::__write_escaped_char)
	(__format::__write_escaped_acii, __format::__write_escaped_unicode)
	(__format::__write_escaped): Define.
	(__formatter_str::_S_trunc): Extracted truncation of character
	sequences.
	(__formatter_str::format): Handle _Pres_esc.
	(__formatter_int::_M_do_parse) [__glibcxx_format_ranges]: Parse '?'.
	(__formatter_int::_M_format_character_escaped): Define.
	(formatter<_CharT, _CharT>::format, formatter<char, wchar_t>::format):
	Handle _Pres_esc.
	(__formatter_str::set_debug_format, formatter<...>::set_debug_format)
	Guard with __glibcxx_format_ranges.
	(__format::_Fixedbuf_sink): Define.
	* testsuite/23_containers/vector/bool/format.cc: Use __format::_Widen
	and remove unnecessary <chrono> include.
	* testsuite/std/format/debug.cc: New test.
	* testsuite/std/format/debug_nonunicode.cc: New test.
	* testsuite/std/format/parse_ctx.cc (escaped_strings_supported): Define
	to true if __glibcxx_format_ranges is defined.
	* testsuite/std/format/string.cc (escaped_strings_supported): Define to
	true if __glibcxx_format_ranges is defined.

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

	* include/bits/version.def (constrained_equality): Only define
	as 202411 for C++23 and later, use 202403 for C++20.
	* include/bits/version.h: Regenerate.
	* testsuite/20_util/expected/equality_constrained.cc: Remove
	TODO comment.

2025-04-10  John David Anglin  <danglin@gcc.gnu.org>

	* config/os/hpux/os_defines.h: Remove _GLIBCXX_USE_LONG_LONG
	define.

2025-04-09  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/115046
	PR libstdc++/112490
	* include/bits/stl_iterator.h (basic_const_iterator::operator-):
	Replace non-dependent basic_const_iterator function parameter with
	a dependent one of type basic_const_iterator<_It2> where _It2
	matches _It.
	* testsuite/std/ranges/adaptors/as_const/1.cc (test04): New test.

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

	PR libstdc++/119671
	* include/std/format (__formatter_fp::format): Do not invalidate
	__wstr unless _M_localized returns a valid string.
	* testsuite/std/format/functions/format.cc: Check wide string
	formatting of floating-point types with classic locale.

2025-04-07  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/119642
	* include/bits/formatfwd.h: Remove stray pragma.

2025-04-07  Jonathan Wakely  <jwakely@redhat.com>

	* include/precompiled/stdc++.h: Include <stdbit.h> and
	<stdckdint.h>. Include <stacktrace> unconditionally.

2025-04-07  Jonathan Wakely  <jwakely@redhat.com>

	* doc/doxygen/user.cfg.in (INPUT): Add flat_map, flat_set,
	text_encoding, stdbit.h and stdckdint.h.

2025-04-07  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/119645
	* acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY) [GCN, nvptx]:
	Hard-code results.
	* configure: Regenerate.
	* configure.host [GCN, nvptx] (atomicity_dir): Set to
	'cpu/generic/atomicity_builtins'.

2025-04-04  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/119620
	* include/std/flat_set (_Flat_set_impl::_M_try_emplace): Split
	out into two overloads, one taking at least one argument and one
	taking zero arguments.  Turn __k into an auto&& reference bound
	to __arg if it's already a value_type and otherwise bound to a
	lifetime-extended value_type temporary.
	* testsuite/23_containers/flat_multiset/1.cc (test08): New test.
	* testsuite/23_containers/flat_set/1.cc (test08): New test.

2025-04-04  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101587
	* include/bits/ranges_uninitialized.h (__detail::__mindist):
	Remove.
	(ranges::uninitialized_copy, ranges::uninitialized_copy_n)
	(ranges::uninitialized_move, ranges::uninitialized_move_n): Use
	comparison and assignment instead of __mindist.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
	Check with ranges that use integer-like class type for
	difference type.
	* testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
	Likewise.

2025-04-04  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/109162
	* include/Makefile.am: Add bits/formatfwd.h.
	* include/Makefile.in: Add bits/formatfwd.h.
	* include/bits/version.def: Define __glibcxx_format_ranges without
	corresponding std name.
	* include/bits/version.h: Regenerate.
	* include/std/format (basic_format_context, __format::__char):
	Move declartions to bits/formatfwd.h.
	(formatter<_Tp, _CharT>): Remove default argument for _CharT
	parameter, now specified in forward declaration in bits/formatfwd.h.
	* include/std/vector (formatter<_Bit_reference, _CharT>): Define.
	* include/bits/formatfwd.h: New file with forward declarations
	for bits of std/format.
	* testsuite/23_containers/vector/bool/format.cc: New test.

2025-04-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.h: Check __glibcxx_string_view and
	__glibcxx_variant instead of __cplusplus >= 2017L.
	* include/bits/cow_string.h: Likewise.

2025-04-04  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/basic_string.tcc: Fix whitespace.

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

	* include/bits/version.tpl: Implement no_stdname.
	* include/bits/version.def: Document no_stdname.

2025-04-03  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/cpu/nvptx/t-nvptx: Remove.
	* configure.host [nvptx]: Adjust.

2025-04-03  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/119573
	* config/cpu/nvptx/t-nvptx (AM_MAKEFLAGS): Don't amend.

2025-04-03  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/std/format/functions/format.cc: Restored line.

2025-04-03  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119593
	* include/bits/unicode.h
	(__unicode::__literal_encoding_is_unicode<_CharT>):
	Corrected handing for UTF-16 and UTF-32 with "LE" or "BE" suffix.
	* include/std/format (__formatter_str::_S_character_width):
	Define.
	(__formatter_str::_S_character_width): Updated passed char
	length.
	* testsuite/std/format/functions/format.cc: Test for wchar_t.

2025-04-02  John David Anglin  <danglin@gcc.gnu.org>

	* config/os/hpux/os_defines.h: Only use long long when
	__cplusplus >= 201103L.

2025-04-02  Iain Sandoe  <iain@sandoe.co.uk>

	* testsuite/lib/prune.exp: Prune ld warning about duplicatei
	rpaths.

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

	PR libstdc++/114945
	* include/bits/vector.tcc (vector::_M_default_append): Add
	unreachable condition so the compiler knows that _M_finish is
	not null.
	* testsuite/23_containers/vector/capacity/114945.cc: New test.

2025-04-01  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/119369
	* config/cpu/gcn/cpu_defines.h: New.
	* configure.host [GCN] (cpu_defines_dir): Point to it.

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

	PR libstdc++/110498
	* include/bits/vector.tcc (vector<bool, A>::_M_reallocate):
	Hoist loads of begin() and end() before allocation and use them
	to state an unreachable condition.
	* testsuite/23_containers/vector/bool/capacity/110498.cc: New
	test.

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

	PR libstdc++/114758
	* include/bits/vector.tcc (vector<bool, A>::_M_fill_insert):
	Hoist loads of begin() and end() before allocation.
	* testsuite/23_containers/vector/bool/capacity/114758.cc: New
	test.

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

	PR libstdc++/119550
	* acinclude.m4 (GLIBCXX_STRUCT_TM_TM_ZONE): New macro.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Use GLIBCXX_STRUCT_TM_TM_ZONE.
	* include/bits/chrono_io.h (__formatter_chrono::_M_c): Check
	_GLIBCXX_USE_STRUCT_TM_TM_ZONE instead of
	_GLIBCXX_HAVE_STRUCT_TM_TM_ZONE.

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

	* config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Make
	std::basic_string::_M_construct patterns more precise.

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

	PR libstdc++/119545
	* include/std/tuple (operator==): Convert comparison results to
	bool.
	* testsuite/20_util/tuple/comparison_operators/119545.cc: New
	test.

2025-03-31  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119517
	* include/bits/chrono_io.h (formatter):
	Add __format::__char for _CharT and adjust parse and format
	method signatures.
	* testsuite/std/time/format/pr119517.cc: New test.

2025-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/103827
	PR tree-optimization/80331
	PR tree-optimization/87502
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.34): Use [jmy] rather than m
	in pattern for _M_construct<bool>(char const*, size_t).

2025-03-30  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/103827
	PR tree-optimization/80331
	PR tree-optimization/87502
	* config/abi/pre/gnu.ver: Add version for _M_construct<bool>
	* include/bits/basic_string.h: (basic_string::_M_construct<bool>): Declare.
	(basic_string constructors): Use it.
	* include/bits/basic_string.tcc: (basic_string::_M_construct<bool>): New template.
	* src/c++11/string-inst.cc: Instantated S::_M_construct<bool>.

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

	PR libstdc++/117983
	* testsuite/23_containers/vector/modifiers/insert/117983.cc: New
	test.

2025-03-28  David Malcolm  <dmalcolm@redhat.com>

	* testsuite/17_intro/shared_with_static_deps.cc: Fix malformed
	dg-require-static-libstdcxx directive.
	* testsuite/17_intro/static.cc: Likewise.
	* testsuite/18_support/type_info/110572.cc: Likewise.
	* testsuite/20_util/to_chars/4.cc: Likewise.
	* testsuite/std/time/tzdb_list/pr118811.cc: Likewise.

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

	PR libstdc++/101587
	* include/bits/ranges_uninitialized.h (__detail::__mindist):
	New function object.
	(ranges::uninitialized_copy, ranges::uninitialized_copy_n)
	(ranges::uninitialized_move, ranges::uninitialized_move_n): Use
	__mindist instead of std::min.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
	Check ranges with difference difference types.
	* testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
	Likewise.

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

	* include/bits/chrono_io.h (__formatter_chrono::_M_c): Use
	const_cast when setting tm.tm_zone.

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

	* src/c++20/tzdata.zi: Import new file from 2025b release.

2025-03-27  Sam James  <sam@gentoo.org>

	* testsuite/std/format/string_neg.cc: Add missing brace for dg-error.

2025-03-27  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	PR libstdc++/119488
	* include/bits/version.def (constexpr_algorithms): Bump
	the feature-testing macro.
	* include/bits/version.h: Regenerate.
	* testsuite/25_algorithms/cpp_lib_constexpr.cc: Test the
	bumped value for the feature-testing macro.

2025-03-27  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/algorithmfwd.h (stable_partition): Mark it
	as constexpr for C++26.
	* include/bits/ranges_algo.h (__stable_partition_fn): Likewise.
	* include/bits/stl_algo.h (stable_partition): Mark it as
	constexpr for C++26; during constant evaluation use a new
	codepath where a temporary buffer of 1 element is used.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc
	(stable_partition): Add constexpr.
	* testsuite/25_algorithms/stable_partition/constexpr.cc: New test.

2025-03-27  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/algorithmfwd.h (inplace_merge): Mark it as
	constexpr for C++26.
	* include/bits/ranges_algo.h (__inplace_merge_fn): Likewise.
	* include/bits/stl_algo.h (inplace_merge): Mark it as constexpr;
	during constant evaluation, dispatch to the non-allocating
	codepath.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc
	(inplace_merge): Add constexpr.
	* testsuite/25_algorithms/inplace_merge/constexpr.cc: New test.

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

	PR libstdc++/119469
	* include/bits/iterator_concepts.h (_IterMove::__result): Use
	decltype-specifier instead of an explicit type.
	* testsuite/24_iterators/customization_points/iter_move.cc:
	Check results for function references.

2025-03-26  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/version.def (constexpr_algorithms): Change
	the value of the feature-testing macro.
	* include/bits/version.h: Regenerate.
	* testsuite/25_algorithms/cpp_lib_constexpr.cc: Amend the
	check of the feature-testing macro.

2025-03-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119415
	* include/std/flat_set (_Flat_set_impl:insert_range):
	Replace __detail::__cpp17_input_iterator with __has_input_iter_cat.
	* testsuite/23_containers/flat_multiset/1.cc: New tests
	* testsuite/23_containers/flat_set/1.cc: New tests

2025-03-26  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/111055
	* include/bits/deque.tcc (deque::prepend_range, deque::append_range)
	(deque::insert_range, __advance_dist): Define.
	(deque::_M_range_prepend, deque::_M_range_append):
	Extract from _M_range_insert_aux for _ForwardIterator(s).
	* include/bits/stl_deque.h (deque::assign_range): Define.
	(deque::prepend_range, deque::append_range, deque::insert_range):
	Declare.
	(deque(from_range_t, _Rg&&, const allocator_type&)): Define constructor
	and deduction guide.
	* include/debug/deque (deque::prepend_range, deque::append_range)
	(deque::assign_range):	Define.
	(deque(from_range_t, _Rg&&, const allocator_type&)): Define constructor
	and deduction guide.
	* testsuite/23_containers/deque/cons/from_range.cc: New test.
	* testsuite/23_containers/deque/modifiers/append_range.cc: New test.
	* testsuite/23_containers/deque/modifiers/assign/assign_range.cc:
	New test.
	* testsuite/23_containers/deque/modifiers/prepend_range.cc: New test.
	* testsuite/23_containers/deque/modifiers/insert/insert_range.cc: New file.

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

	* include/std/ranges (ranges::to): Allow unions as well as
	non-union class types.
	* testsuite/std/ranges/conv/lwg4229.cc: New test.

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

	PR libstdc++/108487
	* include/bits/stl_vector.h (vector(initializer_list)): Call
	_M_range_initialize_n instead of _M_range_initialize.
	(vector(InputIterator, InputIterator)): Use _M_range_initialize_n
	for C++20 sized sentinels and forward iterators.
	(vector(from_range_t, R&&)): Use _M_range_initialize_n for sized
	ranges and forward ranges.
	(vector::_M_range_initialize(FwIt, FwIt, forward_iterator_tag)):
	Likewise.
	(vector::_M_range_initialize_n): New function.
	* testsuite/23_containers/vector/cons/108487.cc: New test.

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

	* include/debug/vector (vector::assign_range): Use change in
	capacity to detect reallocation.
	(vector::insert_range, vector::append_range): Likewise. Remove
	unused variables.

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

	* include/bits/stl_bvector.h (vector::assign_range): More
	efficient implementation for forward/sized ranges.
	(vector::append_range): Handle potentially overlapping range.
	* include/bits/stl_vector.h (vector(from_range_t, R&&, Alloc)):
	Do not use append_range for non-sized input range case.
	(vector::append_range): Handle potentially overlapping range.
	* include/bits/vector.tcc (vector::insert_range): Forward range
	instead of moving it.
	* testsuite/23_containers/vector/bool/modifiers/insert/append_range.cc:
	Test overlapping ranges.
	* testsuite/23_containers/vector/modifiers/append_range.cc:
	Likewise.

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

	PR libstdc++/118699
	* testsuite/27_io/filesystem/operations/copy.cc: Check copying a
	file to a directory.

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

	PR libstdc++/119429
	* include/std/format (__format::_Scanner::_Scanner): Cast
	default argument to size_t.

2025-03-25  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119415
	* include/std/flat_set (_Flat_set_impl:insert_range):
	Add __detail::__cpp17_input_iterator check.
	* testsuite/23_containers/flat_multiset/1.cc: New tests
	* testsuite/23_containers/flat_set/1.cc: New tests

2025-03-24  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/policy_data_structures_biblio.xml: Fix two
	broken links.
	* doc/html/manual/policy_data_structures.html: Regenerate.

2025-03-24  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/101527
	* testsuite/24_iterators/common_iterator/101527.cc: New test.
	* testsuite/24_iterators/counted_iterator/101527.cc: New test.

2025-03-24  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_bvector.h (vector<bool, A>): Enforce the
	C++20 requirement that the allocator's value_type matches the
	container.
	* testsuite/23_containers/vector/bool/cons/from_range.cc: Fix
	incorrect allocator type.

2025-03-21  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/117214
	* configure.ac: Use AC_STRUCT_TIMEZONE.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* include/bits/chrono_io.h (__formatter_chrono::_M_c): Set
	tm_isdst and tm_zone.
	* testsuite/std/time/format/pr117214.cc: Check %c formatting of
	zoned_time and local time.

2025-03-21  XU Kailiang  <xu2k3l4@outlook.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/117214
	* include/bits/chrono_io.h (__formatter_chrono::_M_c): Use
	_M_locale_fmt to format %c time point.
	* testsuite/std/time/format/pr117214.cc: New test.

2025-03-21  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/chrono_io.h (__formatter_chrono::_M_locale_fmt):
	Imbue locale into ostringstream.
	* testsuite/std/time/format/localized.cc: Check that correct
	locale is used for call to time_put::put.

2025-03-21  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_vector.h (vector(from_range_t, Alloc)): Use
	delegating constructor instead of RAII guards. Use append_range
	for unsized input range case.

2025-03-21  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++23/std.compat.cc.in: Only export <stdbit.h> and
	<stdckdint.h> contents for C++26 and later.

2025-03-21  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++23/std.cc.in (tuple_element, tuple_element_t)
	(tuple_size, tuple_size_v, get): Export.
	(ranges::cache_latest_view, views::cache_latest): Export.
	(ranges::to_input_view, views::to_input): Export.
	(from_range_t, from_range): Export.

2025-03-20  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/debug/unordered_map (unordered_map): Add from_range
	constructors and deduction guides.
	(unordered_multimap): Likewise.
	* include/debug/unordered_set (unordered_set): Add from_range
	constructors and deduction guides.
	(unordered_multiset): Likewise.

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

	* include/debug/map.h (map): Add from_range constructors and
	deduction guides.
	* include/debug/multimap.h (multimap): Likewise.
	* include/debug/multiset.h (multiset): Likewise.
	* include/debug/set.h (set): Likewise.

2025-03-20  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/18_support/numeric_limits/traps.cc (main): Fix comment
	typo.

2025-03-19  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/test.xml: Fix default for -std option.
	* doc/html/manual/test.html: Regenerate.

2025-03-19  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/locale_facets_nonio.tcc (time_put::do_put): Fix
	typo in comment.

2025-03-19  François Dumont  <frs.dumont@gmail.com>

	* testsuite/23_containers/set/requirements/explicit_instantiation/alloc_ptr.cc:
	Activate the template member tests involving __cpp_lib_ranges_to_container
	support.

2025-03-19  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/stdbit/1.cc: Include <climits> instead of
	<limits.h>.

2025-03-19  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/ranges_base.h (__detail::__range_key_type):
	Replace RV::first_type with tuple_element_t<0, RV>.
	(__detail::__range_mapped_type) Replace RV::second_type
	with tuple_element_t<1, RV>.
	* testsuite/23_containers/flat_map/1.cc: New tests.
	* testsuite/23_containers/flat_multimap/1.cc: New tests.
	* testsuite/23_containers/map/cons/from_range.cc: New tests.
	* testsuite/23_containers/multimap/cons/from_range.cc: New tests.
	* testsuite/23_containers/unordered_map/cons/from_range.cc: New tests.
	* testsuite/23_containers/unordered_multimap/cons/from_range.cc:
	New tests.

2025-03-19  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/bits/unordered_map.h
	(unordered_map(from_range_t, _Rg&&, const allocator_type&))
	(unordered_multimap(from_range_t, _Rg&&, const allocator_type&)):
	Define.
	* include/bits/unordered_set.h
	(unordered_set(from_range_t, _Rg&&, const allocator_type&))
	(unordered_multiset(from_range_t, _Rg&&, const allocator_type&)):
	Define.
	* testsuite/23_containers/unordered_map/cons/from_range.cc: New tests.
	New tests.
	* testsuite/23_containers/unordered_multimap/cons/from_range.cc:
	New tests.
	* testsuite/23_containers/unordered_multiset/cons/from_range.cc:
	New tests.
	* testsuite/23_containers/unordered_set/cons/from_range.cc: New tests.
	* testsuite/std/ranges/conv/1.cc: New tests.

2025-03-19  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119358
	* include/bits/unordered_map.h (unordered_multimap::insert_range):
	Cast ranges::distance to size_type before passing to _M_rehash_insert.
	* include/bits/unordered_set.h (unordered_multiset::insert_range):
	Same as unordered_multimap::insert_range.
	* testsuite/23_containers/unordered_multimap/cons/from_range.cc:
	New tests.
	* testsuite/23_containers/unordered_multiset/cons/from_range.cc:
	New tests.

2025-03-18  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/111055
	* include/bits/unordered_map.h (unordered_map): Define from_range
	constructors and insert_range member.
	(unordered_multimap): Likewise.
	* testsuite/23_containers/unordered_multimap/cons/from_range.cc:
	New test.
	* testsuite/23_containers/unordered_multimap/modifiers/insert_range.cc:
	New test.
	* testsuite/23_containers/unordered_map/cons/from_range.cc:
	New test.
	* testsuite/23_containers/unordered_map/modifiers/insert_range.cc:
	New test.

2025-03-18  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/111055
	* include/bits/hashtable.h (_M_rehash_insert)
	(_M_insert_range_multi): Extracted rehashing for range insertion
	to separate function.
	* include/bits/unordered_set.h (unordered_set): Define from_range
	constructors and insert_range member.
	(unordered_multiset) Likewise.
	* testsuite/23_containers/unordered_multiset/cons/from_range.cc:
	New test.
	* testsuite/23_containers/unordered_multiset/modifiers/insert_range.cc:
	New test.
	* testsuite/23_containers/unordered_set/cons/from_range.cc:
	New test.
	* testsuite/23_containers/unordered_set/modifiers/insert_range.cc:
	New test.

2025-03-18  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/111055
	* include/bits/stl_multiset.h: (inser_range)
	(multiset(from_range_t, _Rg&&, const _Compare&, const _Alloc&))
	(multiset(from_range_t, _Rg&&, const _Alloc&)):	Define.
	* include/bits/stl_set.h: (set(from_range_t, _Rg&&, const _Alloc&))
	(set(from_range_t, _Rg&&, const _Compare&, const _Alloc&), insert_range):
	Define.
	* testsuite/23_containers/multiset/cons/from_range.cc: New test.
	* testsuite/23_containers/multiset/modifiers/insert/insert_range.cc:
	New test.
	* testsuite/23_containers/set/cons/from_range.cc: New test.
	* testsuite/23_containers/set/modifiers/insert/insert_range.cc:
	New test.

2025-03-18  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/111055
	* include/bits/ranges_base.h (__detail::__range_to_alloc_type):
	Define.
	* include/bits/stl_multimap.h: (inser_range)
	(multimap(from_range_t, _Rg&&, const _Compare&, const _Alloc&))
	(multimap(from_range_t, _Rg&&, const _Alloc&)): Define.
	* include/bits/stl_map.h: (map(from_range_t, _Rg&&, const _Alloc&)) i
	(map(from_range_t, _Rg&&, const _Compare&, const _Alloc&), insert_range):
	Define.
	* testsuite/23_containers/multimap/cons/from_range.cc: New test.
	* testsuite/23_containers/multimap/modifiers/insert/insert_range.cc: New test.
	* testsuite/23_containers/map/cons/from_range.cc: New test.
	* testsuite/23_containers/map/modifiers/insert/insert_range.cc: New test.

2025-03-14  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/119282
	* include/bits/stl_vector.h (vector::vector(from_range_t)): Add
	missing 'constexpr' to local class _Clear.
	* testsuite/std/ranges/conv/1.cc (test_pr119282): New test.

2025-03-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/111138
	* include/std/ranges (_ZipTransform::operator()):
	Create separate overload for calls with empty range pack,
	and add move_constructible, regular_invocable and
	is_object_v<invoke_result_t<...>>> constraints.
	* testsuite/std/ranges/zip_transform/1.cc: New tests
	Jonathan Wakely <jwakely@redhat.com>

2025-03-14  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/92713
	PR target/101544
	* config/cpu/nvptx/cpu_defines.h: New.
	* config/cpu/nvptx/t-nvptx: Likewise.
	* configure.host: Handle GCN, nvptx.

2025-03-14  Tomasz Kamiński  <tkaminsk@redhat.com>

	* testsuite/23_containers/priority_queue/cons_from_range.cc:
	Add `#include <algorithm>.
	* testsuite/23_containers/priority_queue/members/push_range.cc:
	Add `#include <algorithm>.

2025-03-14  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/shared_ptr_base.h (lock): Fixed a compile error
	when calling lock() on a weak_ptr<T[]>, by removing an
	erroneous usage of element_type from within lock().
	* testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc:
	Add more tests for array types.
	* testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
	Likewise.
	* testsuite/20_util/shared_ptr/requirements/1.cc: New test.
	* testsuite/20_util/weak_ptr/requirements/1.cc: New test.

2025-03-13  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/116440
	* include/std/tuple (tuple::tuple(const _Elements&...))
	[C++20]: Turn into a template.
	* testsuite/20_util/tuple/116440.C: New test.

2025-03-13  Jonathan Wakely  <jwakely@redhat.com>
	    Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/111055
	* include/bits/stl_queue.h (queue(from_range_t, _Rg&&))
	(queue(from_range_t, _Rg&&, const _Alloc&), push_range):
	Define.
	(priority_queue(from_range_t, R&&, const Compare&))
	(push_range): Define.
	* include/bits/stl_stack.h (stack(from_range_t, R&&))
	(stack(from_range_t, R&&, const Alloc&), push_range): Define.
	* testsuite/util/testsuite_iterators.h (test_range_nocopy): Define.
	* testsuite/23_containers/priority_queue/cons_from_range.cc: New test.
	* testsuite/23_containers/priority_queue/members/push_range.cc: New test.
	* testsuite/23_containers/queue/cons_from_range.cc: New test.
	* testsuite/23_containers/queue/members/push_range.cc: New test.
	* testsuite/23_containers/stack/cons_from_range.cc: New test.
	* testsuite/23_containers/stack/members/push_range.cc: New test.

2025-03-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/Makefile.am: Add stdckdint.h.
	* include/Makefile.in: Regenerate.
	* src/c++23/std.compat.cc.in: Export <stdckdint.h> functions.
	* include/c_compatibility/stdckdint.h: New file.
	* testsuite/26_numerics/stdckdint/1.cc: New test.
	* testsuite/26_numerics/stdckdint/2_neg.cc: New test.

2025-03-13  Jonathan Wakely  <jwakely@redhat.com>

	* include/Makefile.am: Add stdbit.h.
	* include/Makefile.in: Regenerate.
	* src/c++23/std.compat.cc.in: Export <stdbit.h> functions.
	* include/c_compatibility/stdbit.h: New file.
	* testsuite/20_util/stdbit/1.cc: New test.
	* testsuite/20_util/stdbit/2_neg.cc: New test.

2025-03-13  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/119135
	* include/std/ranges: Include <utility>.
	(views::__detail::__is_ref_view): Replace with ...
	(views::__detail::__is_constable_ref_view): ... this.
	(views::_AsConst::operator()): Replace bogus use of element_type
	in the ref_view branch.
	* testsuite/std/ranges/adaptors/as_const/1.cc (test03): Extend
	test.

2025-03-13  Thomas Schwinge  <tschwinge@baylibre.com>

	* acinclude.m4 (GLIBCXX_ENABLE_CXX_FLAGS): Append to
	'EXTRA_CXX_FLAGS' any additional flags.
	* configure: Regenerate.
	* configure.host: Document 'EXTRA_CFLAGS', 'EXTRA_CXX_FLAGS'.

2025-03-13  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/108053
	* include/std/format (basic_format_arg::_M_visit_user):
	Helper function for wrapping extension types into handle.
	(visit_format_arg): Call `_M_visit_user` instead of `_M_visit`.
	(basic_format_arg::visit): As above.
	(__format::__visit_format_arg): Provides direct access to
	values stored in basic_format_arg.
	(__format::__int_from_arg): Use __format::__visit_format_arg
	instead of std::visit_format_arg.
	(_Formatting_scanner::_M_format_arg): As above.
	(_Checking_scanner::__do_vformat_to): As above.
	* testsuite/std/format/arguments/args.cc: New tests.
	* testsuite/std/format/string.cc: Test for using __int128
	as width/precision.

2025-03-12  Patrick Palka  <ppalka@redhat.com>

	* include/bits/version.def (ranges_to_input): Define.
	* include/bits/version.h: Regenerate.
	* include/std/ranges (ranges::to_input_view): Define for C++26.
	(views::__detail::__can_to_input): Likewise.
	(views::_ToInput, views::to_input): Likewise.
	* testsuite/std/ranges/adaptors/to_input/1.cc: New test.

2025-03-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/format: Include <bits/monostate.h> instead of
	<variant>.

2025-03-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/format (basic_format_parse_context::__once): New
	variable template.
	(basic_format_parse_context::__valid_types_for_check_dynamic_spec):
	New function template for checking argument types.
	(basic_format_parse_context::__check_dynamic_spec): New function
	template to implement the common check_dynamic_spec logic.
	(basic_format_parse_context::check_dynamic_spec_integral): Call
	__check_dynamic_spec instead of check_dynamic_spec.
	(basic_format_parse_context::check_dynamic_spec_string):
	Likewise. Use _CharT instead of char_type consistently.
	(basic_format_parse_context::check_dynamic_spec): Use
	__valid_types_for_check_dynamic_spec for precondition checks and
	call __check_dynamic_spec for checking the arg id.
	* testsuite/std/format/parse_ctx_neg.cc: Adjust expected errors.

2025-03-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/future (packaged_task::packaged_task(F&&)): Add
	static_assert.
	* testsuite/30_threads/packaged_task/cons/dangling_ref.cc: Add
	dg-error for new static assertion.
	* testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc: New
	test.

2025-03-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/chrono (__detail::__get_leap_second_info): Update
	expiry date for leap seconds list.
	* src/c++20/tzdata.zi: Import new file from 2025a release.
	* src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
	Update expiry date for leap seconds list.

2025-03-12  Tomasz Kamiński  <tkaminsk@redhat.com>

	* include/std/format (formatter<_Float16, _CharT>): Define only if
	_GLIBCXX_FLOAT_IS_IEEE_BINARY32 macro is defined.
	(formatter<_Float16, _CharT>): As above.
	(formatter<__gnu_cxx::__bfloat16_t, _CharT>): As above.
	(formatter<_Float64, _CharT>): Define only if
	_GLIBCXX_DOUBLE_IS_IEEE_BINARY64 is defined.
	(basic_format_arg::_S_to_arg_type): Normalize _Float32 and _Float64
	only to float and double respectivelly.
	(basic_format_arg::_S_to_enum): Remove handling of _Float32 and _Float64.

2025-03-12  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/strings.xml: Tweak formatting. Add example
	using lambda.
	* doc/html/manual/strings.html: Regenerate.

2025-03-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/unique_ptr.h (unique_ptr::operator*): Add
	static_assert to check for dangling reference, as per LWG 4148.
	* testsuite/20_util/unique_ptr/lwg4148.cc: New test.

2025-03-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_util.h (ranges::_detail::__has_arrow):
	Require operator->() to be valid on const-qualified type, as per
	LWG 4112.
	* testsuite/std/ranges/adaptors/lwg4112.cc: New test.

2025-03-12  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/format
	(basic_format_parse_context::check_dynamic_spec): Require a
	non-empty parameter pack, as per LWG 4142.
	* testsuite/std/format/parse_ctx.cc: Remove call of
	check_dynamic_spec with empty template argument list.
	* testsuite/std/format/parse_ctx_neg.cc: Add dg-error to call of
	check_dynamic_spec with empty template argument list.

2025-03-08  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/version.def (atomic_value_initialization):
	Guard the FTM with the language concepts FTM.
	* include/bits/version.h: Regenerate.
	* include/std/atomic (atomic): When atomic value init is
	defined, change the defaulted default constructor to
	a non-defaulted one, constraining it as per LWG4169.
	Otherwise, keep the existing constructor.
	Remove the NSDMI for the _M_i member.
	(_GLIBCXX20_INIT): Drop the macro, as it is not needed any more.
	* testsuite/29_atomics/atomic/69301.cc: Test that
	an atomic wrapping a non-default-constructible type is
	always itself non-default-constructible (in all language
	modes).
	* testsuite/29_atomics/atomic/cons/trivial.cc: New test.

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

	* include/bits/stl_algobase.h (__nothrow_contiguous_iterator):
	Remove.
	(__memcpyable_iterators): Simplify.
	(__copy_move_a2, __copy_n_a, __copy_move_backward_a2): Call
	std::to_address on the iterators after advancing them.
	* testsuite/25_algorithms/copy/contiguous.cc: New test.
	* testsuite/25_algorithms/copy_backward/contiguous.cc: New test.
	* testsuite/25_algorithms/copy_n/contiguous.cc: New test.

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

	* include/std/forward_list (erase): Change lambda to have
	explicit return type and const parameter type.
	* include/std/list (erase): Likewise.
	* testsuite/23_containers/forward_list/erasure.cc: Check lambda
	is correct.
	* testsuite/23_containers/list/erasure.cc: Likewise.

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

	* include/bits/chrono_io.h (chrono::__detail::from_stream): Add
	deleted function as poison pill for unqualified lookup.

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

	* include/std/expected (expected<cv void,E>::value()&&):
	Add missing static_assert for LWG 3940.
	* testsuite/20_util/expected/lwg3843.cc: New test.

2025-03-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/unique_lock.h (unique_lock::operator=): Fix for
	self-move-assignment.
	* include/std/shared_mutex (shared_lock::operator=): Add
	comment.
	* testsuite/30_threads/shared_lock/cons/lwg4172.cc: New test.
	* testsuite/30_threads/unique_lock/cons/lwg4172.cc: New test.

2025-03-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/stl_list.h (list::pop_front, list::pop_back):
	Add non-empty assertions.

2025-03-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ranges_util.h: Include <bits/stl_pair.h>.

2025-03-06  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/span (span::~span): Remove, as per LWG 3903.

2025-03-06  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/119144
	* testsuite/26_numerics/complex/tuple_like.cc: Include
	<algorithm>, replace std::string with std::string_view,
	instantiate tests for long instead of size_t.

2025-03-06  Jonathan Wakely  <jwakely@redhat.com>
	    Thomas Schwinge  <tschwinge@baylibre.com>

	* src/c++20/tzdb.cc [__GTHREADS && !__GTHREADS_CXX0X]: Use
	'__gnu_cxx::__mutex'.

2025-03-06  Thomas Schwinge  <tschwinge@baylibre.com>

	* src/c++20/format.cc (conv): Tag 'out' as '[[maybe_unused]]'.

2025-03-06  Thomas Schwinge  <tschwinge@baylibre.com>

	* src/c++17/fs_dir.cc (do_unlink): Tag 'is_directory' as
	'[[maybe_unused]]'.

2025-03-06  Thomas Schwinge  <tschwinge@baylibre.com>

	* src/filesystem/dir-common.h (openat): Tag 'nofollow' as
	'[[maybe_unused]]'.

2025-03-06  Thomas Schwinge  <tschwinge@baylibre.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/c++config [!__cpp_exceptions]
	(_GLIBCXX_THROW_OR_ABORT): Reference '_EXC'.

2025-03-06  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/20_util/specialized_algorithms/uninitialized_copy/constexpr.cc:
	Do not test COW std::string in constexpr contexts.
	* testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constexpr.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill/constexpr.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_move/constexpr.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constexpr.cc:
	Likewise.

2025-03-06  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	PR libstdc++/113310
	* include/bits/stl_pair.h (get): Forward-declare std::get for
	std::complex.
	* include/bits/version.def (tuple_like): Bump the value of
	the feature-testing macro in C++26.
	* include/bits/version.h: Regenerate.
	* include/std/complex: Implement the tuple protocol for
	std::complex.
	(tuple_size): Specialize for std::complex.
	(tuple_element): Ditto.
	(__is_tuple_like_v): Ditto.
	(complex): Add a private getter to obtain references to the real
	and the imaginary part, on the primary class template and on its
	specializations.
	(get): Add overloads of std::get for std::complex.
	* testsuite/20_util/tuple/tuple_like_ftm.cc: New test.
	* testsuite/26_numerics/complex/tuple_like.cc: New test.

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

	* include/std/ranges (enumerate_view::_Iterator::operator-):
	Add noexcept, as per LWG 3912.
	* testsuite/std/ranges/adaptors/enumerate/1.cc: Check iterator
	difference is noexcept.

2025-03-05  yxj-github-437  <2457369732@qq.com>

	* src/c++23/std-clib.cc.in (timespec): Move within preprocessor
	group guarded by _GLIBCXX_HAVE_TIMESPEC_GET.

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

	PR libstdc++/119110
	* testsuite/25_algorithms/move/constrained.cc: Move test06
	function to ...
	* testsuite/25_algorithms/move/105609.cc: New test.
	* testsuite/25_algorithms/move_backward/constrained.cc: Move
	test04 function to ...
	* testsuite/25_algorithms/move_backward/105609.cc: New test.

2025-03-05  Patrick Palka  <ppalka@redhat.com>

	* include/bits/version.def (ranges_cache_latest): Define.
	* include/bits/version.h: Regenerate.
	* include/std/ranges (__detail::__non_propagating_cache::_M_reset):
	Export from base class _Optional_base.
	(cache_latest_view): Define for C++26.
	(cache_latest_view::_Iterator): Likewise.
	(cache_latest_view::_Sentinel): Likewise.
	(views::__detail::__can_cache_latest): Likewise.
	(views::_CacheLatest, views::cache_latest): Likewise.
	* testsuite/std/ranges/adaptors/cache_latest/1.cc: New test.

2025-03-05  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/stl_algo.h (__stable_sort): Use if consteval
	instead of is_constant_evaluated.

2025-03-05  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/115215
	PR libstdc++/115218
	* include/std/ranges
	(concat_view::iterator::_S_invoke_with_runtime_index): Use
	__builtin_unreachable in recursive lambda to certify it always
	exits via 'return'.
	(concat_view::iterator::iterator): In the const-converting
	constructor, direct initialize _M_it.
	(views::_Concat::operator()): Adjust constraints in the
	single-argument case as per LWG 4082.
	* testsuite/std/ranges/concat/1.cc (test01): Call it at runtime
	too.
	(test04): New test.

2025-03-05  Tomasz Kamiński  <tkaminsk@redhat.com>

	PR libstdc++/119121
	* include/bits/ranges_util.h (__detail::__pair_like_convertible_from):
	Use `_Tp` in `is_reference_v` check
	* testsuite/std/ranges/subrange/tuple_like.cc: New tests for
	pair-like conversion

2025-03-05  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/ranges_uninitialized.h: Mark the specialized
	memory algorithms as constexpr in C++26. Also mark the members
	of the _DestroyGuard helper class.
	* include/bits/stl_uninitialized.h: Ditto.
	* include/bits/stl_construct.h: (_Construct_novalue) Mark it
	as constexpr in C++26.
	* include/bits/version.def (raw_memory_algorithms): Bump the
	feature-testing macro for C++26.
	* include/bits/version.h: Regenerate.
	* testsuite/20_util/headers/memory/synopsis.cc: Add constexpr to
	the uninitialized_* algorithms (when in C++26) in the test.
	* testsuite/20_util/specialized_algorithms/feature_test_macro.cc:
	New test.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/constexpr.cc:
	New test.
	* testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constexpr.cc:
	New test.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill/constexpr.cc:
	New test.
	* testsuite/20_util/specialized_algorithms/uninitialized_move/constexpr.cc:
	New test.
	* testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constexpr.cc:
	New test.

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

	* doc/xml/manual/test.xml: Remove stray comma.
	* doc/html/manual/test.html: Regenerate.

2025-02-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/106612
	* include/bits/iterator_concepts.h (_IterMove::__iter_ref_t):
	New alias template.
	(_IterMove::__result): Use __iter_ref_t instead of
	std::iter_reference_t.
	(_IterMove::__type): Remove incorrect __dereferenceable
	constraint.
	(_IterMove::operator()): Likewise. Add correct constraints. Use
	__iter_ref_t instead of std::iter_reference_t. Forward parameter
	as correct value category.
	(iter_swap): Add comments.
	* testsuite/24_iterators/customization_points/iter_move.cc: Test
	that iter_move is found by ADL and that rvalue arguments are
	handled correctly.

2025-02-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/105609
	* include/bits/ranges_algobase.h (__detail::__assign_one): New
	helper function.
	(__copy_or_move, __copy_or_move_backward): Use new function
	instead of std::__assign_one.
	* testsuite/25_algorithms/move/constrained.cc: Check that
	ADL iter_move is used in preference to std::move.
	* testsuite/25_algorithms/move_backward/constrained.cc:
	Likewise.

2025-02-28  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/112803
	* include/std/ranges (ranges::to): Add static assertions to
	enforce Mandates conditions.
	* testsuite/std/ranges/conv/112803.cc: New test.

2025-02-28  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/104606
	* include/std/optional (operator<=>): Revert r14-9771 change.
	Add constraint checking the validity of the return type
	compare_three_way_result_t before the three_way_comparable_with
	constraint.

2025-02-28  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/112490
	* include/bits/stl_iterator.h (basic_const_iterator::operator<):
	Replace non-dependent basic_const_iterator function parameter with
	a dependent one of type basic_const_iterator<_It3> where _It3
	matches _It.
	(basic_const_iterator::operator>): Likewise.
	(basic_const_iterator::operator<=): Likewise.
	(basic_const_iterator::operator>=): Likewise.
	* testsuite/24_iterators/const_iterator/112490.cc: New test.

2025-02-27  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/stacktrace (_Impl::_M_allocate): Fix outdated
	comment.

2025-02-26  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/118083
	* include/bits/ranges_base.h
	(ranges::__access::__possibly_const_range): Mention LWG 4027.

2025-02-25  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/algorithmfwd.h (stable_sort): Add constexpr.
	* include/bits/ranges_algo.h (__stable_sort_fn): Add constexpr
	to the function call operators.
	* include/bits/stl_algo.h (__stable_sort): Add constexpr.
	During constant evaluation, always use the non-allocating path.
	(stable_sort): Add constexpr.
	(__inplace_stable_sort): Likewise.
	(__merge_without_buffer): Likewise.
	* include/bits/version.def (constexpr_algorithms): Bump value
	for C++26.
	* include/bits/version.h: Regnerate.
	* testsuite/25_algorithms/cpp_lib_constexpr.cc: Test the bumped
	feature-testing macro.
	* testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adapt
	the test to constexpr stable_sort.
	* testsuite/25_algorithms/stable_sort/constexpr.cc: New test.

2025-02-25  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/c++config (_GLIBCXX26_CONSTEXPR): New macro.

2025-02-25  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/93059
	* include/bits/stl_algobase.h (__fill_a1): Fix typo in SFINAE
	constraint.

2025-02-25  François Dumont  <frs.dumont@gmail.com>

	* include/bits/hashtable_policy.h
	(_Hash_code_base::_M_copy_code, _Hash_code_base::_M_store_code): Remove.
	* include/bits/hashtable.h (_M_hash_code_ext): New.
	(_M_merge_multi(_Hashtable&)): Use latter.
	(_M_copy_code): New.
	(_M_assign): Use latter.
	(_M_bucket_index_ex): New.
	(_M_equals): Use latter.
	(_M_store_code): New.
	(_M_src_hash_code): Remove key_type parameter.
	* testsuite/23_containers/unordered_map/modifiers/merge.cc (test10): New
	test case.

2025-02-25  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/118083
	* include/bits/ranges_base.h
	(ranges::__access::__possibly_const_range): Adjust logic as per
	LWG 4027.  Add missing input_range constraint.
	* testsuite/std/ranges/access/cbegin.cc (test05): Verify LWG
	4027 testcases.
	* testsuite/std/ranges/access/cdata.cc: Adjust, simplify and
	consolidate some tests after the above.
	* testsuite/std/ranges/access/cend.cc: Likewise.
	* testsuite/std/ranges/access/crbegin.cc: Likewise.
	* testsuite/std/ranges/access/crend.cc: Likewise.
	* testsuite/std/ranges/adaptors/join.cc: Likewise.
	* testsuite/std/ranges/adaptors/take_while.cc: Likewise.
	* testsuite/std/ranges/adaptors/transform.cc: Likewise.

2025-02-22  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/118981
	* src/c++20/tzdb.cc: Use init_priority(98) instead of
	init_priority(99).

2025-02-22  Thomas Schwinge  <tschwinge@baylibre.com>

	* testsuite/lib/prune.exp (proc libstdc++-dg-prune): Turn
	'sorry, unimplemented: dynamic stack allocation not supported' into
	UNSUPPORTED.

2025-02-22  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_base.h (__atomic_base<_ITp>): Remove
	misleading comment.

2025-02-22  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
	Remove redundant cast.

2025-02-20  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118559
	* include/std/type_traits (rank, rank_v): Do not use
	__array_rank for Clang 19 and older.

2025-02-20  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Add parentheses.

2025-02-20  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118855
	* include/std/bit (__count_lzero, __count_rzero, __popcount):
	Use type-generic built-ins when available.

2025-02-20  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/bits/simd.h (__find_next_valid_abi): Cast
	__bit_ceil argument to unsigned.
	* src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
	Cast __bit_ceil argument to unsigned.
	* src/c++17/memory_resource.cc (big_block): Cast __bit_width
	argument to unsigned.

2025-02-20  Jonathan Wakely  <jwakely@redhat.com>

	* src/c++17/memory_resource.cc (default_res): Define here
	instead of including default_resource.h.
	* src/c++98/globals_io.cc (__ioinit): Define here instead of
	including ios_base_init.h.
	* src/c++17/default_resource.h: Removed.
	* src/c++98/ios_base_init.h: Removed.

2025-02-20  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118811
	* src/c++20/tzdb.cc (tzdb_list::_Node): Use init_priority
	attribute on static data members.
	* testsuite/std/time/tzdb_list/pr118811.cc: New test.

2025-02-20  Patrick Palka  <ppalka@redhat.com>

	* include/std/ranges (concat_view::iterator): Rename to ...
	(concat_view::_Iterator): ... this throughout.

2025-02-20  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/115209
	* include/bits/version.def (ranges_concat): Depend on
	__cpp_pack_indexing.
	* include/bits/version.h: Regenerate.
	* include/std/ranges (__detail::__last_is_common): Remove.
	(__detail::__all_but_first_sized): New.
	(concat_view::end): Use C++26 pack indexing instead of
	__last_is_common as per R8 of P2542.
	(concat_view::iterator::operator-): Update constraints on
	iter/sent overloads as per R8 of P2542.

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

	* include/bits/shared_ptr_base.h: Do not include <bit>.

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

	PR libstdc++/100612
	* include/std/thread (__pmf_expects_stop_token): Constrain
	variable template specialization with concept. Add comment.

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

	* include/bits/range_access.h (rbegin, rend, crbegin, crend):
	Add conditional noexcept, as per P3623R0.
	* testsuite/24_iterators/headers/iterator/range_access.cc: Add
	noexcept-specifier to rbegin, rend, crbegin and crend
	declarations.

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

	* testsuite/24_iterators/headers/iterator/range_access_c++11.cc:
	Removed.
	* testsuite/24_iterators/headers/iterator/range_access_c++14.cc:
	Removed.
	* testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
	Removed.
	* testsuite/24_iterators/headers/iterator/range_access.cc:
	New test.

2025-02-14  Andrew Pinski  <quic_apinski@quicinc.com>

	PR libstdc++/118865
	* include/bits/stl_list.h (_M_initialize_dispatch): Add an
	unreachable if the iterator was not empty that the list will
	now be not empty.

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

	* include/parallel/algobase.h (__mismatch_switch): Qualify calls
	to make_pair to avoid ADL.

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

	* include/bits/stl_tree.h (_Rb_tree::_M_equal_range): Replace
	unqualified call to make_pair with explicit construction of
	std::pair.
	* testsuite/23_containers/set/operations/equal_range_adl.cc:
	New test.

2025-02-14  Matthew Malcomson  <mmalcomson@nvidia.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/atomic_base.h (__atomic_fetch_addable): Define
	new concept.
	(__atomic_impl::__fetch_add_flt): Use new concept to make use of
	__atomic_fetch_add when available.
	(__atomic_fetch_subtractable, __fetch_sub_flt): Likewise.
	(__atomic_add_fetchable, __add_fetch_flt): Likewise.
	(__atomic_sub_fetchable, __sub_fetch_flt): Likewise.

2025-02-08  Thomas Schwinge  <tschwinge@baylibre.com>

	* testsuite/lib/prune.exp (libstdc++-dg-prune): Turn
	'sorry, unimplemented: exception handling not supported' into
	UNSUPPORTED.

2025-02-08  Thomas Schwinge  <tschwinge@baylibre.com>

	* testsuite/lib/prune.exp (libstdc++-dg-prune): Clarify
	effective-target 'exceptions_enabled'.

2025-02-07  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	PR libstdc++/118160
	PR libstdc++/100249
	* include/bits/ranges_algo.h (__is_permutation_fn): Avoid a
	dangling reference by storing the result of the iterator
	dereference and the result of the projection in two distinct
	variables, in order to lifetime-extend each one.
	Forward the projected value to the predicate.
	* testsuite/25_algorithms/is_permutation/constrained.cc: Add a
	test with a range returning prvalues. Test it in a constexpr
	context, in order to rely on the compiler to catch UB.

2025-02-07  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/ostream.h (basic_ostream::_Disable_exceptions):
	RAII helper type.
	(basic_ostream::sentry::~sentry): Use _Disable_exceptions. Add
	try-catch block around call to pubsync.
	* testsuite/27_io/basic_ostream/exceptions/char/lwg4188.cc: New
	test.
	* testsuite/27_io/basic_ostream/exceptions/wchar_t/lwg4188.cc:
	New test.

2025-02-07  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/111050
	* include/bits/hashtable_policy.h (_Hash_node_value_base): Add
	comment about always_inline attributes.

2025-02-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118701
	* config/abi/pre/gnu.ver (CXXABI_1.3.16): Move __riscv guard
	around version.
	* scripts/extract_symvers.pl: Allow for weak versions.
	* testsuite/util/testsuite_abi.cc (check_version): Wrap
	CXXABI_1.3.16 in __riscv.

2025-01-31  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/118156
	* include/std/flat_map (_Flat_map_impl::_M_insert): Generalized
	version of insert taking heterogenous iterator/sentinel pair.
	(_Flat_map_impl::insert): Dispatch to _M_insert.
	(_Flat_map_impl::insert_range): Likewise.
	(flat_map): Export _Flat_map_impl::insert_range.
	(flat_multimap): Likewise.
	* include/std/flat_set (_Flat_set_impl::insert_range):
	Reimplement directly, not in terms of insert.
	(flat_set): Export _Flat_set_impl::insert_range.
	(flat_multiset): Likewise.
	* testsuite/23_containers/flat_map/1.cc (test06): New test.
	* testsuite/23_containers/flat_multimap/1.cc (test06): New test.
	* testsuite/23_containers/flat_multiset/1.cc (test06): New test.
	* testsuite/23_containers/flat_set/1.cc (test06): New test.

2025-01-31  Patrick Palka  <ppalka@redhat.com>

	* include/bits/stl_bvector.h (vector<bool>::insert_range):
	Consistently return an iterator pointing to the first element
	inserted.
	* include/bits/vector.tcc (vector::insert_range): Likewise.
	* testsuite/23_containers/vector/bool/modifiers/insert/insert_range.cc:
	Verify insert_range return values.
	* testsuite/23_containers/vector/modifiers/insert/insert_range.cc:
	Likewise.

2025-01-30  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/98749
	* include/std/latch (latch::max()): Ensure the return value is
	representable as the return type.
	(latch::latch(ptrdiff_t)): Add assertion.
	(latch::count_down): Fix copy & pasted duplicate assertion. Use
	std::cmp_equal to compare __platform_wait_t and ptrdiff_t
	values.
	(latch::_M_a): Use defined constant for alignment.
	* testsuite/30_threads/latch/1.cc: Check max(). Check constant
	initialization works for values in the valid range. Check
	alignment.

2025-01-29  Patrick Palka  <ppalka@redhat.com>

	PR libstdc++/118413
	* include/std/ranges (views::__adaptor::_Partial): Adjust
	constraints on the "simple" partial specializations to require
	is_trivially_copy_constructible_v instead of
	is_trivially_copyable_v.
	* testsuite/std/ranges/adaptors/adjacent_transform/1.cc (test04):
	Extend P2494R2 test.
	* testsuite/std/ranges/adaptors/transform.cc (test09): Likewise.

2025-01-27  Andreas Schwab  <schwab@suse.de>

	PR libstdc++/118563
	* testsuite/util/testsuite_abi.cc (check_version): Add
	CXXABI_1.3.16.
	* config/abi/pre/gnu.ver (CXXABI_1.3.14) [__riscv]: Exclude
	typeinfo for bfloat16_t.
	(CXXABI_1.3.16) [__riscv]: Add it here.

2025-01-23  Jan Hubicka  <jh@suse.cz>

	PR target/80813
	* include/bits/stl_bvector.h (vector<bool, _Alloc>::operator []): Do
	not use iterators.

2025-01-20  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	PR libstdc++/118185
	PR libstdc++/100249
	* include/bits/ranges_algo.h (__clamp_fn): Correctly forward the
	projected value to the comparator.
	* testsuite/25_algorithms/clamp/118185.cc: New test.

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

	PR libstdc++/99995
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/bits/unique_ptr.h: Include bits/ostream.h instead of
	ostream.
	* include/std/ostream: Include new header.
	* include/bits/ostream.h: New file.

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

	PR libstdc++/118158
	* src/c++17/fs_ops.cc (fs::equivalent): Remove error reporting
	for is_other(s1) && is_other(s2) case, as per LWG 2937.
	* testsuite/27_io/filesystem/operations/pr118158.cc: New test.

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

	* include/bits/stl_map.h: Check __glibcxx_node_extract instead
	of __cplusplus.
	* include/bits/stl_multimap.h: Likewise.
	* include/bits/stl_multiset.h: Likewise.
	* include/bits/stl_set.h: Likewise.
	* include/bits/stl_tree.h: Likewise.

2025-01-15  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/27_io/ios_base/types/openmode/case_label.cc: Use
	standard feature test macro not internal one.

2025-01-15  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/23_containers/set/requirements/explicit_instantiation/alloc_ptr.cc:
	Guard node extraction checks with feature test macro. Remove
	calls to non-existent range members.
	* testsuite/23_containers/forward_list/requirements/explicit_instantiation/alloc_ptr.cc:
	Use standard macro not internal one.
	* testsuite/23_containers/list/requirements/explicit_instantiation/alloc_ptr.cc:
	Likewise.

2025-01-15  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/109849
	* include/bits/vector.tcc (vector::_M_range_insert): Fix
	reversed args in length calculation.

2025-01-15  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/28_regex/traits/char/transform_primary.cc: Fix
	subclause numbering in references to the standard.

2025-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/118387
	* testsuite/25_algorithms/default_template_value.cc
	(Input::operator<=>): Use auto as return type rather than bool.

2025-01-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>

	* testsuite/27_io/print/1.cc: Allow both LF and CRLF in test.
	* testsuite/27_io/print/3.cc: Likewise.

2025-01-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>

	* testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
	Use effective-target libatomic_available.

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

	* include/bits/atomic_futex.h (__atomic_futex_unsigned): Remove
	names of unused parameters in non-futex implementation.

2025-01-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/move.h (__addressof, forward, forward_like, move)
	(move_if_noexcept, addressof): Add always_inline attribute.
	Replace _GLIBCXX_NODISCARD with [[__nodiscard__]].

2025-01-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118260
	* python/hook.in: Run 'skip' commands for some simple accessor
	functions.

2025-01-08  Nicolas Werner  <nicolas.werner@hotmail.de>

	PR libstdc++/106852
	* src/c++23/std.cc.in (to_underlying): Add.

2025-01-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118177
	* src/c++23/std-clib.cc.in: Use preprocessor conditions for
	names which are not always defined.
	* src/c++23/std.cc.in: Likewise.

2025-01-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/span: Fix indentation.

2025-01-08  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>

	* include/bits/version.def: Add the new feature-testing macro.
	* include/bits/version.h: Regenerate.
	* include/std/span: Add constructor from initializer_list.
	* testsuite/23_containers/span/init_list_cons.cc: New test.
	* testsuite/23_containers/span/init_list_cons_neg.cc: New test.

2025-01-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/std/span (__detail::__extent_storage): Check
	precondition in constructor. Add consteval constructor for valid
	lengths and deleted constructor for invalid constant lengths.
	Make member functions always_inline.
	(__detail::__span_ptr): New class template.
	(span): Adjust constructors to use a std::integral_constant
	value for constant lengths. Declare all specializations of
	std::span as friends.
	(span::first<C>, span::last<C>, span::subspan<O,C>): Use new
	private constructor.
	(span(__span_ptr<T>)): New private constructor for constant
	lengths.

2025-01-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/85824
	PR libstdc++/94409
	PR libstdc++/98723
	PR libstdc++/118105
	* include/bits/locale_classes.tcc (collate::do_transform): Check
	errno after calling _M_transform. Use RAII type to manage the
	buffer and to restore errno.
	* include/bits/regex.h (regex_traits::transform_primary): Handle
	exceptions from std::collate::transform and do not try to use
	std::collate for user-defined facets.

2025-01-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/118093
	* include/bits/atomic_futex.h (_M_load_and_test_until_impl):
	Return false for times before the epoch.
	* src/c++11/futex.cc (_M_futex_wait_until): Extend check for
	negative times to check for subsecond times. Add unlikely
	attribute.
	(_M_futex_wait_until_steady): Likewise.
	* testsuite/30_threads/future/members/118093.cc: New test.

2025-01-08  Jonathan Wakely  <jwakely@redhat.com>

	PR libstdc++/90389
	* include/bits/deque.tcc (_M_insert_aux): Rename variadic
	overload to _M_emplace_aux.
	* include/bits/stl_deque.h (_M_insert_aux): Define inline.
	(_M_emplace_aux): Declare.
	* testsuite/23_containers/deque/modifiers/emplace/90389.cc: New
	test.

2025-01-08  Jonathan Wakely  <jwakely@redhat.com>

	* include/bits/move.h (forward, move, move_if_noexcept, addressof):
	Add @since to Doxygen comments.
	(forward_like): Add Doxygen comment.

2025-01-08  Jonathan Wakely  <jwakely@redhat.com>

	* doc/xml/manual/evolution.xml: Replace invalid <variable>
	elements with <varname>.
	* doc/html/*: Regenerate.

2025-01-01  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/html/manual/profile_mode.html: Delete.
	* doc/html/manual/profile_mode_api.html: Ditto.
	* doc/html/manual/profile_mode_cost_model.html: Ditto.
	* doc/html/manual/profile_mode_design.html: Ditto.
	* doc/html/manual/profile_mode_devel.html: Ditto.
	* doc/html/manual/profile_mode_impl.html: Ditto.

Copyright (C) 2025 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.
