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.
