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.
