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

	Backported from master:
	2025-09-17  Patrick Palka  <ppalka@redhat.com>

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

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

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

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

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

	Backported from master:
	2025-09-10  Jonathan Wakely  <jwakely@redhat.com>

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

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

	Backported from master:
	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-09  Tomasz Kamiński  <tkaminsk@redhat.com>

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

	Backported from master:
	2025-09-08  Jonathan Wakely  <jwakely@redhat.com>

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

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

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

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

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

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

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

	Backported from master:
	2025-07-17  Jonathan Wakely  <jwakely@redhat.com>

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

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

	Backported from master:
	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-08-19  Tomasz Kamiński  <tkaminsk@redhat.com>

	Backported from master:
	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-19  Tomasz Kamiński  <tkaminsk@redhat.com>

	Backported from master:
	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-08-08  Jakub Jelinek  <jakub@redhat.com>

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

	* GCC 15.2.0 released.

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

	Backported from master:
	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-19  H.J. Lu  <hjl.tools@gmail.com>

	Backported from master:
	2025-07-09  H.J. Lu  <hjl.tools@gmail.com>

	* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
	Updated.

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

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

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

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

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

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

	Backported from master:
	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  Patrick Palka  <ppalka@redhat.com>

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

	Backported from master:
	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-01  Tomasz Kamiński  <tkaminsk@redhat.com>

	Backported from master:
	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-30  Tomasz Kamiński  <tkaminsk@redhat.com>

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

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

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

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

	Backported from master:
	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-06  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	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  Tomasz Kamiński  <tkaminsk@redhat.com>

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

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

	Backported from master:
	2025-05-29  Patrick Palka  <ppalka@redhat.com>

	* include/std/flat_map (_Flat_map_impl::operator==): Compare
	keys and values separately.

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

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

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

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

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

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

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

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

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

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

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

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

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

	Backported from master:
	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  Patrick Palka  <ppalka@redhat.com>

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

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

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

	Backported from master:
	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  Tomasz Kamiński  <tkaminsk@redhat.com>

	Backported from master:
	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-06  Dhruv Chawla  <dhruvc@nvidia.com>

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

	Backported from master:
	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-05-06  ZENG Hao  <c@cyano.cn>

	Backported from master:
	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-30  François Dumont  <frs.dumont@gmail.com>

	Backported from master:
	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-25  Tomasz Kamiński  <tkaminsk@redhat.com>

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

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

	* GCC 15.1.0 released.

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>

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

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

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

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

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

	* doc/html/manual/status.html: Regenerate.
	* doc/xml/manual/status_cxx1998.xml: Replace references to
	mainline GCC.
	* doc/xml/manual/status_cxx2011.xml: Likewise.
	* doc/xml/manual/status_cxx2014.xml: Likewise.
	* doc/xml/manual/status_cxx2017.xml: Likewise.
	* doc/xml/manual/status_cxx2020.xml: Likewise.
	* doc/xml/manual/status_cxx2023.xml: Likewise.
	* doc/xml/manual/status_cxxtr1.xml: Likewise.
	* doc/xml/manual/status_cxxtr24733.xml: Likewise.

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.
