diff options
Diffstat (limited to 'libstdc++-v3/ChangeLog')
-rw-r--r-- | libstdc++-v3/ChangeLog | 908 |
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 |