aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/ChangeLog')
-rw-r--r--libstdc++-v3/ChangeLog599
1 files changed, 599 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c26a5b9..7458220 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,602 @@
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/ptr_traits.h (to_address): Use markdown for
+ formatting in Doxygen comments.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++11/Makefile.am: Add prerequisites for targets that
+ depend on string-inst.cc.
+ * src/c++11/Makefile.in: Regenerate.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/move.h (addressof): Use __builtin_addressof
+ directly.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
+ Remove dg-error directives for additional c++26 errors.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/latch (latch::_M_a): Rename to _M_counter.
+
+2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/109162
+ * include/bits/formatfwd.h (__simply_formattable_range): Moved from
+ std/format.
+ * include/std/format (__formatter_str::_format): Extracted escaped
+ string handling to separate method...
+ (__formatter_str::_M_format_escaped): Use __Padding_sink.
+ (__formatter_str::_M_format): Adjusted implementation.
+ (__formatter_str::_S_trunc): Extracted as namespace function...
+ (__format::_truncate): Extracted from __formatter_str::_S_trunc.
+ (__format::_Seq_sink): Removed forward declarations, made members
+ protected and non-final.
+ (_Seq_sink::_M_trim): Define.
+ (_Seq_sink::_M_span): Renamed from view.
+ (_Seq_sink::view): Returns string_view instead of span.
+ (__format::_Str_sink): Moved after _Seq_sink.
+ (__format::__format_padded): Use _Padding_sink.
+ * testsuite/std/format/debug.cc: Add timeout and new tests.
+ * testsuite/std/format/ranges/sequence.cc: Specify unicode as
+ encoding and new tests.
+ * testsuite/std/format/ranges/string.cc: Likewise.
+ * testsuite/std/format/tuple.cc: Likewise.
+
+2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ * testsuite/std/format/ranges/adaptors.cc: Updated test.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/22_locale/ctype/is/string/89728_neg.cc: Remove
+ dg-error for c++98_only effective target.
+
+2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/119918
+ * include/bits/formatfwd.h (__format::_Align): Moved from std/format.
+ (std::__throw_format_error, __format::__formatter_str)
+ (__format::__formatter_ptr): Declare.
+ * include/std/format (__format::_Align): Moved to bits/formatfwd.h.
+ (__formatter_int::__formatter_int): Define.
+ (__format::__formatter_ptr): Extracted from formatter for const void*.
+ (std::formatter<const void*, _CharT>, formatter<void*, _CharT>)
+ (std::formatter<nullptr_t, _CharT>): Delegate to __formatter_ptr<_CharT>.
+ * include/std/thread (std::formatter<thread::id, _CharT>): Constrain
+ _CharT template parameter.
+ (formatter<thread::id, _CharT>::parse): Specify default aligment, and
+ qualify __throw_format_error to disable ADL.
+ (formatter<thread::id, _CharT>::format): Use formatters to write directly
+ to output.
+ * testsuite/30_threads/thread/id/output.cc: Tests for formatting thread::id
+ representing not-a-thread with padding and formattable concept.
+
+2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/109162
+ * include/bits/version.def (format_ranges): Remove no_stdname and
+ update value.
+ * include/bits/version.h: Regenerate.
+ * src/c++23/std.cc.in: Replace __glibcxx_format_ranges with
+ __cpp_lib_format_ranges.
+ * testsuite/std/format/formatter/lwg3944.cc: Likewise.
+ * testsuite/std/format/parse_ctx.cc: Likewise.
+ * testsuite/std/format/string.cc: Likewise.
+ * testsuite/std/format/ranges/feature_test.cc: New test.
+
+2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/109162
+ * include/bits/formatfwd.h (__format::__parsable_with)
+ (__format::__formattable_with, __format::__formattable_impl)
+ (__format::__has_debug_format, __format::__const_formattable_range)
+ (__format::__maybe_const_range, __format::__maybe_const)
+ (std::formattable): Moved from std/format.
+ (__format::Iter_for, std::range_formatter): Forward declare.
+ * include/bits/stl_queue.h (std::formatter): Forward declare.
+ (std::queue, std::priority_queue): Befriend formatter specializations.
+ * include/bits/stl_stack.h (std::formatter): Forward declare.
+ (std::stack): Befriend formatter specializations.
+ * include/std/format (__format::_Iter_for): Define as struct with
+ (__format::__parsable_with, __format::__formattable_with)
+ (__format::__formattable_impl, __format::__has_debug_format)
+ (_format::__const_formattable_range, __format::__maybe_const_range)
+ (__format::__maybe_const, std::formattable): Moved to bits/formatfwd.h.
+ (std::range_formatter): Remove default argument specified in declaration
+ in bits/formatfwd.h.
+ * include/std/queue: Include bits/version.h before bits/stl_queue.h.
+ (formatter<queue<_Tp, _Container, _Compare>, _CharT>)
+ (formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>): Define.
+ * include/std/stack: Include bits/version.h before bits/stl_stack.h
+ (formatter<stack<_Tp, _Container, _Compare>, _CharT>): Define.
+ * testsuite/std/format/ranges/adaptors.cc: New test.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/future (__future_base::_Task_state): Check
+ invocable requirement here.
+ (__future_base::_Task_state::_S_create): New static member
+ function.
+ (__future_base::_Task_state::_M_reset): Use _S_create.
+ (__create_task_state): Remove.
+ (packaged_task): Use _Task_state::_S_create instead of
+ __create_task_state.
+ * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
+ Adjust dg-error patterns.
+ * testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc:
+ Likewise.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_tree.h (_Rb_tree::_M_key_compare): New member
+ function to invoke comparison function.
+ (_Rb_tree): Use new member function instead of accessing the
+ comparison function directly.
+
+2025-04-24 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/23_containers/forward_list/48101_neg.cc: Remove
+ dg-prune-output that doesn't match anything.
+ * testsuite/23_containers/list/48101_neg.cc: Likewise.
+ * testsuite/23_containers/multiset/48101_neg.cc: Likewise.
+ * testsuite/23_containers/set/48101_neg.cc: Likewise.
+
+2025-04-24 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/generator (generator::yield_value): Add overload
+ taking lvalue element_of view, as per LWG 3899.
+ * testsuite/24_iterators/range_generators/lwg3899.cc: New test.
+
+2025-04-24 François Dumont <frs.dumont@gmail.com>
+
+ * testsuite/util/replacement_memory_operators.h: Adapt for -fno-exceptions
+ context.
+ * testsuite/23_containers/deque/capacity/shrink_to_fit.cc: Adapt test
+ to check std::deque shrink_to_fit method.
+
+2025-04-23 Andreas Schwab <schwab@linux-m68k.org>
+
+ * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
+ * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
+ * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
+
+2025-04-23 ZENG Hao <c@cyano.cn>
+
+ * src/c++23/std.cc.in (atomic_signed_lock_free): Guard with
+ preprocessor check for __cpp_lib_atomic_lock_free_type_aliases.
+ (atomic_unsigned_lock_free): Likewise.
+
+2025-04-22 Patrick Palka <ppalka@redhat.com>
+
+ Revert:
+ 2024-08-22 Patrick Palka <ppalka@redhat.com>
+
+ * include/bits/iterator_concepts.h (__detail::__projected): Define
+ an optimized partial specialization for when the projection is
+ std::identity.
+ * testsuite/24_iterators/indirect_callable/projected.cc: Verify the
+ optimization.
+
+2025-04-22 Andreas Schwab <schwab@linux-m68k.org>
+
+ * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
+
+2025-04-22 Andreas Schwab <schwab@linux-m68k.org>
+
+ * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
+
+2025-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Regenerate.
+ * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
+
+2025-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
+ * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
+ Likewise.
+ * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
+ * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
+ Likewise.
+
+2025-04-22 Jakub Jelinek <jakub@redhat.com>
+
+ * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
+ * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
+ * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
+ * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
+ * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
+ * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
+
+2025-04-22 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ * testsuite/23_containers/flat_map/1.cc: Add dg-timeout-factor 2.
+ * testsuite/23_containers/flat_multimap/1.cc: Likewise.
+ * testsuite/std/format/ranges/map.cc: Likewise.
+ * testsuite/std/format/ranges/sequence.cc: Likewise.
+ * testsuite/std/format/ranges/string.cc: Likewise.
+
+2025-04-22 Andreas Schwab <schwab@linux-m68k.org>
+
+ * testsuite/util/testsuite_abi.cc (check_version): Update latestp
+ to use GLIBCXX_3.4.35 and CXXABI_1.3.17.
+
+2025-04-18 François Dumont <frs.dumont@gmail.com>
+
+ * testsuite/util/debug/unordered_checks.h (fill_container): New helper method.
+ (use_erased_local_iterator, invalid_local_iterator_pre_increment)
+ (invalid_local_iterator_post_increment, invalid_local_iterator_compare)
+ (invalid_local_iterator_range): Use latter.
+ (fill_and_get_local_iterator): New, use fill_container.
+ (use_invalid_local_iterator): Use latter.
+ (invalid_local_iterator_arrow_operator): New test function.
+ (invalid_local_iterator_copy_instantiation): New test function.
+ (invalid_local_iterator_move_instantiation): New test function.
+ (invalid_local_iterator_copy_assignment): New test function.
+ (invalid_local_iterator_move_assignment): New test function.
+ (invalid_local_iterator_const_conversion): New test function.
+ * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_arrow_operator_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_const_conversion_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_copy_assignment_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_copy_construction_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_move_assignment_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_move_construction_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc: Test unordered_map.
+ * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc: Test unordered_multimap.
+ * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_arrow_operator_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_const_conversion_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_copy_assignment_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_copy_construction_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_move_assignment_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_move_construction_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_multimap/debug/max_load_factor_neg.cc:
+ Test unordered_multimap.
+ * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_arrow_operator_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_const_conversion_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_copy_assignment_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_copy_construction_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_move_assignment_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_move_construction_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_arrow_operator_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_const_conversion_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_copy_assignment_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_copy_construction_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_move_assignment_neg.cc:
+ New test case.
+ * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_move_construction_neg.cc:
+ New test case.
+
+2025-04-18 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ * doc/xml/manual/appendix_contributing.xml: Add 'and functions'.
+
+2025-04-17 Jason Merrill <jason@redhat.com>
+
+ * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
+ diagnostic.
+
+2025-04-17 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/119840
+ * include/std/format (_M_parse_fill_and_align): Cast elements of
+ __not_fill to _CharT.
+
+2025-04-17 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/format (format_kind): Do not use 'not'
+ alternative token to make the primary template ill-formed. Use
+ the undeclared identifier __primary_template_not_defined and a
+ comment that will appear in diagnostics.
+ * testsuite/std/format/ranges/format_kind_neg.cc: New test.
+
+2025-04-17 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/109162
+ * include/std/format (__format::__simply_formattable_range): Define.
+ (range_formatter::format): Do not instantiate _M_format for mutable
+ _Rg if const _Rg can be used.
+
+2025-04-16 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/109162
+ * include/std/format (range_formatter::format): Format const range,
+ only if reference type is not changed.
+ * testsuite/std/format/ranges/formatter.cc: New tests.
+
+2025-04-16 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/109162
+ * include/std/format (__formatter_int::_M_format_character_escaped)
+ (__formatter_str::format): Use __sink.out() to produce _Sink_iter.
+ (__format::__const_formattable_range): Moved closer to range_formatter.
+ (__format::__maybe_const_range): Use `__conditional_t` and moved closer
+ to range_formatter.
+ (__format::__format_padded, __format::maybe_const)
+ (__format::__indexed_formatter_storage, __format::__tuple_formatter)
+ (std::formatter<pair<_Fp, _Sp>, _CharT>>)
+ (std::formatter<tuple<_Tps...>, _CharT): Define.
+ (std::formatter<_Rg, _CharT>::format): Cast incoming range to
+ __format::__maybe_const_range<_Rg, _CharT>&.
+ (std::formatter<_Rg, _CharT>::_M_format): Extracted from format,
+ and use __format_padded.
+ (std::formatter<_Rg, _CharT>::_M_format_no_padding): Rename...
+ (std::formatter<_Rg, _CharT>::_M_format_elems): ...to this.
+ (std::formatter<_Rg, _CharT>::_M_format_with_padding): Extracted as
+ __format_padded.
+ * testsuite/util/testsuite_iterators.h (test_input_range_nocopy):
+ Define.
+ * testsuite/std/format/ranges/formatter.cc: Tests for `m` specifier.
+ * testsuite/std/format/ranges/sequence.cc: Tests for array and subrange.
+ * testsuite/std/format/ranges/map.cc: New test.
+ * testsuite/std/format/tuple.cc: New test.
+
+2025-04-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/ranges (__glibcxx_want_ranges_iota): Do not
+ define.
+
+2025-04-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/numeric (ranges): Only declare namespace for C++23
+ and later.
+ (ranges::iota_result): Fix indentation.
+ * testsuite/17_intro/names.cc: Check ranges is not used as an
+ identifier before C++20.
+
+2025-04-15 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/109162
+ * include/std/format (__format::__has_debug_format, _Pres_type::_Pres_seq)
+ (_Pres_type::_Pres_str, __format::__Stackbuf_size): Define.
+ (_Separators::_S_squares, _Separators::_S_parens, _Separators::_S_comma)
+ (_Separators::_S_colon): Define additional constants.
+ (_Spec::_M_parse_fill_and_align): Define overload accepting
+ list of excluded characters for fill, and forward existing overload.
+ (__formatter_str::_M_format_range): Define.
+ (__format::_Buf_sink) Use __Stackbuf_size for size of array.
+ (__format::__is_map_formattable, std::range_formatter)
+ (std::formatter<_Rg, _CharT>): Define.
+ * src/c++23/std.cc.in (std::format_kind, std::range_format)
+ (std::range_formatter): Export.
+ * testsuite/std/format/formatter/lwg3944.cc: Guarded tests with
+ __glibcxx_format_ranges.
+ * testsuite/std/format/formatter/requirements.cc: Adjusted for standard
+ behavior.
+ * testsuite/23_containers/vector/bool/format.cc: Test vector<bool> formatting.
+ * testsuite/std/format/ranges/format_kind.cc: New test.
+ * testsuite/std/format/ranges/formatter.cc: New test.
+ * testsuite/std/format/ranges/sequence.cc: New test.
+ * testsuite/std/format/ranges/string.cc: New test.
+
+2025-04-15 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/119748
+ * include/bits/basic_string.h (_S_copy_chars): Only optimize for
+ contiguous iterators that are convertible to const charT*. Use
+ explicit conversion to charT after dereferencing iterator.
+ (_S_copy_range): Likewise for contiguous ranges.
+ * include/bits/basic_string.tcc (_M_construct): Use explicit
+ conversion to charT after dereferencing iterator.
+ * include/bits/cow_string.h (_S_copy_chars): Likewise.
+ (basic_string(from_range_t, R&&, const Allocator&)): Likewise.
+ Only optimize for contiguous iterators that are convertible to
+ const charT*.
+ * testsuite/21_strings/basic_string/cons/char/119748.cc: New
+ test.
+ * testsuite/21_strings/basic_string/cons/wchar_t/119748.cc:
+ New test.
+
+2025-04-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/util/testsuite_iterators.h (test_container): Define
+ array constructor for C++98 as well.
+
+2025-04-14 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/21334
+ * doc/xml/manual/using.xml: Document that container data race
+ avoidance rules do not apply to COW std::string.
+ * doc/html/*: Regenerate.
+
+2025-04-14 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/119725
+ * testsuite/std/format/debug.cc: Updated dg-options.
+ * testsuite/std/format/debug_nonunicode.cc: Updated dg-options.
+
+2025-04-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++17/fast_float/LOCAL_PATCHES: Update.
+
+2025-04-11 Evgeny Karpov <Evgeny.Karpov@microsoft.com>
+
+ * src/c++17/fast_float/fast_float.h (full_multiplication):
+ Support aarch64-w64-mingw32 target.
+
+2025-04-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/basic_string.h (_S_copy_chars): Replace overloads
+ with constexpr-if and extend optimization to all contiguous
+ iterators.
+ * src/c++11/string-inst.cc: Extend comment.
+
+2025-04-11 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/111055
+ * include/bits/version.def (containers_ranges): Define.
+ * include/bits/version.h: Regenerate.
+ * include/bits/ranges_base.h (__detail::__container_compatible_range)
+ (__detail::__range_to_alloc_type, __detail::__range_mapped_type)
+ (__detail::__range_key_type): Depend on __glibcxx_containers_ranges
+ instead of __glibcxx_ranges_to_container.
+ * include/bits/basic_string.h: Replace __glibcxx_ranges_to_container with
+ __glibcxx_containers_ranges.
+ * include/bits/cow_string.h: Likewise.
+ * include/bits/deque.tcc: Likewise.
+ * include/bits/forward_list.h: Likewise.
+ * include/bits/stl_bvector.h: Likewise.
+ * include/bits/stl_deque.h: Likewise.
+ * include/bits/stl_list.h: Likewise.
+ * include/bits/stl_map.h: Likewise.
+ * include/bits/stl_multimap.h: Likewise.
+ * include/bits/stl_multiset.h: Likewise.
+ * include/bits/stl_queue.h: Likewise.
+ * include/bits/stl_set.h: Likewise.
+ * include/bits/stl_stack.h: Likewise.
+ * include/bits/stl_vector.h: Likewise.
+ * include/bits/unordered_map.h: Likewise.
+ * include/bits/unordered_set.h: Likewise.
+ * include/bits/vector.tcc: Likewise.
+ * include/debug/deque: Likewise.
+ * include/debug/forward_list: Likewise.
+ * include/debug/list: Likewise.
+ * include/debug/map.h: Likewise.
+ * include/debug/multimap.h: Likewise.
+ * include/debug/multiset.h: Likewise.
+ * include/debug/set.h: Likewise.
+ * include/debug/unordered_map: Likewise.
+ * include/debug/unordered_set: Likewise.
+ * include/debug/vector: Likewise.
+ * include/std/deque: Provide __cpp_lib_containers_ranges.
+ * include/std/forward_list: Likewise.
+ * include/std/list: Likewise.
+ * include/std/map: Likewise.
+ * include/std/queue: Likewise.
+ * include/std/set: Likewise.
+ * include/std/stack: Likewise.
+ * include/std/string: Likewise.
+ * include/std/unordered_map: Likewise.
+ * include/std/unordered_set: Likewise.
+ * include/std/vector: Likewise.
+ * testsuite/21_strings/basic_string/cons/from_range.cc: Test for value
+ __cpp_lib_containers_ranges.
+ * testsuite/23_containers/deque/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/forward_list/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/list/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/map/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/multimap/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/multiset/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/priority_queue/cons_from_range.cc: Likewise.
+ * testsuite/23_containers/queue/cons_from_range.cc: Likewise.
+ * testsuite/23_containers/set/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/stack/cons_from_range.cc: Likewise.
+ * testsuite/23_containers/unordered_map/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/unordered_multiset/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/unordered_set/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/vector/cons/from_range.cc: Likewise.
+
+2025-04-11 Jonathan Wakely <jwakely@redhat.com>
+ Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/111055
+ * include/bits/basic_string.h (_S_copy_range): New function.
+ (basic_string(from_range_t, R%%, const Alloc&)): New
+ constructor.
+ (append_range, assign_range, insert_range, replace_with_range):
+ New functions.
+ * include/bits/cow_string.h: Likewise.
+ * testsuite/21_strings/basic_string/cons/from_range.cc: New
+ test.
+ * testsuite/21_strings/basic_string/modifiers/append/append_range.cc:
+ New test.
+ * testsuite/21_strings/basic_string/modifiers/assign/assign_range.cc:
+ New test.
+ * testsuite/21_strings/basic_string/modifiers/insert/insert_range.cc:
+ New test.
+ * testsuite/21_strings/basic_string/modifiers/replace/replace_with_range.cc:
+ New test.
+
+2025-04-11 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/109162
+ * include/bits/chrono_io.h (__detail::_Widen): Moved to std/format file.
+ * include/bits/unicode-data.h: Regnerate.
+ * include/bits/unicode.h (__unicode::_Utf_iterator::_M_units)
+ (__unicode::__should_escape_category): Define.
+ * include/std/format (_GLIBCXX_WIDEN_, _GLIBCXX_WIDEN): Copied from
+ include/bits/chrono_io.h.
+ (__format::_Widen): Moved from include/bits/chrono_io.h.
+ (__format::_Term_char, __format::_Escapes, __format::_Separators)
+ (__format::__should_escape_ascii, __format::__should_escape_unicode)
+ (__format::__write_escape_seq, __format::__write_escaped_char)
+ (__format::__write_escaped_acii, __format::__write_escaped_unicode)
+ (__format::__write_escaped): Define.
+ (__formatter_str::_S_trunc): Extracted truncation of character
+ sequences.
+ (__formatter_str::format): Handle _Pres_esc.
+ (__formatter_int::_M_do_parse) [__glibcxx_format_ranges]: Parse '?'.
+ (__formatter_int::_M_format_character_escaped): Define.
+ (formatter<_CharT, _CharT>::format, formatter<char, wchar_t>::format):
+ Handle _Pres_esc.
+ (__formatter_str::set_debug_format, formatter<...>::set_debug_format)
+ Guard with __glibcxx_format_ranges.
+ (__format::_Fixedbuf_sink): Define.
+ * testsuite/23_containers/vector/bool/format.cc: Use __format::_Widen
+ and remove unnecessary <chrono> include.
+ * testsuite/std/format/debug.cc: New test.
+ * testsuite/std/format/debug_nonunicode.cc: New test.
+ * testsuite/std/format/parse_ctx.cc (escaped_strings_supported): Define
+ to true if __glibcxx_format_ranges is defined.
+ * testsuite/std/format/string.cc (escaped_strings_supported): Define to
+ true if __glibcxx_format_ranges is defined.
+
+2025-04-10 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/version.def (constrained_equality): Only define
+ as 202411 for C++23 and later, use 202403 for C++20.
+ * include/bits/version.h: Regenerate.
+ * testsuite/20_util/expected/equality_constrained.cc: Remove
+ TODO comment.
+
+2025-04-10 John David Anglin <danglin@gcc.gnu.org>
+
+ * config/os/hpux/os_defines.h: Remove _GLIBCXX_USE_LONG_LONG
+ define.
+
+2025-04-09 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/115046
+ PR libstdc++/112490
+ * include/bits/stl_iterator.h (basic_const_iterator::operator-):
+ Replace non-dependent basic_const_iterator function parameter with
+ a dependent one of type basic_const_iterator<_It2> where _It2
+ matches _It.
+ * testsuite/std/ranges/adaptors/as_const/1.cc (test04): New test.
+
2025-04-08 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/119671