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.
