aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/ChangeLog')
-rw-r--r--libstdc++-v3/ChangeLog908
1 files changed, 908 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index abe6fed..7f697f2 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,911 @@
+2025-07-30 François Dumont <frs.dumont@gmail.com>
+
+ * testsuite/std/time/format/data_not_present_neg.cc: Remove _GLIBCXX_USE_DUAL_ABI
+ check.
+
+2025-07-29 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ * testsuite/std/format/ranges/format_kind.cc: New test.
+
+2025-07-28 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/102181
+ * include/bits/stl_iterator_base_funcs.h (distance, advance):
+ Check C++20 iterator concepts and handle appropriately.
+ (__detail::__iter_category_converts_to_concept): New concept.
+ (__detail::__promotable_iterator): New concept.
+ * testsuite/24_iterators/operations/cxx20_iterators.cc: New
+ test.
+
+2025-07-28 Nathan Myers <ncm@cantrip.org>
+
+ PR libstdc++/119742
+ * include/debug/bitset: Add new ctor.
+
+2025-07-28 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ * include/std/mdspan: Small stylistic adjustments.
+
+2025-07-28 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ * testsuite/23_containers/mdspan/accessors/generic.cc: Refactor
+ test_ctor.
+
+2025-07-28 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/121196
+ * include/std/inplace_vector (std::erase): Provide default argument
+ for _Up parameter.
+ * testsuite/23_containers/inplace_vector/erasure.cc: Add test for
+ using braces-init-list as arguments to erase_if and use function
+ to verify content of inplace_vector
+
+2025-07-25 Tuur Martens <tuurmartens4@gmail.com>
+
+ * include/bits/unordered_map.h: Rectify referencing of
+ non-existent type.
+
+2025-07-24 Nathaniel Shead <nathanieloshead@gmail.com>
+
+ PR c++/117294
+ PR c++/113854
+ * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust
+ diagnostics.
+ * testsuite/20_util/expected/illformed_neg.cc: Likewise.
+ * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise.
+ * testsuite/23_containers/array/creation/3_neg.cc: Likewise.
+ * testsuite/24_iterators/range_generators/lwg3900.cc: Likewise.
+ * testsuite/29_atomics/atomic/requirements/types_neg.cc:
+ Likewise.
+ * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc:
+ Likewise.
+ * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
+ Likewise.
+ * testsuite/std/format/arguments/args_neg.cc: Likewise.
+ * testsuite/std/format/string_neg.cc: Likewise.
+
+2025-07-24 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/104874
+ * testsuite/24_iterators/random_access/string_vector_iterators.cc:
+ Reworked.
+
+2025-07-24 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ * testsuite/21_strings/basic_string/cons/from_range.cc: Replace
+ test_constexpr with test_ranges inside static_assert.
+ * testsuite/21_strings/basic_string/modifiers/append/append_range.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/modifiers/assign/assign_range.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/modifiers/insert/insert_range.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/modifiers/replace/replace_with_range.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/vector/bool/modifiers/assign/assign_range.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/modifiers/insert/insert_range.cc:
+ Likewise.
+ * testsuite/23_containers/vector/cons/from_range.cc: Likewise.
+ * testsuite/23_containers/vector/modifiers/assign/assign_range.cc:
+ Likewise.
+ * testsuite/23_containers/vector/modifiers/insert/insert_range.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/modifiers/insert/append_range.cc:
+ Run full test_ranges instead of span-only in test_constexpr.
+ * testsuite/23_containers/vector/modifiers/append_range.cc:
+ Replace test_constexpr with calls to test_ranges and test_overlapping.
+ * testsuite/util/testsuite_allocator.h (__gnu_test::SimpleAllocator):
+ Declared member functions as constexpr.
+
+2025-07-23 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ * testsuite/23_containers/mdspan/accessors/default.cc: Delete.
+ * testsuite/23_containers/mdspan/accessors/generic.cc: Slightly
+ generalize the test code previously in default.cc.
+
+2025-07-23 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ * testsuite/23_containers/mdspan/extents/ctor_ints.cc: Remove
+ superfluous parens.
+ * testsuite/23_containers/mdspan/extents/ctor_shape.cc: Ditto.
+ * testsuite/23_containers/mdspan/mdspan.cc: Ditto.
+
+2025-07-23 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/119137
+ * testsuite/23_containers/inplace_vector/access/elem.cc: Cover
+ front and back methods and const calls.
+ * testsuite/23_containers/inplace_vector/access/elem_neg.cc:
+ Likewise.
+ * testsuite/23_containers/inplace_vector/modifiers/erase_neg.cc:
+ New test.
+ * testsuite/23_containers/inplace_vector/modifiers/single_insert_neg.cc:
+ New test.
+
+2025-07-22 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/119137
+ * testsuite/23_containers/inplace_vector/cons/from_range.cc: Run
+ iterators and range test at compile-time.
+ * testsuite/23_containers/inplace_vector/modifiers/assign.cc:
+ Likewise.
+ * testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc:
+ Likewise.
+ * testsuite/util/testsuite_iterators.h (__gnu_test::BoundsContainer)
+ (__gnu_test::OutputContainer, __gnu_test::WritableObject)
+ (__gnu_test::output_iterator_wrapper, __gnu_test::input_iterator_wrapper)
+ (__gnu_test::forward_iterator_wrapper)
+ (__gnu_test::bidirectional_iterator_wrapper)
+ (__gnu_test::random_access_iterator_wrapper)
+ (__gnu_test::test_container): Add appropriate _GLIBCXXNN_CONSTEXPR
+ macros to member functions.
+ (__gnu_test::contiguous_iterator_wrapper)
+ (__gnu_test::input_iterator_wrapper_rval)
+ (__gnu_test::test_range, __gnu_test::test_range_nocopy)
+ (__gnu_test::test_sized_range_sized_sent)
+ (__gnu_test::test_sized_range): Add constexpr specifier to member
+ functions.
+
+2025-07-22 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/119137
+ * include/std/inplace_vector (inplace_vector::assign_range):
+ Replace _Nm with _M_size in the assigment loop.
+
+2025-07-21 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ * include/std/mdspan (mdspan::mdspan): Make default ctor
+ conditionally noexcept.
+ * testsuite/23_containers/mdspan/mdspan.cc: Add tests.
+
+2025-07-21 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ * include/std/mdspan (mdspan::is_always_unique): Make
+ conditionally noexcept.
+ (mdspan::is_always_exhaustive): Ditto.
+ (mdspan::is_always_strided): Ditto.
+ (mdspan::is_unique): Ditto.
+ (mdspan::is_exhaustive): Ditto.
+ (mdspan::is_strided): Ditto.
+ * testsuite/23_containers/mdspan/layout_like.h: Make noexcept
+ configurable. Add ThrowingLayout.
+ * testsuite/23_containers/mdspan/mdspan.cc: Add tests for
+ noexcept.
+
+2025-07-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR libstdc++/121174
+ * src/c++23/std.cc.in (std::dextents): Export. Add to FIXME comments
+ other not yet implemented nor exported <mdspan> entities.
+
+2025-07-18 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_iterator_base_types.h (__any_input_iterator):
+ Only define when __cpp_lib_concepts is defined.
+
+2025-07-18 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/manual/appendix_contributing.xml: Remove Paolo from
+ list of maintainers to contact about contributing.
+ * doc/html/manual/appendix_contributing.html: Regenerate.
+
+2025-07-18 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/manual/build_hacking.xml: Document that
+ windows_zones-map.h is a generated file.
+ * doc/html/manual/appendix_porting.html: Regenerate.
+
+2025-07-18 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/119137
+ * include/std/inplace_vector (inplace_vector::operator=):
+ Qualify call to std::addressof.
+
+2025-07-18 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/121154
+ * include/bits/chrono_io.h (_ChronoSpec::_M_time_point): Remove.
+ (_ChronoSpec::_M_needs_ok_check): Define
+ (__formatter_chrono::_M_parse): Set _M_needs_ok_check.
+ (__formatter_chrono::_M_check_ok): Check values also for debug mode,
+ and return __string_view.
+ (__formatter_chrono::_M_format_to): Handle results of _M_check_ok.
+ (__formatter_chrono::_M_wi, __formatter_chrono::_M_a_A)
+ (__formatter_chrono::_M_b_B, __formatter_chrono::_M_C_y_Y)
+ (__formatter_chrono::_M_d_e, __formatter_chrono::_M_F):
+ Removed handling of _M_debug.
+ (__formatter_chrono::__M_m): Print zero unpadded in _M_debug mode.
+ (__formatter_duration::_S_spec_for): Remove _M_time_point refernce.
+ (__formatter_duration::_M_parse): Override _M_needs_ok_check.
+ * testsuite/std/time/month/io.cc: Test for localized !ok() values.
+ * testsuite/std/time/weekday/io.cc: Test for localized !ok() values.
+
+2025-07-18 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/121150
+ * testsuite/20_util/hash/int128.cc: Cast expected values to
+ size_t.
+
+2025-07-18 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/unicode.h (_Utf_iterator::operator--): Reorder
+ conditions and update position after reading a code unit.
+ (_Utf_iterator::_M_read_reverse): Define.
+ (_Utf_iterator::_M_read_utf8): Return extracted code point.
+ (_Utf_iterator::_M_read_reverse_utf8): Define.
+ (_Utf_iterator::_M_read_reverse_utf16): Define.
+ (_Utf_iterator::_M_read_reverse_utf32): Define.
+ * testsuite/ext/unicode/view.cc: Add checks for reversed views
+ and reverse iteration.
+
+2025-07-18 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/unicode.h (_Utf_iterator): Reorder data members
+ to be more compact.
+
+2025-07-18 Jonathan Wakely <jwakely@redhat.com>
+ Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/119137
+ * doc/doxygen/user.cfg.in (INPUT): Add new header.
+ * include/Makefile.am: Add new header.
+ * include/Makefile.in: Regenerate.
+ * include/bits/stl_iterator_base_types.h (__any_input_iterator):
+ Define.
+ * include/bits/version.def (inplace_vector): Define.
+ * include/bits/version.h: Regenerate.
+ * include/precompiled/stdc++.h: Include new header.
+ * src/c++23/std.cc.in: Export contents if new header.
+ * include/std/inplace_vector: New file.
+ * testsuite/23_containers/inplace_vector/access/capacity.cc: New file.
+ * testsuite/23_containers/inplace_vector/access/elem.cc: New file.
+ * testsuite/23_containers/inplace_vector/access/elem_neg.cc: New file.
+ * testsuite/23_containers/inplace_vector/cons/1.cc: New file.
+ * testsuite/23_containers/inplace_vector/cons/from_range.cc: New file.
+ * testsuite/23_containers/inplace_vector/cons/throws.cc: New file.
+ * testsuite/23_containers/inplace_vector/copy.cc: New file.
+ * testsuite/23_containers/inplace_vector/erasure.cc: New file.
+ * testsuite/23_containers/inplace_vector/modifiers/assign.cc: New file.
+ * testsuite/23_containers/inplace_vector/modifiers/erase.cc: New file.
+ * testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc:
+ New file.
+ * testsuite/23_containers/inplace_vector/modifiers/single_insert.cc:
+ New file.
+ * testsuite/23_containers/inplace_vector/move.cc: New file.
+ * testsuite/23_containers/inplace_vector/relops.cc: New file.
+ * testsuite/23_containers/inplace_vector/version.cc: New file.
+ * testsuite/util/testsuite_iterators.h (input_iterator_wrapper::base):
+ Define.
+
+2025-07-17 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96710
+ * doc/xml/manual/evolution.xml: Document change or __int128.
+ * doc/html/manual/api.html: Regenerate.
+
+2025-07-17 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ PR libstdc++/121061
+ * include/std/mdspan (extents::extents): Perform conversion to
+ index_type of an r-value reference.
+ (layout_left::mapping::operator()): Ditto.
+ (layout_right::mapping::operator()): Ditto.
+ (layout_stride::mapping::operator()): Ditto.
+ * testsuite/23_containers/mdspan/extents/custom_integer.cc: Add
+ tests for RValueInt and MutatingInt.
+ * testsuite/23_containers/mdspan/int_like.h (RValueInt): Add.
+ * testsuite/23_containers/mdspan/layouts/mapping.cc: Test with
+ RValueInt.
+ * testsuite/23_containers/mdspan/mdspan.cc: Ditto.
+
+2025-07-17 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ PR libstdc++/121061
+ * include/std/mdspan (extents::extents): Fix constraint to
+ prevent non-const conversion to index_type.
+ (layout_stride::mapping::mapping): Ditto.
+ (mdspan::mdspan): Ditto.
+ (mdspan::operator[]): Ditto.
+ * testsuite/23_containers/mdspan/extents/custom_integer.cc: Add
+ test for MutatingInt.
+ * testsuite/23_containers/mdspan/int_like.h (MutatingInt): Add.
+ * testsuite/23_containers/mdspan/layouts/mapping.cc: Add test for
+ MutatingInt.
+ * testsuite/23_containers/mdspan/layouts/stride.cc: Ditto.
+ * testsuite/23_containers/mdspan/mdspan.cc: Ditto.
+
+2025-07-17 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ PR libstdc++/121061
+ * testsuite/23_containers/mdspan/extents/custom_integer.cc:
+ Enable checking with different custom integers. Improve
+ checking non-existence of overloads for incompatible custom
+ integers.
+ * testsuite/23_containers/mdspan/layouts/mapping.cc: ditto. Also
+ improve reuse of int_like.h.
+ * testsuite/23_containers/mdspan/layouts/stride.cc: ditto.
+ * testsuite/23_containers/mdspan/mdspan.cc: ditto.
+ * testsuite/23_containers/mdspan/extents/int_like.h: Rename (old
+ name).
+ * testsuite/23_containers/mdspan/int_like.h: Rename (new name).
+ (ThrowingInt): Add.
+ (NotIntLike): Add.
+
+2025-07-17 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/unicode.h (__unicode::_Utf_iterator): Add
+ comments.
+ (__unicode:_Utf_iterator::operator++()): Check whether to
+ iterate over the buffer first.
+
+2025-07-17 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/121097
+ * include/c_global/cmath (hypot): Use __promote_3 instead of
+ __promoted.
+
+2025-07-16 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/bitset (__bitset::__string) [__cpp_lib_bitset]:
+ Change alias to refer to basic_string_view instead.
+
+2025-07-16 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/121114
+ * include/bits/version.def (constexpr_exceptions): Add no_stdname
+ and changed value.
+ * include/bits/version.h: Regenerated.
+ * testsuite/18_support/exception/version.cc: Test that macro is
+ not exported.
+
+2025-07-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/move.h (swap): Replace enable_if with concepts
+ when available, and with __enable_if_t alias otherwise.
+
+2025-07-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/ranges_base.h (ranges::advance(i, n, bound)):
+ Ensure that observable side effects on iterators match what is
+ specified in the standard.
+
+2025-07-15 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/119962
+ * include/std/ranges (join_view::_Iterator::_M_outer): Initialize.
+ (lazy_split_view::_OuterIter::_M_current): Initialize.
+ (join_with_view::_Iterator::_M_outer_it): Initialize.
+ * testsuite/std/ranges/adaptors/join.cc (test15): New test.
+ * testsuite/std/ranges/adaptors/join_with/1.cc (test05): New test.
+ * testsuite/std/ranges/adaptors/lazy_split.cc (test13): New test.
+
+2025-07-15 Björn Schäpers <bjoern@hazardy.de>
+
+ PR libstdc++/108409
+ * scripts/gen_windows_zones_map.py: New file, generates
+ windows_zones-map.h.
+ * src/c++20/windows_zones-map.h: New file, contains the look up
+ table.
+ * src/c++20/tzdb.cc (tzdb::current_zone): Add Windows code path.
+
+2025-07-15 Björn Schäpers <bjoern@hazardy.de>
+
+ * src/c++20/tzdb.cc (zoneinfo_file): On Windows look relative
+ from the DLL path for the time zone information.
+
+2025-07-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/25_algorithms/copy/debug/constexpr_neg.cc:
+ * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
+ * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
+ * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
+ * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
+ * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
+ * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
+ * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
+ * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
+
+2025-07-15 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/121024
+ * include/bits/ranges_uninitialized.h (ranges::destroy): Do not
+ optimize away trivial destructors during constant evaluation.
+ (ranges::destroy_n): Likewise.
+ * testsuite/20_util/specialized_algorithms/destroy/121024.cc:
+ New test.
+
+2025-07-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/experimental/memory (swap, make_observer_ptr): Add
+ constexpr.
+ (operator==, operator!=, operator<, operator>, operator<=)
+ (operator>=): Likewise.
+ * testsuite/experimental/memory/observer_ptr/make_observer.cc:
+ Checks for constant evaluation.
+ * testsuite/experimental/memory/observer_ptr/relops/relops.cc:
+ Likewise.
+ * testsuite/experimental/memory/observer_ptr/swap/swap.cc:
+ Likewise.
+
+2025-07-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/type_traits (__make_unsigned_selector): Add
+ unsigned __int128 to type list.
+ * testsuite/20_util/make_unsigned/int128.cc: New test.
+
+2025-07-15 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96710
+ * include/bits/functional_hash.h (hash<__int128>): Define for
+ strict modes.
+ (hash<unsigned __int128>): Likewise.
+ * testsuite/20_util/hash/int128.cc: New test.
+
+2025-07-15 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/110739
+ * include/bits/chrono_io.h (__formatter_chrono::_S_weekdays)
+ (__formatter_chrono::_S_months, __formatter_chrono::_S_fill_ampm):
+ Define.
+ (__formatter_chrono::_M_format_to): Do not pass context parameter
+ to functions listed below.
+ (__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B): Implement
+ using harcoded list of names, and remove format context parameter.
+ (__formatter_chrono::_M_p, __formatter_chrono::_M_r): Implement
+ using _S_fill_ampm.
+ (__formatter_chrono::_M_c): Removed format context parameter.
+ (__formatter_chrono::_M_subsecs): Call __ctx.locale() directly,
+ instead of _M_locale and do not compare with locale::classic().
+ Add [[unlikely]] attributes.
+ (__formatter_chrono::_M_locale): Move to __formatter_duration.
+ (__formatter_duration::_M_locale): Moved from __formatter_chrono.
+
+2025-07-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_pair.h (swap): Add comment to deleted
+ overload.
+ * include/bits/unique_ptr.h (swap): Likewise.
+ * include/std/array (swap): Likewise.
+ * include/std/optional (swap): Likewise.
+ * include/std/tuple (swap): Likewise.
+ * include/std/variant (swap): Likewise.
+ * testsuite/23_containers/array/tuple_interface/get_neg.cc:
+ Adjust dg-error line numbers.
+
+2025-07-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/pstl/algorithm_impl.h (__for_each_n_it_serial):
+ Protect against overloaded comma operator.
+ (__brick_walk2): Likewise.
+ (__brick_walk2_n): Likewise.
+ (__brick_walk3): Likewise.
+ (__brick_move_destroy::operator()): Likewise.
+ (__brick_calc_mask_1): Likewise.
+ (__brick_copy_by_mask): Likewise.
+ (__brick_partition_by_mask): Likewise.
+ (__brick_calc_mask_2): Likewise.
+ (__brick_reverse): Likewise.
+ (__pattern_partial_sort_copy): Likewise.
+ * include/pstl/memory_impl.h (__brick_uninitialized_move):
+ Likewise.
+ (__brick_uninitialized_copy): Likewise.
+ * include/pstl/numeric_impl.h (__brick_transform_scan):
+ Likewise.
+
+2025-07-14 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/117785
+ * include/bits/version.def (constexpr_exceptions): Define
+ correct value.
+ * include/bits/version.h: Regenerate.
+ * libsupc++/exception: Check correct value.
+ * testsuite/18_support/exception/version.cc: New test.
+
+2025-07-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * libsupc++/exception_ptr.h (make_exception_ptr): Return null
+ for consteval when -fno-exceptions is used.
+ (exception_ptr_cast): Likewise. Allow consteval path to work
+ with -fno-rtti.
+
+2025-07-11 Jakub Jelinek <jakub@redhat.com>
+
+ * libsupc++/exception_ptr.h: Implement C++26 P3748R0 - Inspecting
+ exception_ptr should be constexpr.
+ (std::exception_ptr_cast): Make constexpr, remove inline keyword. Add
+ static_asserts for Mandates. For if consteval use std::rethrow_exception,
+ catch it and return its address or nullptr.
+ * testsuite/18_support/exception_ptr/exception_ptr_cast.cc (E::~E): Add
+ constexpr.
+ (G::G): Likewise.
+ (test01): Likewise. Return bool and take bool argument, throw if the
+ argument is true. Add static_assert(test01(false)).
+ (main): Call test01(true) in try.
+
+2025-07-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/cpp_type_traits.h (__is_floating<__float128>):
+ Do not depend on __STRICT_ANSI__.
+ * include/bits/stl_algobase.h (__size_to_integer(__float128)):
+ Likewise.
+ * include/std/type_traits (__is_floating_point_helper<__float128>):
+ Likewise.
+
+2025-07-11 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/96710
+ * include/bits/cpp_type_traits.h (__is_integer): Define explicit
+ specializations for __int128.
+ (__memcpyable_integer): Remove explicit specializations for
+ __int128.
+ * include/bits/iterator_concepts.h (incrementable_traits):
+ Likewise.
+ (__is_signed_int128, __is_unsigned_int128, __is_int128): Remove.
+ (__is_integer_like, __is_signed_integer_like): Remove check for
+ __int128.
+ * include/bits/max_size_type.h: Remove all uses of __is_int128
+ in constraints.
+ * include/bits/ranges_base.h (__to_unsigned_like): Remove
+ overloads for __int128.
+ (ranges::ssize): Remove special case for __int128.
+ * include/bits/stl_algobase.h (__size_to_integer): Define
+ __int128 overloads for strict modes.
+ * include/ext/numeric_traits.h (__is_integer_nonstrict): Remove
+ explicit specializations for __int128.
+ * include/std/charconv (to_chars): Define overloads for
+ __int128.
+ * include/std/format (__format::make_unsigned_t): Remove.
+ (__format::to_chars): Remove.
+ * include/std/limits (numeric_limits): Define explicit
+ specializations for __int128.
+ * include/std/type_traits (__is_integral_helper): Likewise.
+ (__make_unsigned, __make_signed): Likewise.
+
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/117785
+ * include/bits/version.def (constexpr_exceptions): New.
+ * include/bits/version.h: Regenerate.
+ * libsupc++/exception (std::bad_exception::bad_exception): Add
+ _GLIBCXX26_CONSTEXPR.
+ (std::bad_exception::~bad_exception, std::bad_exception::what): For
+ C++26 add constexpr and define inline.
+ * libsupc++/exception.h (std::exception::exception,
+ std::exception::operator=): Add _GLIBCXX26_CONSTEXPR.
+ (std::exception::~exception, std::exception::what): For C++26 add
+ constexpr and define inline.
+ * libsupc++/exception_ptr.h (std::make_exception_ptr): Add
+ _GLIBCXX26_CONSTEXPR. For if consteval use just throw with
+ current_exception() in catch.
+ (std::exception_ptr::exception_ptr(void*)): For C++26 add constexpr
+ and define inline.
+ (std::exception_ptr::exception_ptr()): Add _GLIBCXX26_CONSTEXPR.
+ (std::exception_ptr::exception_ptr(const exception_ptr&)): Likewise.
+ Use __builtin_eh_ptr_adjust_ref if consteval and compiler has it
+ instead of _M_addref.
+ (std::exception_ptr::exception_ptr(nullptr_t)): Add
+ _GLIBCXX26_CONSTEXPR.
+ (std::exception_ptr::exception_ptr(exception_ptr&&)): Likewise.
+ (std::exception_ptr::operator=): Likewise.
+ (std::exception_ptr::~exception_ptr): Likewise. Use
+ __builtin_eh_ptr_adjust_ref if consteval and compiler has it
+ instead of _M_release.
+ (std::exception_ptr::swap): Add _GLIBCXX26_CONSTEXPR.
+ (std::exception_ptr::operator bool): Likewise.
+ (std::exception_ptr::operator==): Likewise.
+ * libsupc++/nested_exception.h
+ (std::nested_exception::nested_exception): Add _GLIBCXX26_CONSTEXPR.
+ (std::nested_exception::operator=): Likewise.
+ (std::nested_exception::~nested_exception): For C++26 add constexpr
+ and define inline.
+ (std::nested_exception::rethrow_if_nested): Add _GLIBCXX26_CONSTEXPR.
+ (std::nested_exception::nested_ptr): Likewise.
+ (std::_Nested_exception::_Nested_exception): Likewise.
+ (std::throw_with_nested, std::rethrow_if_nested): Likewise.
+ * libsupc++/new (std::bad_alloc::bad_alloc): Likewise.
+ (std::bad_alloc::operator=): Likewise.
+ (std::bad_alloc::~bad_alloc): For C++26 add constexpr and define
+ inline.
+ (std::bad_alloc::what): Likewise.
+ (std::bad_array_new_length::bad_array_new_length): Add
+ _GLIBCXX26_CONSTEXPR.
+ (std::bad_array_new_length::~bad_array_new_length): For C++26 add
+ constexpr and define inline.
+ (std::bad_array_new_length::what): Likewise.
+ * libsupc++/typeinfo (std::bad_cast::bad_cast): Add
+ _GLIBCXX26_CONSTEXPR.
+ (std::bad_cast::~bad_cast): For C++26 add constexpr and define inline.
+ (std::bad_cast::what): Likewise.
+ (std::bad_typeid::bad_typeid): Add _GLIBCXX26_CONSTEXPR.
+ (std::bad_typeid::~bad_typeid): For C++26 add constexpr and define
+ inline.
+ (std::bad_typeid::what): Likewise.
+
+2025-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ * testsuite/22_locale/codecvt/codecvt_unicode.h
+ (ucs2_to_utf8_out_error): Comment spelling fix: bellow -> below.
+ (utf16_to_ucs2_in_error): Likewise.
+
+2025-07-09 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_uninitialized.h (__uninitialized_default):
+ Do not use optimized implementation for constexpr case. Use
+ _GLIBCXX20_CONSTEXPR instead of _GLIBCXX26_CONSTEXPR.
+
+2025-07-09 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/mdspan (mdspan): Add template keyword for
+ dependent name.
+
+2025-07-09 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/120997
+ * include/std/span (span::first, span::last, span::subspan): Do
+ not use braced-init-list for return statements.
+ * testsuite/23_containers/span/120997.cc: New test.
+
+2025-07-09 Paul Keir <pkeir@outlook.com>
+
+ PR libstdc++/117403
+ * include/bits/shared_ptr.h (shared_ptr::owner_equal)
+ (shared_ptr::owner_hash, weak_ptr::owner_equal)
+ (weak_ptr::owner_hash): Define new member functions.
+ * include/bits/shared_ptr_base.h (owner_equal, owner_hash):
+ Define new structs.
+ * include/bits/version.def (smart_ptr_owner_equality): Define.
+ * include/bits/version.h: Regenerate.
+ * include/std/memory: Added define for
+ __glibcxx_want_smart_ptr_owner_equality.
+ * testsuite/20_util/owner_equal/version.cc: New test.
+ * testsuite/20_util/owner_equal/cmp.cc: New test.
+ * testsuite/20_util/owner_equal/noexcept.cc: New test.
+ * testsuite/20_util/owner_hash/cmp.cc: New test.
+ * testsuite/20_util/owner_hash/noexcept.cc: New test.
+ * testsuite/20_util/shared_ptr/observers/owner_equal.cc: New
+ test.
+ * testsuite/20_util/shared_ptr/observers/owner_hash.cc:
+ New test.
+ * testsuite/20_util/weak_ptr/observers/owner_equal.cc: New test.
+ * testsuite/20_util/weak_ptr/observers/owner_hash.cc: New test.
+
+2025-07-09 Mateusz Zych <mte.zych@gmail.com>
+
+ * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
+ New members.
+ (numeric_limits<__max_diff_type>): Likewise.
+ * testsuite/std/ranges/iota/max_size_type.cc: New test cases.
+
+2025-07-09 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++17/memory_resource.cc: Adjust indentation of unnamed
+ namespaces.
+ (pool_sizes): Add comment.
+ (choose_block_size): Move outside preprocessor group for
+ gthreads targets.
+ * testsuite/20_util/synchronized_pool_resource/118681.cc:
+ Require gthreads.
+
+2025-07-09 H.J. Lu <hjl.tools@gmail.com>
+
+ * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
+ Updated.
+
+2025-07-08 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/118681
+ * testsuite/20_util/unsynchronized_pool_resource/118681.cc: Fix
+ deallocate argument.
+
+2025-07-08 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/118681
+ * src/c++17/memory_resource.cc (choose_block_size): New
+ function.
+ (synchronized_pool_resource::do_allocate): Use choose_block_size
+ to determine appropriate block size.
+ (synchronized_pool_resource::do_deallocate): Likewise
+ (unsynchronized_pool_resource::do_allocate): Likewise.
+ (unsynchronized_pool_resource::do_deallocate): Likewise
+ * testsuite/20_util/synchronized_pool_resource/118681.cc: New
+ test.
+ * testsuite/20_util/unsynchronized_pool_resource/118681.cc: New
+ test.
+
+2025-07-08 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/debug/forward_list (_Safe_forward_list<>::_M_swap):
+ Adapt to _M_this() signature change.
+
+2025-07-08 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/119861
+ * include/std/format (formatter<_Rg, _CharT>::set_separator)
+ (formatter<_Rg, _CharT>::set_brackets): Constrain with
+ (format_kind<_Rg> == range_format::sequence).
+ * testsuite/std/format/ranges/pr119861_neg.cc: New test.
+
+2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ PR libstdc++/120914
+ * include/std/span (span): Update CTAD to enable
+ integral constants [P3029R1].
+ * include/std/mdspan (extents): ditto.
+ (mdspan): ditto.
+ * testsuite/23_containers/span/deduction.cc: Test deduction
+ guide.
+ * testsuite/23_containers/mdspan/extents/misc.cc: ditto.
+ * testsuite/23_containers/mdspan/mdspan.cc: ditto.
+
+2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ * testsuite/23_containers/span/contiguous_range_neg.cc: Silence
+ warning about unused variable myspan.
+
+2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ PR libstdc++/107761
+ * include/bits/version.def (mdspan): Set to 202207 and remove
+ no_stdname.
+ * include/bits/version.h: Regenerate.
+ * testsuite/23_containers/mdspan/version.cc: Test presence
+ of feature test macro.
+
+2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ PR libstdc++/107761
+ * include/std/mdspan (mdspan): New class.
+ * src/c++23/std.cc.in (mdspan): Add.
+ * testsuite/23_containers/mdspan/class_mandate_neg.cc: New test.
+ * testsuite/23_containers/mdspan/mdspan.cc: New test.
+ * testsuite/23_containers/mdspan/layout_like.h: Add class
+ LayoutLike which models a user-defined layout.
+ * testsuite/23_containers/mdspan/out_of_bounds_neg.cc: New file.
+
+2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ * include/std/mdspan (__mdspan::__size): New function.
+
+2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ * testsuite/23_containers/mdspan/extents/custom_integer.cc:
+ Delete IntLike and include "int_like.h".
+ * testsuite/23_containers/mdspan/extents/int_like.h: Add
+ IntLike.
+
+2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ * include/std/mdspan (extents): Check prerequisite of the ctor that
+ static_extent(i) == dynamic_extent || extent(i) == other.extent(i).
+ * testsuite/23_containers/mdspan/extents/class_mandates_neg.cc:
+ Test the implemented prerequisite.
+ * testsuite/23_containers/mdspan/extents/extents_mismatch_neg.cc: New file.
+
+2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
+
+ * include/std/mdspan: Check prerequisites of
+ layout_*::operator() with _GLIBCXX_DEBUG_ASSERTs.
+ * testsuite/23_containers/mdspan/layouts/debug/out_of_bounds_neg.cc:
+ Add tests for prerequisites.
+
+2025-07-08 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ * include/std/queue (formatter<queue<_Tp, _Container>, _CharT>)
+ (formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>):
+ Add _GLIBCXX_RESOLVE_LIB_DEFECTS comments.
+
+2025-07-08 François Dumont <frs.dumont@gmail.com>
+
+ PR c++/116369
+ * config/abi/pre/gnu-versioned-namespace.ver: Use new const qualified symbols.
+ * config/abi/pre/gnu.ver: Add new const qualified symbols.
+ * include/debug/safe_base.h
+ (_Safe_iterator_base::_M_sequence): Declare as pointer-to-const.
+ (_Safe_iterator_base::_M_attach, _M_attach_single): New, take pointer-to-const
+ _Safe_sequence_base.
+ (_Safe_sequence_base::_M_detach_all, _M_detach_singular, _M_revalidate_singular)
+ (_M_swap, _M_get_mutex): New, const qualified.
+ (_Safe_sequence_base::_M_attach, _M_attach_single, _M_detach, _M_detach_single):
+ const qualify.
+ * include/debug/safe_container.h (_Safe_container<>::_M_cont): Add const qualifier.
+ (_Safe_container<>::_M_swap_base): New.
+ (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)):
+ Adapt to use latter.
+ (_Safe_container<>::operator=(_Safe_container&&)): Likewise.
+ (_Safe_container<>::_M_swap): Likewise and take parameter as const reference.
+ * include/debug/safe_unordered_base.h
+ (_Safe_local_iterator_base::_M_safe_container): New.
+ (_Safe_local_iterator_base::_Safe_local_iterator_base): Take
+ _Safe_unordered_container_base as pointer-to-const.
+ (_Safe_unordered_container_base::_M_attach, _M_attach_single): New, take
+ container as _Safe_unordered_container_base pointer-to-const.
+ (_Safe_unordered_container_base::_M_local_iterators, _M_const_local_iterators):
+ Add mutable.
+ (_Safe_unordered_container_base::_M_detach_all, _M_swap): New, const qualify.
+ (_Safe_unordered_container_base::_M_attach_local, _M_attach_local_single)
+ (_M_detach_local, _M_detach_local_single): Add const qualifier.
+ * include/debug/safe_unordered_container.h (_Safe_unordered_container::_M_self()): New.
+ * include/debug/safe_unordered_container.tcc
+ (_Safe_unordered_container::_M_invalidate_if, _M_invalidated_local_if): Use latter.
+ * include/debug/safe_iterator.h (_Safe_iterator<>::_M_attach, _M_attach_single):
+ Take _Safe_sequence_base as pointer-to-const.
+ (_Safe_iterator<>::_M_get_sequence): Add const_cast and comment about it.
+ * include/debug/safe_local_iterator.h (_Safe_local_iterator<>): Replace usages
+ of _M_sequence member by _M_safe_container().
+ (_Safe_local_iterator<>::_M_attach, _M_attach_single): Take
+ _Safe_unordered_container_base as pointer-to-const.
+ (_Safe_local_iterator<>::_M_get_sequence): Rename into...
+ (_Safe_local_iterator<>::_M_get_ucontainer): ...this. Add necessary const_cast and
+ comment to explain it.
+ (_Safe_local_iterator<>::_M_is_begin, _M_is_end): Adapt.
+ * include/debug/safe_local_iterator.tcc: Adapt.
+ * include/debug/safe_sequence.h
+ (_Safe_sequence<>::_M_invalidate_if, _M_transfer_from_if): Add const qualifier.
+ * include/debug/safe_sequence.tcc: Adapt.
+ * include/debug/deque (std::__debug::deque::erase): Adapt to use new const
+ qualified methods.
+ * include/debug/formatter.h: Adapt.
+ * include/debug/forward_list (_Safe_forward_list::_M_this): Add const
+ qualification and return pointer for consistency with 'this' keyword.
+ (_Safe_forward_list::_M_swap_aux): Rename into...
+ (_Safe_forward_list::_S_swap_aux): ...this and take sequence as const reference.
+ (forward_list<>::resize): Adapt to use const methods.
+ * include/debug/list (list<>::resize): Likewise.
+ * src/c++11/debug.cc: Adapt to const qualification.
+ * testsuite/util/testsuite_containers.h
+ (forward_members_unordered::forward_members_unordered): Add check on local_iterator
+ conversion to const_local_iterator.
+ (forward_members::forward_members): Add check on iterator conversion to
+ const_iterator.
+ * testsuite/23_containers/unordered_map/const_container.cc: New test case.
+ * testsuite/23_containers/unordered_multimap/const_container.cc: New test case.
+ * testsuite/23_containers/unordered_multiset/const_container.cc: New test case.
+ * testsuite/23_containers/unordered_set/const_container.cc: New test case.
+ * testsuite/23_containers/vector/debug/mutex_association.cc: Adapt.
+
+2025-07-07 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/120949
+ * include/bits/stl_iterator.h (__normal_iterator): Fix order of
+ always_inline and nodiscard attributes for Clang compatibility.
+
+2025-07-07 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/util/testsuite_hooks.h (VERIFY): Define as variadic
+ macro.
+ * testsuite/ext/verify_neg.cc: New test.
+
+2025-07-07 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/mdspan (__mapping_of): Add template keyword.
+
+2025-07-07 XU Kailiang <xu2k3l4@outlook.com>
+ Tomasz Kaminski <tkaminsk@redhat.com>
+
+ PR libstdc++/117214
+ * include/bits/chrono_io.h (_ChronoSpec::_M_time_only): Remove.
+ (_ChronoSpec::_M_time_point): Define.
+ (__formatter_chrono::_M_parse): Use __parts to determine
+ interpretation of j.
+ (__formatter_chrono::_M_check_ok): Define.
+ (__formatter_chrono::_M_format_to): Invoke _M_check_ok.
+ (__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B): Move
+ exception throwing to _M_check_ok.
+ (__formatter_chrono::_M_j): Use _M_needs to define interpretation.
+ (__formatter_duration::_S_spec_for): Set _M_time_point.
+ * testsuite/std/time/format/format.cc: Test for exception for !ok()
+ months/weekday.
+ * testsuite/std/time/format/pr117214_custom_timeput.cc: New
+ test.
+
+2025-07-07 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/120976
+ * include/std/format (formatter<__float128, _Char_T): Define if
+ _GLIBCXX_FORMAT_F128 == 2.
+
2025-07-06 Patrick Palka <ppalka@redhat.com>
* include/bits/ranges_algo.h (shift_left, shift_right): Guard