| 2026-10-14 Hugo Beauzée-Luyssen <hugo.beauzee@datadoghq.com> | |
| Backported from master: | |
| 2026-10-14 Hugo Beauzée-Luyssen <hugo.beauzee@datadoghq.com> | |
| Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/chrono_io.h: Check __glibcxx_chrono for C++20 | |
| tzdb features instead of the ABI macros. | |
| * include/bits/version.def (chrono): Use extra_cond instead of | |
| cxx11abi to also define 201907 for old-ABI-only builds. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/chrono: Check __cpp_lib_chrono instead of the | |
| ABI macros. | |
| * testsuite/lib/libstdc++.exp (check_effective_target_tzdb): | |
| Replace cxx11_abi check with hosted check and check | |
| __cpp_lib_chrono in preprocessor condition. | |
| * testsuite/libstdc++-prettyprinters/chrono.cc: Use | |
| __cpp_lib_chrono for preprocessor condition and use tzdb for | |
| effective target. Remove dg-additional-options. | |
| * testsuite/std/time/format/data_not_present_neg.cc: Use | |
| __cpp_lib_chrono for preprocessor conditions and use tzdb for | |
| effective target. | |
| * testsuite/std/time/format/empty_spec.cc: Use __cpp_lib_chrono | |
| for preprocessor conditions. | |
| * testsuite/std/time/format/nonlocking.cc: Likewise. | |
| * testsuite/std/time/format/pr117214.cc: Likewise. | |
| * testsuite/std/time/format/pr119517.cc: Likewise. | |
| * testsuite/std/time/format/whitespace.cc: Likewise. | |
| * testsuite/std/time/hash.cc: Likewise. | |
| * testsuite/std/time/syn_c++20.cc: Fix typo in macro name and | |
| expect new value for !_GLIBCXX_USE_DUAL_ABI. | |
| * testsuite/std/time/tzdb/1.cc: Require tzdb effective target | |
| instead of cxx11_abi. | |
| * testsuite/std/time/tzdb_list/requirements.cc: Likewise. | |
| * testsuite/std/time/zoned_time/deduction.cc: Likewise. | |
| * testsuite/std/time/zoned_time/io.cc: Likewise. | |
| * testsuite/std/time/zoned_time/req_neg.cc: Likewise. | |
| * testsuite/std/time/zoned_time/requirements.cc: Likewise. | |
| * testsuite/std/time/zoned_traits.cc: Likewise. | |
| 2026-10-14 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-10-13 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/127757 | |
| * src/c++20/atomic.cc (__waitable_state::_M_enter_wait): Add | |
| comment. | |
| (__waitable_state::_M_waiting): Add seq_cst fence and comments. | |
| * testsuite/29_atomics/atomic/wait_notify/127757.cc: New test. | |
| 2026-10-14 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-10-05 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/115955 | |
| * src/c++20/atomic.cc (__waitable_state::_S_state_for): Use a | |
| real hash function to map addresses to waitable states. | |
| 2026-10-14 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-10-05 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/bitset (operator>>): Define __array_len to ensure | |
| that the array size is never zero. Add uninitialized attribute | |
| to __buf. | |
| 2026-10-14 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-10-02 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124370 | |
| * include/std/bitset (operator>>): Use array inside _Buffer | |
| instead of __builtin_alloca. | |
| * testsuite/20_util/bitset/io/input.cc: Suppress pedwarn about | |
| C++14 binary literal. | |
| * testsuite/20_util/bitset/io/wchar_t.cc: New test. | |
| 2026-10-08 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-10-07 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/chrono (chrono::__detail::__get_leap_second_info): | |
| Update expiry date for leap seconds list. | |
| * src/c++20/tzdb.cc (chrono::<unnamed>::fixed_expiry): Likewise. | |
| * src/c++20/tzdata.zi: Import new file from 2026e release. | |
| 2026-10-05 Anlai Lu <agicy@qq.com> | |
| Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/27_io/basic_ostream/print/buffered.cc: New test. | |
| * testsuite/std/format/functions/format_to_ostreambuf.cc: | |
| New test. | |
| 2026-10-02 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-10-02 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/125785 | |
| * include/std/ranges (enable_borrowed_range<as_input_view<T>>): | |
| Define partial specialization. | |
| * testsuite/std/ranges/adaptors/as_input/1.cc: Test | |
| specialization for as_input_view. | |
| * testsuite/std/ranges/adaptors/as_const/1.cc: Test | |
| specialization for as_const_view. | |
| * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Test | |
| specialization for as_rvalue_view. | |
| 2026-10-02 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-10-02 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/127666 | |
| * src/c++17/floating_from_chars.cc (pattern): Avoid reading past | |
| the end of the input. Remove unused variable. | |
| * testsuite/20_util/from_chars/127666.cc: New test. | |
| 2026-10-02 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-07-31 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/126364 | |
| * include/bits/chrono_io.h (_Parser::operator()) <R>: Only break | |
| early when setting failbit. | |
| * testsuite/std/time/parse/126364.cc: New test. | |
| 2026-10-02 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-05-13 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/114400 | |
| * include/std/string_view (operator<=>): Use type_identity_t | |
| instead of __type_identity_t. | |
| 2026-09-30 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-30 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/performance/27_io/ifstream_extract_chars.cc: Use | |
| stack array instead of dynamic allocation. | |
| 2026-09-30 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-30 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/xml/manual/policy_data_structures.xml: Fix header name in | |
| pb_ds examples. | |
| * doc/xml/manual/using.xml: Fix names for pb_ds headers. | |
| * doc/html/*: Regenerate. | |
| 2026-09-30 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-30 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/util/testsuite_performance.h (resource_counter): Do | |
| not use memset to clear non-trivial objects. | |
| 2026-09-29 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-29 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/127656 | |
| * include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp | |
| (erase_if): Update m_a_entries after reallocation. | |
| * testsuite/ext/pb_ds/regression/priority_queues_erase_if.cc: | |
| New test. | |
| 2026-09-24 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-23 Jonathan Wakely <jwakely@redhat.com> | |
| * libsupc++/new_opa.cc | |
| [_GLIBCXX_HAVE_ALIGNED_ALLOC] (__gnu_cxx::aligned_alloc): | |
| Replace using-directive with new function. Check for size_t | |
| overflow. | |
| [_GLIBCXX_HAVE__ALIGNED_MALLOC] (__gnu_cxx::aligned_alloc): | |
| Check for size_t overflow. | |
| (__gnu_cxx::aligned_alloc): Likewise in fallback definition. | |
| (operator new) [_GLIBCXX_HAVE_ALIGNED_ALLOC]: Move parameter | |
| adjustments to new __gnu_cxx::aligned_alloc function. | |
| * testsuite/18_support/new_aligned_wrap.cc: New test. | |
| 2026-09-21 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-09-17 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/123409 | |
| * include/bits/random.h (negative_binomial_distribution::param) | |
| (fisher_f_distribution::param, student_t_distribution::param): | |
| Updated underlying gamma distributions, by calling param. | |
| (chi_squared_distribution::param): Use type alias and parenthesis | |
| for consistency. | |
| * testsuite/26_numerics/random/distribution_param.cc: New test. | |
| * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: | |
| Removed, covered by above. | |
| 2026-09-18 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: | |
| Replace references to namespace __pstl with std. | |
| * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: | |
| Likewise. | |
| * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: | |
| Likewise. | |
| * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: | |
| Likewise. | |
| * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: | |
| Likewise. | |
| * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: | |
| Likewise. | |
| * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: | |
| Likewise. | |
| * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: | |
| Likewise. | |
| * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: | |
| Likewise. | |
| * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: | |
| Likewise. | |
| * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: | |
| Likewise. | |
| * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: | |
| Likewise. | |
| * testsuite/util/pstl/test_utils.h: Likewise. | |
| 2026-09-18 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-17 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/lib/libstdc++.exp (v3_check_preprocessor_condition): | |
| Use argument as filename for preprocessing. | |
| 2026-09-18 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-17 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test): | |
| Use $v3_max_std variable instead of hardcoding the latest -std | |
| option. | |
| 2026-09-18 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-08-18 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/126786 | |
| * src/c++23/Makefile.am (empty.cc): New target. | |
| (std.lo, std.o, std.compat.lo, std.compat.o): Use empty.cc as | |
| fallback instead of overwriting original sources. | |
| * src/c++23/Makefile.in: Regenerate. | |
| 2026-09-16 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-16 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/20_util/function_objects/dr660.cc: Include the | |
| testsuite_hooks.h header not testsuite_hooks.cc. | |
| 2026-09-16 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-16 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/27_io/basic_filebuf/close/char/4879.cc: Fix typo in | |
| comment. | |
| 2026-09-16 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-16 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/atomic_wait.h: Fix typo in comment. | |
| 2026-09-16 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-16 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/127430 | |
| * config/io/basic_file_stdio.cc (__basic_file::fd) Fix typo in | |
| preprocessor condition. | |
| 2026-09-16 Gerald Pfeifer <gerald@pfeifer.com> | |
| Backported from master: | |
| 2026-08-30 Gerald Pfeifer <gerald@pfeifer.com> | |
| * doc/xml/manual/status_cxx2017.xml: Update reference to openDPL | |
| Parallel API. | |
| * doc/xml/manual/status_cxx2020.xml: Ditto. | |
| * doc/html/manual/status.html: Regenerate. | |
| 2026-09-14 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/124121 | |
| * include/std/inplace_vector (inplace_vector::_M_init): Remove | |
| unnecessary start_lifetime_as call. Emit error using | |
| __builtin_constexpr_diag. | |
| 2026-09-14 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-09-10 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/127220 | |
| * include/std/format (__format::_Arg_t): Move definition | |
| earlier. | |
| (basic_format_parse_context::check_dynamic_spec): Construct | |
| array of _Arg_t from template parameter list. | |
| (basic_format_parse_context::check_dynamic_spec_integral): | |
| Construct array of _Arg_t based on supported types. | |
| (basic_format_parse_context::check_dynamic_spec_string): | |
| Likewise. | |
| (basic_format_parse_context::__check_dynamic_spec): Replace | |
| template parameter list with span<const _Arg_t> function | |
| parameter and simplify accordingly. Define in class body. | |
| (basic_format_parse_context::_Scan_parse_context): New struct | |
| the replaces _Scanner::_Parse_context. | |
| (__format::_Scanner::_M_pc): Change type to _Scan_parse_context. | |
| 2026-09-14 Steven Sudit <stevensudit@gmail.com> | |
| Backported from master: | |
| 2026-09-09 Steven Sudit <stevensudit@gmail.com> | |
| PR libstdc++/127219 | |
| * include/std/format | |
| (basic_format_parse_context::__valid_types_for_check_dynamic_spec): | |
| Make static, so that the static_assert in check_dynamic_spec does | |
| not use this. | |
| 2026-09-14 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-09-10 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Marco Falke <falke.marco@gmail.com> | |
| PR libstdc++/126949 | |
| * include/bits/hashtable_policy.h (_Hash_code_base::_M_hash) | |
| (_Hashtable_base::_M_equal, _Hashtable_alloc::_M_alloc): | |
| Value initialized members in NSDMI. | |
| * testsuite/23_containers/unordered_map/cons/default.cc: Check | |
| default construction with an hash, equality and allocator with | |
| explicit constructor. | |
| * testsuite/23_containers/unordered_set/cons/default.cc: Likewise. | |
| 2026-09-11 Avi Kivity <avi@scylladb.com> | |
| Backported from master: | |
| 2026-09-11 Avi Kivity <avi@scylladb.com> | |
| PR libstdc++/127325 | |
| * include/std/inplace_vector: replace is_trivial_v with | |
| is_trivially_default_constructible_v and is_trivially_copyable_v. | |
| 2026-09-03 Nathan Myers <ncm@cantrip.org> | |
| PR libstdc++/126800 | |
| * include/bits/hashtable.h: (try_emplace): Call correct helper. | |
| * testsuite/23_containers/unordered_map/modifiers/hetero/insert.cc: | |
| whether key arguments have been copied. | |
| 2026-08-31 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-08-31 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/118665 | |
| * include/bits/uniform_int_dist.h (uniform_int_distribution::_S_nd): | |
| Substract __min (_Urbg::min()) from each generator invocation. | |
| * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc: | |
| Add testDiscreteDist for shifted (with non-zero min()) engine. | |
| 2026-08-31 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-08-27 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/123510 | |
| * src/c++20/tzdb.cc (at_time::is_indicator): Add case labels | |
| for uppercase letters. | |
| (operator>>(istream&, years_from_to)): Check for 'M' and 'O', | |
| (chrono::reload_tzdb): Add case labels for lowercase letters, | |
| and normalize first letter of type. | |
| (operator>>(istream&, abbrev_month&)): Match all cases in | |
| switch and days_chars. | |
| (operator>>(istream&, on_month_day&)): Check for 'L'. | |
| * testsuite/std/time/tzdb/name_matching.cc: New test. | |
| 2026-08-25 Matthias Kretz <m.kretz@gsi.de> | |
| Backported from master: | |
| 2026-08-18 Matthias Kretz <m.kretz@gsi.de> | |
| PR libstdc++/122981 | |
| * include/experimental/bits/simd.h (__int_for_sizeof): Return | |
| int32_t, int8_t, int16_t, and int64_t, rather than int, signed | |
| char, short, long, and long long. | |
| * include/experimental/bits/simd_neon.h (_S_popcount): Cast | |
| elements to int8_t, int16_t, int32_t, or int64_t, rather than | |
| signed char, short, int, or long. | |
| 2026-08-25 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-08-24 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/127006 | |
| * include/std/spanstream (basic_ospanstream(span, openmode)): | |
| Add correct openmode value to parameter. | |
| * testsuite/27_io/spanstream/127006.cc: New test. | |
| 2026-08-21 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-08-21 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/std/time/clock/utc/leap_second_info-2.cc: Create | |
| empty ./tzdata.zi file. | |
| 2026-08-21 Matthias Kretz <m.kretz@gsi.de> | |
| Backported from master: | |
| 2026-08-19 Matthias Kretz <m.kretz@gsi.de> | |
| * include/bits/simd_vec.h (_M_elements_shifted_to_front): Remove | |
| x86-specific implementation. | |
| 2026-08-20 Anlai Lu <agicy@qq.com> | |
| Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/print.h (_File_sink::_File::_File) | |
| [_GLIBCXX_USE_STDIO_LOCKING && _GLIBCXX_USE_GLIBC_STDIO_EXT]: | |
| Move __overflow call to separate member function. | |
| (_File_sink::_File::_M_init_write_buf) | |
| [_GLIBCXX_USE_STDIO_LOCKING && _GLIBCXX_USE_GLIBC_STDIO_EXT]: | |
| Extracted from constructor, call __overflow for null | |
| _M_file->_IO_write_ptr. | |
| (_File_sink::_File_sink) | |
| [_GLIBCXX_USE_STDIO_LOCKING && _GLIBCXX_USE_GLIBC_STDIO_EXT]: | |
| Call _M_init_write_buf instead of _M_write_buf. | |
| * testsuite/27_io/print/1.cc: Add test_print_setvbuf. | |
| (cherry picked from commits 4cb7258da9bd637ccce023693ae6a167d179784d) | |
| (74b3180bb616fbc35d1b655da75d8f6d8b39d368) | |
| 2026-08-20 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-08-20 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/126731 | |
| * include/std/format (std::formatter<_Float16, _CharT>) | |
| (std::formatter<__format::__bflt16_t, _CharT>): Remove | |
| partial specializations. | |
| * testsuite/std/format/formatter/ext_float.cc: Test output | |
| for closest value to 1/10. | |
| 2026-08-20 Pietro Monteiro <pietro@sociotechnical.xyz> | |
| Backported from master: | |
| 2026-08-17 Pietro Monteiro <pietro@sociotechnical.xyz> | |
| * config/os/bsd/openbsd/ctype_base.h: Use static_cast when | |
| setting the masks. | |
| 2026-08-20 Pietro Monteiro <pietro@sociotechnical.xyz> | |
| Backported from master: | |
| 2026-08-15 Pietro Monteiro <pietro@sociotechnical.xyz> | |
| * config/os/bsd/openbsd/ctype_base.h: Use _CTYPE prefixed | |
| macros if available. | |
| 2026-08-18 Yan Churkin <yanchurkin@gmail.com> | |
| Backported from master: | |
| 2026-07-23 Yan Churkin <yanchurkin@gmail.com> | |
| PR libstdc++/125981 | |
| * include/bits/stl_algobase.h (__find_if): Force the predicate | |
| result to bool so that non-boolean_testable predicates cannot | |
| cause a past-the-end iterator to be dereferenced. | |
| (__mismatch): Likewise for both overloads. | |
| * include/bits/stl_heap.h (__push_heap): Likewise for the | |
| comparator result. | |
| * testsuite/25_algorithms/find_if/overloaded_logical_ops.cc: New | |
| test. | |
| * testsuite/25_algorithms/mismatch/overloaded_logical_ops.cc: | |
| New test. | |
| 2026-08-18 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-07-29 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/126452 | |
| * acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Use LC_ALL_C and | |
| match both "Warning" and "warning" in ld output. | |
| * configure: Regenerate. | |
| 2026-08-17 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-08-17 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/126849 | |
| * include/std/numbers: Fix preprocessor check for | |
| std::bfloat16_t support. | |
| 2026-08-07 Release Manager | |
| * GCC 16.2.0 released. | |
| 2026-07-29 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-07-29 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/122197 | |
| * include/bits/shared_ptr_base.h (~_Sp_counted_deleter): Disable | |
| -Warray-bounds warnings. | |
| (_Sp_counted_deleter::_M_dispose): Likewise. | |
| (_Sp_counted_ptr_inplace::_M_dispose): Likewise. | |
| * testsuite/20_util/shared_ptr/dest/122197-2.cc: New test. | |
| * testsuite/20_util/shared_ptr/dest/122197.cc: New test. | |
| 2026-07-29 David Faure <david.faure@kdab.com> | |
| Backported from master: | |
| 2026-07-28 David Faure <david.faure@kdab.com> | |
| * python/libstdcxx/v6/printers.py (StdMapPrinter.num_children): | |
| Count two children per element. | |
| (Tr1UnorderedMapPrinter.num_children): Likewise. | |
| 2026-07-29 David Faure <david.faure@kdab.com> | |
| Backported from master: | |
| 2026-07-28 David Faure <david.faure@kdab.com> | |
| * python/libstdcxx/v6/printers.py (StdMapPrinter.num_children): | |
| Fix parameter name. | |
| (StdSetPrinter.num_children): Likewise. | |
| 2026-07-29 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-07-20 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Álvaro Begué <alvaro.begue@gmail.com> | |
| PR libstdc++/124854 | |
| * src/c++20/tzdb.cc (ZoneInfo::save): Define. | |
| (time_zone::_M_get_sys_info): Fold initial transition if they | |
| occurs in duplicated local time window (merge_window) due move | |
| from DST to STD zone. | |
| * testsuite/std/time/time_zone/wall_cascade.cc (test_next_year): | |
| Test that 1945 Pacific/Auckland transition is properly handled. | |
| (test_negative): Adjust test to avoid zone merge. | |
| * testsuite/std/time/time_zone/zone_merge.cc: New test. | |
| 2026-07-29 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Álvaro Begué <alvaro.begue@gmail.com> | |
| PR libstdc++/116110 | |
| * src/c++20/tzdb.cc (ZoneInfo::calc_save, ZoneInfo::State): Define. | |
| (ZoneInfo::m_expanded): Replaced with m_state. | |
| (ZoneInfo::m_pos): Reduce the bit with to 14. | |
| (ZoneInfo::m_state): Expands m_expanded with four state enum. | |
| (ZoneInfo::ZoneInfo, ZoneInfo::expanded, ZoneInfo::set_abbrev): | |
| Replace m_expanded usage with m_state and State::Expanded. | |
| (Transitions, find_surrounding_transitions): Extracted from | |
| find_active_rule. | |
| (find_active_rule): Define overload for local_seconds. Implement | |
| both in terms of find_surrounding_transitions. | |
| (chrono::reload_tzdb): Calculate save (invoke calc_save) for | |
| all infos on all zones. | |
| (time_zone::_M_get_sys_info): Define rules as span<const Rules>, | |
| and remove the comment. | |
| (operator>>(istream&, ZoneInfo&)): Set m_state for UntilPending | |
| for UNTIL time using wall time, and SaveKnown for lines without | |
| end date. For clarity, set m_save to 0 if daylight is not used. | |
| * testsuite/std/time/time_zone/116110.cc (test_apia): Use correct | |
| value of the the total offset. | |
| * testsuite/std/time/time_zone/pr116110_named.cc: New test. | |
| * testsuite/std/time/time_zone/wall_cascade.cc: Add test | |
| for last_transition. | |
| (cherry picked from commits 020e02fcf281bd24065c8663219a22aba9d0a47d) | |
| (4426e08a4fd0d35643d16a14c9e9b81488823a23) | |
| (ce285dde2110f453fdbbd89fbb2f85a4d039705d) | |
| 2026-07-28 Jakub Jelinek <jakub@redhat.com> | |
| Backported from master: | |
| 2026-07-28 Jakub Jelinek <jakub@redhat.com> | |
| * include/bits/deque.tcc (std::__uninitialized_copy_a): Remove unused | |
| variable __sres. | |
| 2026-07-26 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2026-07-25 Patrick Palka <ppalka@redhat.com> | |
| * include/std/ranges (__detail::__compatible_joinable_ranges): | |
| Remove. | |
| (__detail::__concat_reference_t): Move definition up. | |
| (__detail::__concat_value_t): Likewise. | |
| (__detail::__concat_rvalue_reference_t): Likewise. | |
| (__detail::__concat_indirectly_readable_impl): Likewise. | |
| (__detail::__concat_indirectly_readable): Likewise. | |
| (__detail::__concatable): Likewise. | |
| (join_with_view): Use __concatable instead of | |
| __compatible_joinable_ranges in constraints as per LWG 4074. | |
| (join_with_view::begin): Add __concatable constraint as per | |
| LWG 4074. | |
| (join_with_view::end): Likewise. | |
| (join_with_view::_Iterator): Adjust out-of-line declaration. | |
| (join_with_view::_Sentinel): Likewise. | |
| 2026-07-24 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Álvaro Begué <alvaro.begue@gmail.com> | |
| PR libstdc++/124853 | |
| * src/c++20/tzdb.cc | |
| (time_zone::_M_get_sys_info): Extract code blocks to | |
| separate functions, and invoke them. | |
| (<unnamed>::find_active_rule): Modify algorithm to | |
| handle cascading saves. | |
| (<unnamed>::find_first_std): Simplified implementation | |
| benefiting from reordering of rules. | |
| (chrono::reload_tzdb): Sort rules by name, from and save. | |
| * testsuite/std/time/time_zone/wall_cascade.cc: New test. | |
| (cherry picked from commits f7cde200320e0800e4fcc5cea399e9faef50f8d4) | |
| (610134a51fa3d0bcd3e0980c6574557172dc88c0) | |
| 2026-07-23 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-07-20 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/116110 | |
| * src/c++20/tzdb.cc (time_zone::_M_get_sys_info): Correct | |
| condition for stopping zone expansion before STD zone. | |
| * testsuite/std/time/time_zone/116110.cc (test_dawson): | |
| Add test for America/Dawson August 1945 transition. | |
| 2026-07-23 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-05-18 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/124852 | |
| * src/c++20/tzdb.cc (on_month_day::on_day_t, on_month_day::on_day): | |
| Remove. | |
| (operator>>(istream&, on_month_day::day_t&)): Inlined into... | |
| (operator>>(istream&, on_month_day)): Inlined on_month_day::on_day. | |
| Avoid modifying on.month if MONTH is not present. Report failure | |
| on failure to parse day for LessEq / GreaterEq. | |
| 2026-07-23 Álvaro Begué <alvaro.begue@gmail.com> | |
| Backported from master: | |
| 2026-05-13 Álvaro Begué <alvaro.begue@gmail.com> | |
| Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/124852 | |
| * src/c++20/tzdb.cc (on_day): Rename to... | |
| (on_day_month): Rename from on_day. | |
| (on_day_month::on_day_t, on_day_month::on_day): Define. | |
| (operator>>(istream&, on_day_t&&)): Factored out of | |
| operator>>(istream&, on_day&). | |
| (operator>>(istream&, on_day&)): Use on_day_t parser. | |
| (operator>>(istream&, ZoneInfo&)): Replace the integer DAY | |
| parser with on_day_t for the UNTIL field. | |
| * testsuite/std/time/time_zone/until_day_on.cc: New test. | |
| 2026-07-23 Álvaro Begué <alvaro.begue@gmail.com> | |
| Backported from master: | |
| 2026-05-13 Álvaro Begué <alvaro.begue@gmail.com> | |
| PR libstdc++/124851 | |
| * src/c++20/tzdb.cc (ZoneInfo::ZoneInfo(sys_info&&)): Store | |
| stdoff only in m_offset (subtract info.save). | |
| (ZoneInfo::ZoneInfo(const pair<sys_info, string_view>&)): | |
| Likewise. | |
| (ZoneInfo::offset()): Document new semantics. | |
| (ZoneInfo::to(sys_info&)): Add m_save back to offset() when | |
| populating sys_info::offset. | |
| * testsuite/std/time/time_zone/numeric_save.cc: New test. | |
| 2026-07-22 Jakub Jelinek <jakub@redhat.com> | |
| Backported from master: | |
| 2026-07-22 Jakub Jelinek <jakub@redhat.com> | |
| * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Regenerate. | |
| * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: | |
| Likewise. | |
| * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise. | |
| * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise. | |
| * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise. | |
| * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Likewise. | |
| 2026-07-21 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-07-07 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/mdspan | |
| (layout_stride::mapping::mapping(const extent_type&, span<...>)): | |
| Convert strides using __index_type_cast, which bring asserts | |
| for negative and unrepresentable values. | |
| * testsuite/23_containers/mdspan/layouts/stride_neg.cc: New test. | |
| 2026-07-21 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-07-10 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/ranges (repeat_view::repeat_view): Assert that | |
| __bound >= 0 consistently. Replace !same_as<unreachable_sentinel> | |
| with __is_signed_integer_like check. | |
| 2026-07-21 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-07-07 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * config/abi/pre/gnu.ver (GLIBCXX_3.4.36): Export basic_format_arg | |
| _M_handle_unrecognized method of specializations of | |
| format_context and wformat_context. | |
| * include/std/format (basic_format_arg::_M_handle_unrecognized): | |
| Declare with explicit specializations for (w)format_context | |
| if _GLIBCXX_EXTERN_TEMPLATE, and define otherwise. | |
| (basic_format_arg::_M_visit): Remove __type parameter, and use | |
| _M_type instead. Call _M_handle_unrecognized for unrecognized | |
| _Arg_t values. | |
| (basic_format_arg::_M_visit_user): Remove __type parameter, | |
| and use _M_type instead. Adjust calls to _M_visit. | |
| (basic_format_arg::visit, std::visit_format_arg) | |
| (__format::__visit_format_arg): Remove _M_type argument from | |
| _M_visit(_user) calls. | |
| * src/c++20/format-inst.cc | |
| (basic_format_arg::_M_handle_unrecognized): Define and export | |
| explicit specializations for (w)format_context. | |
| 2026-07-21 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-07-03 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/format (_Pres_type::_Pres_p, _Pres_type::_Pres_P): | |
| Change the values to which they are defined. | |
| (__formatter_fp::format): Append 0x/0X if _M_type is _Pres_p/_Pres_P | |
| respectively. | |
| (__formatter_fp::_M_localize): Add __offset parameter representing | |
| start of number value (after sign and prefix). | |
| (__formatter_ptr::parse, __formatter_ptr::_M_default) | |
| (__formatter_ptr::__formatter_ptr): Remove unused __type parameter, | |
| and replace use of _Pres_p/P with _Pres_x/X. | |
| 2026-07-21 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-07-03 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/format (__formatter_int::format) | |
| (__formatter_fp::format): For unrecognised _M_spec._M_type | |
| values (default branch of switch) fallthrou to _Pres_none. | |
| 2026-07-21 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-06-24 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/format (__do_vformat_to): Change the preprocessor | |
| check for __do_vformat_to. | |
| 2026-07-21 Jonathan Wakely <jwakely@redhat.com> | |
| Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/123165 | |
| * acinclude.m4 (libtool_VERSION): Bump version. | |
| * config/abi/pre/gnu.ver (GLIBCXX_3.4.36): Add new symbol | |
| version and export new symbol. | |
| * configure: Regenerate. | |
| * include/std/chrono (__detail::__recent_leap_second_info): | |
| Declare new function and make it a friend of various classes. | |
| (leap_second): Make private constructor constexpr. Remove friend | |
| declaration for get_leap_second_info. | |
| (__detail::__get_leap_second_info): Use new function for times | |
| past the hardcoded expiry. | |
| * src/c++20/tzdb.cc (tzdb_list::_Node::fixed_leaps): Move array | |
| of leap seconds here from _S_read_leap_seconds. | |
| (_Node::NumLeapSeconds): New class. | |
| (_Node::num_leap_seconds): New static variable. | |
| (__detail::__recent_leap_second_info): Define new function. | |
| (tzdb_list::_Node::_S_read_leap_seconds): Populate vector from | |
| _Node::fixed_leaps. Rename bool variable to clarify meaning. | |
| (tzdb_list::_Node::_S_replace_head): Update num_leap_seconds | |
| when updating the tzdb_list. | |
| * testsuite/util/testsuite_abi.cc: Update known_versions and | |
| latestp. | |
| * testsuite/std/time/clock/utc/leap_second_info-2.cc: New test. | |
| (cherry-picked from commits e79f0f818c0e42d0d84c90a54684dfb269ac388c) | |
| (b12fdd952511786bf8d285e7080e94deeb32aa1d) | |
| (adb4f4a064c009cd616106fa4c648182c18f96d9) | |
| (a7ad4bee6fe7cd77aceb6e86380dcaeb6da82791) | |
| 2026-07-16 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-07-15 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/126111 | |
| * include/std/format (__format::__write_escape_seq): Remove | |
| unnecessary alias declaration. | |
| * include/std/spanstream (wspanbuf, wispanstream, wospanstream) | |
| (wspanstream): Only declare for _GLIBCXX_USE_WCHAR_T. | |
| * include/std/syncstream (wsyncbuf wosyncstream): Likewise. | |
| * src/c++23/std.cc.in: Add preprocessor checks for | |
| _GLIBCXX_USE_WCHAR_T to names which depend on it. | |
| 2026-07-01 Matthias Kretz <m.kretz@gsi.de> | |
| Backported from master: | |
| 2026-07-01 Matthias Kretz <m.kretz@gsi.de> | |
| * include/bits/simd_details.h (_ScalarAbi): Remove. | |
| (__scalar_abi_tag): Identify _Abi<N, N> as scalar now. | |
| (__native_abi): Replace _ScalarAbi<1> with _Abi_t<1, 1, ...>. | |
| (__abi_rebind): Refactor rebinding from/to __scalar_abi_tag. | |
| * include/bits/simd_mask.h (_S_use_bitmask): Only true if | |
| !_S_is_scalar. | |
| (_M_and_neighbors, _M_or_neighbors): Add case for _S_is_scalar | |
| where the and/or must be executed one step earlier. | |
| (_M_reduce_min_index, _M_reduce_max_index): Delete dead code. | |
| * include/bits/simd_vec.h (_S_use_bitmask): Inherit the value | |
| from the first data member. | |
| * testsuite/std/simd/traits_impl.cc: Adjust for the removal of | |
| _ScalarAbi. | |
| 2026-07-01 Yi Chen <chencyy@hygon.cn> | |
| Backported from master: | |
| 2026-07-01 Yi Chen <chencyy@hygon.cn> | |
| * src/c++11/random.cc (random_device::_M_init): Add signature_HYGON_ebx to | |
| the RDSEED and RDRAND CPUID vendor allowlists. For the default device on | |
| Hygon, prefer RDRAND via a dedicated check at the top of the function. | |
| 2026-07-01 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-06-29 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/chrono_io.h: Fix comment typo. | |
| 2026-07-01 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-06-25 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/125956 | |
| * src/c++20/format.cc [_GLIBCXX_HAVE_ICONV] (iconv_input): New | |
| concept. | |
| (__encoding::conv) [_GLIBCXX_HAVE_ICONV]: Use iconv_input to | |
| decide which type to cast the input pointer to. | |
| 2026-07-01 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-06-24 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/27_io/filesystem/operations/copy_symlink/1.cc: Add | |
| dg-require-target-fs-symlinks. | |
| * testsuite/27_io/filesystem/operations/copy_symlink/2.cc: | |
| Likewise. | |
| * testsuite/27_io/filesystem/operations/copy_symlink/3.cc: | |
| Likewise. | |
| * testsuite/27_io/filesystem/operations/copy_symlink/4.cc: | |
| Likewise. | |
| 2026-07-01 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-06-24 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118158 | |
| * testsuite/27_io/filesystem/operations/pr118158.cc: Add | |
| dg-require-mkfifo. | |
| 2026-07-01 Dragon Archer <dragon-archer@outlook.com> | |
| Backported from master: | |
| 2026-05-16 Dragon Archer <dragon-archer@outlook.com> | |
| PR libstdc++/125228 | |
| * src/c++11/debug.cc: Replace assert with __glibcxx_assert, | |
| and remove the include of <cassert>. | |
| * src/c++17/floating_to_chars.cc: Likewise, but redefine | |
| assert as __glibcxx_assert. | |
| 2026-06-25 Jakub Jelinek <jakub@redhat.com> | |
| Backported from master: | |
| 2026-06-25 Jakub Jelinek <jakub@redhat.com> | |
| * src/c++23/Makefile.am (stamp-modules-bits): Use abs_builddir instead | |
| of abs_srcdir. | |
| * src/c++23/Makefile.in: Regenerate. | |
| 2026-06-24 Alexandre Oliva <oliva@adacore.com> | |
| Backported from master: | |
| 2026-06-24 Alexandre Oliva <oliva@adacore.com> | |
| * src/c++23/Makefile.am (libstdc++.modules.json): Rewrite | |
| without abspath make function. | |
| (stamp-modules-bits): Likewise. | |
| * src/c++23/Makefile.in: Rebuilt. | |
| 2026-06-23 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-06-23 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/chrono.h (std::chrono_literals): Fix typo in | |
| comment. | |
| 2026-06-23 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-06-23 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/xml/manual/debug_mode.xml: Remove 404 link to stlport | |
| website and modernise some text about debug modes in other | |
| implementations. | |
| * doc/html/manual/debug_mode_design.html: Regenerate. | |
| 2026-06-23 Nathan Myers <ncm@cantrip.org> | |
| PR libstdc++/125890 | |
| * include/bits/memory_resource.h (allocate_at_least): Add to | |
| allocator_traits<pmr::polymorphic_allocator> specialization. | |
| * testsuite/20_util/polymorphic_allocator/at_least.cc: New test. | |
| 2026-06-23 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-06-13 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/version.def (constant_wrapper): Bump to 202606L. | |
| * include/bits/version.h: Regenerate. | |
| * include/bits/funcref_impl.h (function_ref::function_ref): Rename | |
| template parameter from __cwfn to __fn and use it direclty. | |
| * include/bits/funcwrap.h (function_ref): Rename template parameter | |
| to __fn. | |
| (std::constant_wrapper): Use auto as non-type template parameter, | |
| and refeference it as value. | |
| * include/bits/utility.h (__CwFixedValue): Remove. | |
| * include/std/mdspan (__mdspan::__is_constant_wrapper): | |
| Use auto as non-type template parameter. | |
| * testsuite/20_util/constant_wrapper/generic.cc: Remove arrays | |
| and string literal tests. Add test for address of value. | |
| * testsuite/20_util/constant_wrapper/other_wrappers.cc: | |
| Remove test_array. | |
| * testsuite/20_util/constant_wrapper/type_param_neg.cc: New file. | |
| 2026-06-04 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2026-05-29 Patrick Palka <ppalka@redhat.com> | |
| * include/std/flat_set (_Flat_set_impl::swap): Swap _M_cont | |
| first. | |
| 2026-06-04 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2026-05-28 Patrick Palka <ppalka@redhat.com> | |
| * include/std/flat_map (flat_map): Bring in operator= from | |
| _Flat_map_base. | |
| (flat_multimap): Likewise. | |
| * include/std/flat_set (flat_set): Bring in operator= from | |
| _Flat_set_base. | |
| (flat_multiset): Likewise. | |
| * testsuite/23_containers/flat_map/1.cc (test11): Simplify by | |
| using = {...}. | |
| (test12): New test. | |
| * testsuite/23_containers/flat_multimap/1.cc (test10): Simplify | |
| by using = {...}. | |
| (test11): New test. | |
| * testsuite/23_containers/flat_multiset/1.cc (test10): Simplify | |
| by using = {...}. | |
| (test11): New test. | |
| * testsuite/23_containers/flat_set/1.cc (test10): Simplify by | |
| using = {...}. | |
| (test11): New test. | |
| 2026-06-04 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2026-05-28 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/version.def (flat_map): Bump to 202511. | |
| (flat_set): Likewise. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/flat_map (_Flat_map_impl): Remove | |
| is_nothrow_swappable_v assertions. | |
| (_Flat_map_impl::_Flat_map_impl): Explicitly default copy ctor. | |
| Define move ctor with corrected exception handling as per | |
| P3567R2. | |
| (_Flat_map_impl::operator=): Likewise. | |
| (_Flat_map_impl::insert_range): Define new __sorted_t overload | |
| as per P3567R2. | |
| (_Flat_map_impl::swap): Make conditionally noexcept as per | |
| P3567R2. | |
| * include/std/flat_set (_Flat_set_impl): Remove | |
| is_nothrow_swappable_v assertion. | |
| (_Flat_set_impl::_Flat_set_impl): Explicitly default copy ctor. | |
| Define move ctor with correct invariant preserving behavior as | |
| per P3567R2. | |
| (_Flat_set_impl::operator=): Likewise. | |
| (_Flat_set_impl::_M_insert_range): Factored out from | |
| insert_range. Add bool parameter __is_sorted defaulted to | |
| false. | |
| (_Flat_set_impl::insert_range): Define new __sorted_t overload | |
| as per P3567R2. | |
| (_Flat_set_impl::swap): Make conditionally noexcept as per | |
| P3567R2. Correct to use ranges::swap instead of ADL swap. | |
| * testsuite/23_containers/flat_map/1.cc (test11, test12): | |
| New tests. | |
| * testsuite/23_containers/flat_multimap/1.cc (test10, test11): | |
| New tests. | |
| * testsuite/23_containers/flat_multiset/1.cc (test10, test11): | |
| New tests. | |
| * testsuite/23_containers/flat_set/1.cc (test10, test11): | |
| New tests. | |
| 2026-06-04 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2026-05-28 Patrick Palka <ppalka@redhat.com> | |
| * include/std/flat_map (_Flat_map_impl::_M_insert): New bool | |
| parameter __is_sorted defaulted to false. Reimplement using | |
| views::zip and ranges::inplace_merge. | |
| (_Flat_map_impl::insert): In the __sorted_t overload, pass | |
| __is_sorted=true to _M_insert. | |
| 2026-06-04 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-06-04 Jonathan Wakely <jwakely@redhat.com> | |
| * include/debug/safe_iterator.h: Remove trailing whitespace. | |
| 2026-05-27 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-26 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/125450 | |
| * include/std/optional (range_format): Do not define for | |
| freestanding. | |
| 2026-05-21 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2026-05-21 Patrick Palka <ppalka@redhat.com> | |
| * testsuite/23_containers/flat_map/1.cc (test_constexpr): | |
| If std::string isn't constexpr don't run test10. | |
| 2026-05-21 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2026-05-19 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/125374 | |
| * include/std/flat_map (_Flat_map_impl::_M_try_emplace): Forward | |
| instead of unconditionally moving __k when inserting it. | |
| * testsuite/23_containers/flat_map/1.cc (test10): New test. | |
| 2026-05-21 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2026-05-18 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/mdspan (layout_left_padded::is_exhaustive) | |
| (layout_righ_padded::is_exhaustive): Mark as const. | |
| * testsuite/23_containers/mdspan/layouts/mapping.cc: Test noexcept and | |
| const-invocability for is_exhaustive, is_strided, and is_unique. | |
| * testsuite/23_containers/mdspan/layouts/padded.cc: Test is_exhaustive on | |
| const mapping.. | |
| * testsuite/23_containers/mdspan/layouts/stride.cc: Likewise. | |
| * testsuite/23_containers/mdspan/mdspan.cc: Checks const-invocability | |
| for is_exhaustive, is_strided, is_unique. | |
| 2026-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++20/tzdata.zi: Import new file from 2026b release. | |
| 2026-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-18 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: | |
| Reduce iterations for debug mode. | |
| 2026-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/125369 | |
| * include/bits/chrono_io.h (__detail::_Parser::operator()): | |
| Check for errors when parsing digits for a %z format. | |
| * testsuite/std/time/parse/125369.cc: New test. | |
| 2026-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-13 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/std/time/clock/local/io.cc: Call test_format. | |
| 2026-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-07 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/78302 | |
| PR libstdc++/71301 | |
| * include/std/tuple [C++20] (tuple(tuple&&)): Add | |
| requires-clause. | |
| * testsuite/20_util/tuple/cons/78302.cc: New test. | |
| 2026-05-18 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-18 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/23_containers/bitset/lwg4294.cc: Move to... | |
| * testsuite/20_util/bitset/cons/lwg4294.cc: ...here. | |
| 2026-05-16 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-16 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/125312 | |
| * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Copy header | |
| into cwd instead of including it via an absolute path. | |
| * configure: Regenerate. | |
| 2026-05-16 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-04-24 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++20/tzdata.zi: Import new file from 2026a release. | |
| 2026-05-16 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-13 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/shared_ptr_atomic.h: Remove trailing whitespace. | |
| 2026-05-05 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-05 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/109965 | |
| * doc/doxygen/mainpage.html: Link to topics.html instead of | |
| modules.html | |
| 2026-05-05 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-05 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/unique_ptr.h (unique_ptr::_Nothrow_deref): New | |
| helper for pre-C++20. | |
| (unique_ptr::operator*): Either constrain or use _Nothrow_deref. | |
| * testsuite/20_util/unique_ptr/lwg4324.cc: New test. | |
| 2026-05-05 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-05-01 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/121919 | |
| * include/bits/ranges_algo.h (__sample_fn, __shuffle_fn): Use | |
| decltype(__g()) instead of remove_reference_t<_G>::result_type. | |
| * include/bits/uniform_int_dist.h | |
| (uniform_int_distribution::operator()): Use decltype(__urng()) | |
| instead of _UniformRandomBitGenerator::result_type | |
| (uniform_int_distribution::__generate_impl): Likewise. | |
| * testsuite/25_algorithms/sample/121919.cc: New test. | |
| * testsuite/25_algorithms/shuffle/121919.cc: New test. | |
| 2026-04-30 Felix Morgner <felix.morgner@gmail.com> | |
| Backported from master: | |
| 2026-04-30 Felix Morgner <felix.morgner@gmail.com> | |
| PR libstdc++/125112 | |
| * include/Makefile.am: Move bits/binders.h from bits_headers to | |
| bits_freestanding. | |
| * include/Makefile.in: | |
| 2026-04-30 Jakub Jelinek <jakub@redhat.com> | |
| Backported from master: | |
| 2026-04-27 Jakub Jelinek <jakub@redhat.com> | |
| PR libstdc++/125024 | |
| * include/std/type_traits (std::is_scalar): For | |
| __cpp_impl_reflection >= 202506L handle is_reflection types as | |
| scalar. | |
| * testsuite/20_util/is_scalar/reflection.cc: New test. | |
| 2026-04-30 Release Manager | |
| * GCC 16.1.0 released. | |
| 2026-04-29 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/chrono (chrono::__detail::__get_leap_second_info): | |
| Update expiry date for leap seconds list. | |
| * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds): | |
| Likewise. | |
| 2026-04-28 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-04-28 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/xml/manual/status_cxx2023.xml: Update status table. | |
| * doc/html/manual/status.html: Regenerate. | |
| 2026-04-28 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2026-04-28 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/xml/manual/using.xml (Flags): Update description of | |
| default value for -std option. | |
| * doc/html/manual/using.html: Regenerate. | |
| 2026-04-22 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/html/manual/status.html: Regenerate. | |
| * doc/xml/manual/status_cxx1998.xml: Replace references to | |
| mainline GCC. | |
| * doc/xml/manual/status_cxx2011.xml: Likewise. | |
| * doc/xml/manual/status_cxx2014.xml: Likewise. | |
| * doc/xml/manual/status_cxx2017.xml: Likewise. | |
| * doc/xml/manual/status_cxx2020.xml: Likewise. | |
| * doc/xml/manual/status_cxx2023.xml: Likewise. | |
| * doc/xml/manual/status_cxxtr1.xml: Likewise. | |
| * doc/xml/manual/status_cxxtr24733.xml: Likewise. | |
| 2026-04-22 Jakub Jelinek <jakub@redhat.com> | |
| * include/bits/version.def (reflection): Bump 202506L to 202603L | |
| for both v and in extra_cond. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/meta: Compare __glibcxx_reflection against | |
| 202603L rather than 202506L. | |
| * src/c++23/std.cc.in: Likewise. | |
| 2026-04-22 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/align.h (is_sufficiently_aligned): Mandate | |
| that _Align is power of two. | |
| * testsuite/20_util/is_sufficiently_aligned/2_neg.cc: New test. | |
| 2026-04-22 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/mdspan (mdspan): Remove reference from | |
| _AccessorType::data_handle_type parameteter of deduction | |
| guide. | |
| * testsuite/23_containers/mdspan/mdspan.cc: New test. | |
| 2026-04-22 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/chrono_io.h: Add comment for LWG3831. | |
| * include/bits/print.h: Add comment for LWG4549. | |
| * include/std/condition_variable: Add comment for LWG3504. | |
| * include/std/format: Add comments for LWG4522. | |
| * include/std/mdspan: Add comment for LWG4314. | |
| * include/std/optional: Add comment for LWG2746. | |
| 2026-04-21 Nathan Myers <ncm@cantrip.org> | |
| * include/bits/alloc_traits.h (allocate_at_least): | |
| Take allocator argument by reference, per Standard. | |
| 2026-04-21 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++23/print.cc (__open_terminal): Fix comment. | |
| 2026-04-21 Marek Polacek <polacek@redhat.com> | |
| PR c++/124950 | |
| * include/std/meta (std::meta::data_member_options): Initialize | |
| alignment, bit_width, and annotations members. | |
| 2026-04-21 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120527 | |
| * include/bits/atomic_wait.h [__OpenBSD__ || __DragonFly]: Use | |
| unsigned int for __platform_wait_t. | |
| 2026-04-21 Jonathan Wakely <jwakely@redhat.com> | |
| Iain Sandoe <iain@sandoe.co.uk> | |
| PR libstdc++/120527 | |
| * include/bits/atomic_wait.h: | |
| * src/c++20/atomic.cc (__ulock_wait): Enable supported Darwin versions. | |
| (__ulock_wake): Likewise. | |
| (UL_COMPARE_AND_WAIT): New. | |
| (UL_COMPARE_AND_WAIT64): New. | |
| (ULF_WAKE_ALL): New. | |
| (_GLIBCXX_HAVE_PLATFORM_WAIT): Enable for suppported Darwin versions. | |
| 2026-04-21 Matthias Kretz <m.kretz@gsi.de> | |
| * include/bits/simd_details.h (__value_preserving_cast): Remove. | |
| * include/bits/simd_mask.h (basic_mask): Replace plain 0 and 1 | |
| literals with cw<0> and cw<1>. Replace explicit basic_vec | |
| construction from 0 and 1 with default init and broadcast from | |
| _Up(1). | |
| (_M_to_uint): Replace 1 with cw<1>. | |
| * include/bits/simd_vec.h (basic_vec): Remove consteval | |
| broadcast overload. Remove explicit broadcast from | |
| non-value-preserving types. | |
| * testsuite/std/simd/arithmetic.cc: Replace ill-formed integer | |
| literals with explicit cast to T or use cw. | |
| * testsuite/std/simd/mask.cc: Likewise. | |
| * testsuite/std/simd/simd_alg.cc: Likewise. | |
| * testsuite/std/simd/traits_common.cc: Adjust for resulting | |
| traits changes. | |
| * testsuite/std/simd/traits_math.cc: Likewise. | |
| 2026-04-21 Patrick Palka <ppalka@redhat.com> | |
| PR c++/124910 | |
| * include/std/optional (_Optional_payload_base::_M_destroy): | |
| Restrict r16-8748 workaround to Clang, and adjust comment. | |
| 2026-04-20 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/print.h: Fix spelling of macro. | |
| 2026-04-18 Patrick Palka <ppalka@redhat.com> | |
| PR c++/124910 | |
| * include/std/optional (_Optional_payload_base::_M_destroy) | |
| [__cpp_lib_optional >= 202106L]: During constant evaluation, | |
| after invoking destructor of _M_value, use construct_at to | |
| activate _M_empty. | |
| * testsuite/20_util/optional/constexpr/124910.cc: New test. | |
| 2026-04-17 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/124890 | |
| PR libstdc++/119714 | |
| PR libstdc++/112490 | |
| * include/bits/indirect.h (indirect::operator==): Replace | |
| non-dependent std::indirect function parameter with a | |
| dependent one of type indirect<_Vp> where _Vp matches _Tp. | |
| * testsuite/std/memory/indirect/124890.cc: New test. | |
| 2026-04-17 Jakub Jelinek <jakub@redhat.com> | |
| * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update. | |
| * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. | |
| * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. | |
| * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. | |
| * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Update. | |
| * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Update. | |
| * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update. | |
| 2026-04-17 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/print.h (_File_sink): Add comments. | |
| 2026-04-17 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124410 | |
| * doc/html/*: Regenerate. | |
| * doc/xml/manual/using.xml (_GLIBCXX_NO_INLINE_PRINT): Document | |
| macro. | |
| * include/Makefile.am: Add bits/print.h and bits/ostream_print.h | |
| headers. | |
| * include/Makefile.in: Regenerate. | |
| * include/std/ostream (vprint_nonunicode, vprint_unicode): Move | |
| definitions to new bits/ostream_print.h header. | |
| * include/std/print (__format::_File_sink, vprint_nonunicode) | |
| (vprint_nonunicode_buffered, vprint_unicode) | |
| (vprint_unicode_buffered): Move definitions to new bits/print.h | |
| header. | |
| * src/c++23/print.cc: Include new headers to define symbols for | |
| inline print functions. | |
| * include/bits/ostream_print.h: New file. | |
| * include/bits/print.h: New file. | |
| 2026-04-17 Jonathan Wakely <jwakely@redhat.com> | |
| * 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. | |
| 2026-04-17 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/i386-linux-gnu/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/powerpc64-linux-gnu/baseline_symbols.txt: Update. | |
| * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update. | |
| * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. | |
| 2026-04-17 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/chrono: Improve Doxygen comments. | |
| 2026-04-17 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124268 | |
| * config/abi/pre/gnu.ver: Export symbols. | |
| * src/Makefile.am: Add libmodulesconvenience.la to libstdc++ | |
| link. | |
| * src/Makefile.in: Regenerate. | |
| * src/c++23/Makefile.am: Create libmodulesconvenience.la | |
| and populate it with std.o and std.compat.o interface units, | |
| with empty fallback objects if compiling the interface units | |
| fails. Add clean-local target. | |
| * src/c++23/Makefile.in: Regenerate. | |
| 2026-04-17 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124540 | |
| * testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc: | |
| Skip long double tests for IBM long double format. | |
| 2026-04-16 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * config/abi/pre/gnu.ver (GLIBCXX_3.4): Exclude exports | |
| of std::basic_fo* (matching basic_format_context). | |
| (GLIBCXX_3.4.35): Export __format::__do_vformat_to | |
| specializations for _Sink_iter and char/wchar_t. | |
| * include/std/format: (__format::__do_vformat_to): | |
| Extract overload accepting _Sink_iter and provide extern | |
| explicit specialization for char/wchar_t in C++20 mode. | |
| * src/c++20/Makefile.am: Add format-inst.cc. | |
| * src/c++20/Makefile.in: Regenerate. | |
| * src/c++20/format-inst.cc: New file defining explicit | |
| instantiation. | |
| 2026-04-15 Elena Tyuleneva <elena.tyuleneva@intel.com> | |
| * include/bits/random.tcc (philox_engine::_M_transtiion): Fix | |
| counter increment to propagate carry correctly. | |
| * testsuite/26_numerics/random/philox_engine/operators/counter_carry.cc: | |
| New test. | |
| 2026-04-15 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/random.tcc (philox_engine::_M_transition): Cast | |
| intermediate values to result_type for n=2 case. | |
| 2026-04-15 Matthias Kretz <m.kretz@gsi.de> | |
| * include/bits/simd_vec.h (basic_vec deduction guide): Explicit | |
| cast to simd-size-type from range size type. | |
| 2026-04-15 Jakub Jelinek <jakub@redhat.com> | |
| * include/std/meta (define_static_object): Adjust for LWG4483 changes | |
| - handle unions and arrays differently. | |
| 2026-04-14 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/version.def (stdbit_h, stdckdint_h): Define. | |
| * include/bits/version.h: Regenerate. | |
| * include/c_compatibility/stdbit.h (__cpp_lib_stdbit_h): Define | |
| and use it in guards. | |
| * include/c_compatibility/stdckdint.h (__cpp_lib_stdckdint_h): | |
| Define and use it in guards. | |
| 2026-04-14 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/std/format/fill.cc: New test. | |
| * testsuite/std/format/fill_nonunicode.cc: New test. | |
| 2026-04-14 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/20_util/constant_wrapper/generic.cc: Replace | |
| std::std::invalid_argument with NegativeArgument and | |
| removed <stdexcept> include. | |
| 2026-04-14 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/version.def (constant_wrapped): Updated to 202603L. | |
| * include/bits/version.h: Regenerate. | |
| * include/bits/utility.h (_CwOperators::operator()) | |
| (_CwOperators:operator[]): Delete, they are now provided by... | |
| (constant_wrapper::operator(), constant_wrapper::operator[]): | |
| Define. | |
| * testsuite/20_util/constant_wrapper/generic.cc: Add additional | |
| test cases for invoke and subscript. | |
| * testsuite/20_util/constant_wrapper/version.cc: Update tested | |
| value. | |
| 2026-04-14 Matthias Wippich <mfwippich@gmail.com> | |
| Ivan Lazaric <ivan.lazaric1@gmail.com> | |
| * include/bits/utility.h (std::tuple_size, std::tuple_element): | |
| Add partial specializations for integer_sequence. | |
| (std::get(integer_sequence<_Tp, _Idx...>)): Define. | |
| * include/bits/version.def (integer_sequence): Bump to 202511L. | |
| * include/bits/version.h: Regenerate. | |
| * testsuite/20_util/integer_sequence/tuple_access.cc: New test. | |
| * testsuite/20_util/integer_sequence/tuple_access_neg.cc: New test. | |
| * testsuite/experimental/feat-cxx14.cc: Updated check for | |
| __cpp_lib_integer_sequence value. | |
| 2026-04-13 François Dumont <frs.dumont@gmail.com> | |
| * include/bits/hashtable.h: Replace usages of std::__addressof with | |
| std::addressof. | |
| * include/bits/hashtable_policy.h: Likewise. | |
| 2026-04-13 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/version.def (replaceable_contract_violation_handler) | |
| [(__cplusplus > 202302L) && (__cpp_contracts >= 202502L)]: | |
| Define to 202603 for ELF targets, and 0 otherwise. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/contracts: Define | |
| __cpp_lib_replaceable_contract_violation_handler. | |
| 2026-04-13 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * config/abi/pre/gnu.ver (GLIBCXX_3.4): Remove _ZNKSs11_[MS]_* | |
| and _ZNKSbIwSt11char_traitsIwESaIwEE11_[MS]_* patterns. | |
| 2026-04-13 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/version.def (function_ref): Bump to 202603L. | |
| * include/bits/version.h: Regenerate. | |
| * testsuite/20_util/function_ref/assign.cc: Remove repeated | |
| check for feature test macro. | |
| * testsuite/20_util/function_ref/cons.cc: Updated checked | |
| value. | |
| 2026-04-10 Patrick Palka <ppalka@redhat.com> | |
| * include/std/ranges (lazy_split_view::begin): Add | |
| const _Pattern constraint on const overload as per LWG 3599. | |
| (lazy_split_view::end): Likewise. | |
| * testsuite/std/ranges/adaptors/lazy_split.cc (test14): New | |
| test. | |
| 2026-04-10 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/version.def (ranges_to_input): Rename to... | |
| (ranges_as_input): Rename from ranges_as_input. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/ranges (ranges::to_input_view, views::to_input) | |
| (__detail::__can_to_input, views::_ToInput): Rename to... | |
| (ranges::as_input_view, views::as_input, __detail::__can_as_input) | |
| (views::_AsInput): Rename from above... | |
| * src/c++23/std.cc.in: Rename views::to_input and to_input_view | |
| export. | |
| * testsuite/25_algorithms/contains/1.cc: Replace views::to_input | |
| with views::as_input. | |
| * testsuite/std/ranges/adaptors/to_input/1.cc: Move to... | |
| * testsuite/std/ranges/adaptors/as_input/1.cc: ...here, and replace | |
| views::to_input with views::as_input. | |
| 2026-04-10 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/version.def (span_initializer_list): Remove. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/span (span::span(initializer_list<value_type>)): | |
| Remove. | |
| * testsuite/23_containers/span/init_list_cons.cc: Removed. | |
| * testsuite/23_containers/span/init_list_cons_neg.cc: Removed. | |
| * testsuite/23_containers/inplace_vector/copy.cc: Replace span | |
| with initializer_list in eq helper. | |
| * testsuite/23_containers/inplace_vector/erasure.cc: Likewise. | |
| * testsuite/23_containers/inplace_vector/move.cc: Likewise. | |
| 2026-04-10 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/ranges_uninitialized.h | |
| (__uninitialized_fill_fn::operator()) | |
| (__uninitialized_fill_fn_n::operator()): Add default argument | |
| for _Tp parameter. | |
| * include/bits/stl_uninitialized.h (std::unitialized_fill) | |
| (std::unitialized_fill_n): Likewise. | |
| * include/pstl/glue_memory_defs.h (std::unitialized_fill) | |
| (std::unitialized_fill_n): Likewise. | |
| * include/bits/version.def (algorithm_default_value_type): | |
| Bump to 202603. | |
| * include/bits/version.h: Regenerate. | |
| * testsuite/25_algorithms/default_template_value.cc: | |
| Test for new algorithms. | |
| 2026-04-08 Matthias Kretz <m.kretz@gsi.de> | |
| Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/funcref_impl.h (function_ref::function_ref): | |
| Change nontype_t parameter to constant_wrapper, and adjust | |
| accordingly. Add static_assert detecting ambigous semantics. | |
| (function_ref::operator=): Detect constant_wrapper rather than | |
| nontype_t. | |
| * include/bits/funcwrap.h (function_ref): Change nontype_t | |
| parameter to constant_wrapper in deduction guides. | |
| * include/bits/utility.h (std::nontype_t, std::nontype) | |
| (std::__is_nontype_v): Remove. | |
| (std::__is_constant_wrapper_v): Define. | |
| * src/c++23/std.cc.in (std::nontype_t, std::nontype): | |
| Remove exports. | |
| * testsuite/20_util/function_ref/cw_cons_neg.cc: New tests | |
| for ambiguity check. | |
| * testsuite/20_util/function_ref/assign.cc: Replace nontype_t | |
| with constant_wrapper and nontype with std::cw. | |
| * testsuite/20_util/function_ref/call.cc: Likewise. | |
| * testsuite/20_util/function_ref/cons.cc: Likewise. | |
| * testsuite/20_util/function_ref/cons_neg.cc: Likewise. | |
| * testsuite/20_util/function_ref/dangling.cc: Likewise. | |
| * testsuite/20_util/function_ref/deduction.cc: Likewise. | |
| * testsuite/20_util/function_ref/mutation.cc: Likewise. | |
| 2026-04-08 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/utility.h (std::_CwFixedValue, std::_ConstExprParam) | |
| (std::_CwOperators, std::constant_wrapper): Moved from... | |
| * include/std/type_traits (std::_CwFixedValue, std::_ConstExprParam) | |
| (std::_CwOperators, std::constant_wrapper): Moved to bits/utility.h. | |
| Disable __cpp_lib_constant_wrapper defintion. | |
| * include/std/utility: Define __cpp_lib_constant_wrapper. | |
| * testsuite/20_util/constant_wrapper/adl.cc: Updated header includes. | |
| * testsuite/20_util/constant_wrapper/ex.cc: Likewise. | |
| * testsuite/20_util/constant_wrapper/generic.cc: Likewise. | |
| * testsuite/20_util/constant_wrapper/instantiate.cc: Likewise. | |
| * testsuite/20_util/constant_wrapper/op_comma_neg.cc: Likewise. | |
| * testsuite/20_util/constant_wrapper/other_wrappers.cc: Likewise. | |
| * testsuite/20_util/constant_wrapper/version.cc: Likewise. | |
| 2026-04-08 Jakub Jelinek <jakub@redhat.com> | |
| * include/std/type_traits (std::is_consteval_only, | |
| std::is_consteval_only_v): Remove. | |
| * include/std/meta (std::meta::is_consteval_only_type): Remove. | |
| * src/c++23/std.cc.in: Don't export std::is_consteval_only, | |
| std::is_consteval_only_v and std::meta::is_consteval_only_type. | |
| * testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc: | |
| Remove. | |
| * testsuite/20_util/is_consteval_only/requirements/typedefs.cc: | |
| Remove. | |
| * testsuite/20_util/is_consteval_only/value.cc: Remove. | |
| * testsuite/20_util/variable_templates_for_traits.cc: Remove | |
| is_consteval_only_v tests. | |
| 2026-04-07 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * config/abi/pre/gnu.ver (GLIBCXX_3.4): Make string exports | |
| less greedy. | |
| (GLIBCXX_3.4.35): Export basic_string default constructor and | |
| starts_with and ends_with members. | |
| * include/bits/basic_string.h: Update __cpluplus checks for C++20. | |
| * include/bits/cow_string.h: Likewise. | |
| * include/bits/basic_string.tcc: Declare explicit instantiations | |
| for C++20 as well as earlier dialects. | |
| * src/c++20/Makefile.am: Add cow-string-inst.cc and | |
| string-inst.cc source files. | |
| * src/c++20/Makefile.in: Regenerate. | |
| * src/c++20/string-inst.cc: New file defining explicit | |
| instantiations for basic_string default constructor and starts_with, | |
| ends_with methods added in C++20 | |
| * src/c++20/cow-string-inst.cc: Version of above for cow-stings. | |
| 2026-04-07 Matthias Kretz <m.kretz@gsi.de> | |
| PR libstdc++/124722 | |
| * testsuite/std/simd/traits_impl.cc (test): Make test() a | |
| function template and instantiate it. | |
| 2026-04-06 Matthias Kretz <m.kretz@gsi.de> | |
| PR libstdc++/124722 | |
| * include/bits/version.def: Check for __SSE2__ rather than x86. | |
| * include/bits/version.h: Regenerate. | |
| * testsuite/std/simd/arithmetic.cc: Build with -msse2. | |
| * testsuite/std/simd/arithmetic_expensive.cc: Likewise. | |
| * testsuite/std/simd/creation.cc: Likewise. | |
| * testsuite/std/simd/creation_expensive.cc: Likewise. | |
| * testsuite/std/simd/loads.cc: Likewise. | |
| * testsuite/std/simd/loads_expensive.cc: Likewise. | |
| * testsuite/std/simd/mask.cc: Likewise. | |
| * testsuite/std/simd/mask2.cc: Likewise. | |
| * testsuite/std/simd/mask2_expensive.cc: Likewise. | |
| * testsuite/std/simd/mask_expensive.cc: Likewise. | |
| * testsuite/std/simd/reductions.cc: Likewise. | |
| * testsuite/std/simd/reductions_expensive.cc: Likewise. | |
| * testsuite/std/simd/shift_left.cc: Likewise. | |
| * testsuite/std/simd/shift_left_expensive.cc: Likewise. | |
| * testsuite/std/simd/shift_right.cc: Likewise. | |
| * testsuite/std/simd/shift_right_expensive.cc: Likewise. | |
| * testsuite/std/simd/simd_alg.cc: Likewise. | |
| * testsuite/std/simd/simd_alg_expensive.cc: Likewise. | |
| * testsuite/std/simd/sse_intrin.cc: Likewise. | |
| * testsuite/std/simd/stores.cc: Likewise. | |
| * testsuite/std/simd/stores_expensive.cc: Likewise. | |
| * testsuite/std/simd/traits_common.cc: Likewise. | |
| * testsuite/std/simd/traits_math.cc: Likewise. | |
| 2026-04-04 Matthias Kretz <m.kretz@gsi.de> | |
| PR libstdc++/124722 | |
| * testsuite/std/simd/traits_impl.cc: Add __STDCPP_FLOAT16_T__ | |
| and __STDCPP_BFLOAT16_T__ guards. | |
| 2026-04-04 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/20_util/optional/ref/access.cc: Provide | |
| definition for foo(). | |
| 2026-04-03 Jakub Jelinek <jakub@redhat.com> | |
| * include/bits/version.def (is_structural): New. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/type_traits (__glibcxx_want_is_structural): Define. | |
| (std::is_structural): New type trait. | |
| (std::is_structural_v): New type trait variable template. | |
| * include/std/meta (std::meta::is_structural_type): New declaration. | |
| * src/c++23/std.cc.in: Export std::is_structural, std::is_structural_v | |
| and std::meta::is_structural_type. | |
| * testsuite/20_util/is_structural/requirements/explicit_instantiation.cc: New test. | |
| * testsuite/20_util/is_structural/requirements/typedefs.cc: New test. | |
| * testsuite/20_util/is_structural/value.cc: New test. | |
| * testsuite/20_util/variable_templates_for_traits.cc: Test | |
| is_structural_v. | |
| 2026-04-03 Jakub Jelinek <jakub@redhat.com> | |
| * libsupc++/exception_ptr.h (std::make_exception_ptr): Use | |
| __builtin_current_exception() instead of current_exception() if | |
| the builtin exists. | |
| * libsupc++/nested_exception.h: Revert 2026-01-07 and 2025-07-10 | |
| changes. | |
| * testsuite/18_support/exception_ptr/exception_ptr_cast.cc (test01): | |
| Use __builtin_current_exception instead of std::current_exception | |
| if __has_builtin(__builtin_current_exception). Otherwise don't | |
| try to constant evaluate test01. | |
| 2026-04-02 Patrick Palka <ppalka@redhat.com> | |
| * include/std/ranges (zip_view::size): Uglify 'sizes' | |
| parameter. | |
| 2026-04-02 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/version.def (inplace_vector): Bump to 202603. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/inplace_vector (inplace_vector::try_emplace_back) | |
| (inplace_vector::try_push_back): Change return type to optional<_Tp&> | |
| and adjust implementation accordingly. | |
| (inplace_vector::try_append_range): Remove. | |
| * include/debug/inplace_vector (inplace_vector::try_emplace_back) | |
| (inplace_vector::try_push_back, inplace_vector::try_append_range): | |
| Likewise. | |
| * testsuite/23_containers/inplace_vector/modifiers/single_insert.cc: | |
| Updated check for the optional<T&> return. Added test for type | |
| convertible to optional<T&> | |
| * testsuite/23_containers/inplace_vector/debug/invalidation/try_emplace_back.cc: | |
| Use has_value() to check if engaged optional is returned. | |
| * testsuite/23_containers/inplace_vector/debug/invalidation/try_push_back.cc: | |
| Likewise. | |
| * testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc: | |
| Remove try_append_range tests. | |
| * testsuite/23_containers/inplace_vector/debug/invalidation/try_append_range.cc: | |
| Removed. | |
| * testsuite/23_containers/inplace_vector/version.cc: Updated expected | |
| feature test macro value. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/version: Add Doxygen documentation comment. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/regex_constants.h (format_default): Simplify | |
| description of $n in Doxygen comment. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/stl_pair.h (pair): Adjust Doxygen comment. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/chrono.h (floor, ceil, round): Fix Doxygen | |
| comments to use correct parameter name and describe return value | |
| more accurately. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/unordered_map.h (unordered_map::erase(K&&)): | |
| Change parameter name to __x. | |
| * include/bits/unordered_set.h (unordered_set::erase(K&&)) | |
| (unordered_multiset::erase(K&&)): Likewise. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/ostream.h (operator<<): Do not include deleted | |
| overloads in @{ group. | |
| * include/bits/stl_queue.h (priority_queue): Add @{ group around | |
| constructors. | |
| * include/bits/unordered_map.h: Remove stray @{. Move #endif to | |
| encompass @} that is within the #if group. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/move.h (swap): Remove @return from Doxygen | |
| comment. | |
| * include/bits/stl_algo.h (inplace_merge, shuffle) | |
| (random_shuffle, partial_sort, nth_element, sort) | |
| (stable_sort): Likewise. | |
| * include/bits/stl_algobase.h (iter_swap, fill): Likewise. | |
| * include/bits/stl_deque.h (_Deque_base::_M_initialize_map) | |
| (deque::_M_range_initialize, deque::_M_fill_initialize): | |
| Likewise. | |
| * include/bits/stl_iterator_base_funcs.h (advance): Likewise. | |
| * include/bits/stl_numeric.h (iota): Likewise. | |
| * include/bits/stl_tempbuf.h (return_temporary_buffer): | |
| Likewise. | |
| * include/bits/stl_uninitialized.h (uninitialized_fill): | |
| Likewise. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp: | |
| Add missing #endif. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/doxygen/doxygroups.cc: Define variable_templates group. | |
| * include/bits/binders.h: Fix @file name. | |
| * include/bits/formatfwd.h: Add missing @cond | |
| * include/bits/forward_list.h: Add closing backtick in comment. | |
| * include/bits/out_ptr.h (out_ptr, inout_ptr): Fix names in | |
| @param comments. | |
| * include/bits/regex_constants.h: Escape backtick in comment. | |
| * include/bits/stl_map.h: Add missing @{. | |
| * include/bits/stl_set.h: Likewise. | |
| * include/bits/stl_pair.h: Move declaration of complex into #if | |
| group where it's used. Fix nesting of @cond and @endcond in #if | |
| groups. | |
| * include/std/functional: Move @cond inside #if group. | |
| * include/std/type_traits: Likewise. | |
| * libsupc++/exception: Fix typo'd backtick. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/doxygen/user.cfg.in (INPUT): Add <debugging> header. | |
| (EXCLUDE_SYMBOLS): Exclude include guards and other internal | |
| macros from generated documentation. | |
| (PREDEFINED): Update __cplusplus to C++26 value. Remove | |
| unnecessary spaces in macro expansions. Add missing | |
| _GLIBCXX_ABI_TAG_CXX11 macro. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/doxygen/user.cfg.in: Update Doxygen config. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/stl_map.h (map::try_emplace): Move #endif and use | |
| Doxygen's @{ to document all three overloads. | |
| (map::insert_or_assign): Use relevant feature test macro. | |
| 2026-04-02 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/version.def (submdspan): Update to 202603, | |
| and list all papers in comment. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/mdspan: Replaced std::strided_stride to | |
| std::extent_slice, __is_strided_slice to __is_extent_slice, | |
| _SliceKind::__unit_strided_slice to __unit_stride_slice. | |
| * src/c++23/std.cc.in (std::extent_slice): Replaced | |
| std::strided_slice to std::extent_slice. | |
| * testsuite/23_containers/mdspan/submdspan/canonical_slices.cc: | |
| Replaced all occurences of strided_slice to extent_slice. | |
| * testsuite/23_containers/mdspan/submdspan/canonical_slices_neg.cc: | |
| Likewise. | |
| * testsuite/23_containers/mdspan/submdspan/strided_slice.cc: Move to... | |
| * testsuite/23_containers/mdspan/submdspan/extent_slice.cc: ...here | |
| and handle rename. | |
| * testsuite/23_containers/mdspan/submdspan/strided_slice_neg.cc: Move to... | |
| * testsuite/23_containers/mdspan/submdspan/extent_slice_neg.cc: ...here | |
| and handle rename. | |
| * testsuite/23_containers/mdspan/submdspan/selections/testcases.h: | |
| Replaced all occurences of strided_slice to extent_slice. | |
| * testsuite/23_containers/mdspan/submdspan/subextents.cc: Likewise. | |
| * testsuite/23_containers/mdspan/submdspan/subextents_neg.cc: | |
| Likewise. | |
| * testsuite/23_containers/mdspan/submdspan/submdspan_mapping.cc: | |
| Likewise. | |
| * testsuite/23_containers/mdspan/submdspan/submdspan_neg.cc: Likewise. | |
| 2026-04-02 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/mdspan (__mdspan::__static_slice_extent) | |
| (__mdspan::__dynamic_slice_extent): Return unmodified extent | |
| value for strided_slice. | |
| (__mdspan::__substrides_generic, __mdspan::__substrides_standardized): | |
| Multipliy stride, if more than one element is requested. | |
| (__mdspan::__canonical_range_slice): Define. | |
| (__mdspan::__slice_cast): Use __canonical_range_slice for range_slice | |
| and two elements tuples. | |
| (__mdspan::__check_inrange_index): Define. | |
| (__mdspan::__check_valid_slice): Validate if slice.offset + | |
| (slice.extent - 1) * slice.stride fits into extent of given | |
| dimension. Check stride if slice.extent > 1. | |
| * testsuite/23_containers/mdspan/submdspan/canonical_slices.cc: | |
| Add test for range_slice. | |
| * testsuite/23_containers/mdspan/submdspan/canonical_slices_neg.cc: | |
| Add tests validating new conditions. | |
| * testsuite/23_containers/mdspan/submdspan/selections/testcases.h: | |
| Adjusted for change of meaing of strided_slice::extent. | |
| * testsuite/23_containers/mdspan/submdspan/subextents.cc: | |
| Adjusted for change of meaing of strided_slice::extent. And expanded | |
| range_slice tests. | |
| * testsuite/23_containers/mdspan/submdspan/subextents_neg.cc: | |
| Adjusted for change of meaing of strided_slice::extent. | |
| * testsuite/23_containers/mdspan/submdspan/submdspan_neg.cc: | |
| Adjust test for stride value. | |
| 2026-04-02 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * src/c++23/std.cc.in (range_slice): Export. | |
| * include/std/mdspan (range_slice, __mdspan::__is_range_slice): | |
| Define. | |
| (__mdspan::__slice_cast): Handle strided_slice. | |
| * testsuite/23_containers/mdspan/submdspan/subextents.cc: | |
| Sanity tests for range_slice. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * Makefile.am (new-abi-baseline): New target. | |
| * Makefile.in: Regenerate. | |
| 2026-04-02 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/format (dynamic_format): Check new value for | |
| feature test macro. | |
| 2026-04-02 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * src/c++23/std.cc.in (std::saturatint_cast): Fixed typo... | |
| (std::saturating_cast): ...by exporting this. | |
| 2026-04-02 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * src/c++23/std.cc.in (std::runtime_format, std::add_sat) | |
| (std::sub_sat, std::mul_sat, std::div_sat, std::saturate_cast): | |
| Replace exports with... | |
| (std::dynamic_format, std::saturating_add, std::saturating_sub) | |
| (std::saturating_mul, std::saturating_div, std::saturating_cast): | |
| ...exports of new names. | |
| 2026-04-01 Jakub Jelinek <jakub@redhat.com> | |
| * include/std/meta (std::meta::__detail::__statically_sized): New | |
| concept. | |
| (std::meta::define_static_array): Change return type to auto. If | |
| __statically_sized<_Rg>, return span with ranges::size(__r) as | |
| second argument. | |
| 2026-04-01 François Dumont <frs.dumont@gmail.com> | |
| Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/cow_string.h | |
| (basic_string::replace(iterator, iterator, _InputIte, _InputIte)): Move | |
| __glibcxx_requires_valid_range to... | |
| (basic_string::_M_replace_dispatch(iterator, iterator, _InputIte, | |
| _InputIte, __fase_type)): ...here. | |
| * testsuite/21_strings/basic_string/debug/append_neg.cc: New test case. | |
| * testsuite/21_strings/basic_string/debug/assign_neg.cc: New test case. | |
| * testsuite/21_strings/basic_string/debug/construct_neg.cc: New test case. | |
| * testsuite/21_strings/basic_string/debug/insert_neg.cc: New test case. | |
| * testsuite/21_strings/basic_string/debug/replace_neg.cc: New test case. | |
| 2026-04-01 Patrick Palka <ppalka@redhat.com> | |
| * include/std/ranges (iota_view::_Sentinel): Remove _M_equal and | |
| _M_distance_from. Inline logic into friend operators. | |
| (basic_istream_view::_Iterator): Remove _M_at_end. Inline logic | |
| into operator==. | |
| (transform_view::_Sentinel): Remove __distance_from and __equal. | |
| Inline logic into friend operators. | |
| (join_view::_Sentinel): Remove __equal. Inline logic into operator==. | |
| (lazy_split_view::_OuterIter): Remove __at_end. Inline logic into | |
| operator==. | |
| (split_view::_Sentinel): Remove _M_equal. Inline logic into operator==. | |
| (elements_view::_Sentinel): Remove _M_equal and _M_distance_from. | |
| Inline logic into friend operators. | |
| 2026-04-01 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/version.def (ranges_filter): Define for C++20. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/ranges: Provide __cpp_lib_ranges_filter. | |
| (filter_view::_Iterator): Add _Const template parameter. | |
| (filter_view::_Iterator::_S_iter_concept): Return | |
| input_iterator_tag if _Const. | |
| (filter_view::_Iterator::_Parent): New. | |
| (filter_view::_Iterator::_Base): New. | |
| (filter_view::_Iterator::_Vp_iter): Replace with ... | |
| (filter_view::_Iterator::_Base_iter): ... this. | |
| (filter_view::_Iterator::_M_current): Adjust to consider _Const. | |
| (filter_view::_Iterator::_M_parent): Likewise. | |
| (filter_view::_Iterator::value_type): Likewise. | |
| (filter_view::_Iterator::difference_type): Likewise. | |
| (filter_view::_Iterator::_Iterator): Likewise. Add | |
| const-converting overload. | |
| (filter_view::_Iterator::base): Adjust to consider _Const. | |
| (filter_view::_Iterator::operator*): Likewise. | |
| (filter_view::_Iterator::operator->): Likewise. | |
| (filter_view::_Iterator::operator++): Likewise. | |
| (filter_view::_Iterator::operator--): Likewise. | |
| (filter_view::_Iterator::iter_move): Likewise. | |
| (filter_view::_Iterator::iter_swap): Likewise. | |
| (filter_view::_Sentinel): Add _Const template parameter. | |
| (filter_view::_Sentinel::_Parent): New. | |
| (filter_view::_Sentinel::_Base): New. | |
| (filter_view::_Sentinel::_M_end): Adjust to consider _Const. | |
| (filter_view::_Sentinel::_Sentinel): Likewise. Add | |
| const-converting overload. | |
| (filter_view::_Sentinel::base): Adjust to consider _Const. | |
| (filter_view::_Sentinel::operator==): Likewise. Inline the | |
| helper member function __equal. | |
| (filter_view::begin): Adjust return type of non-const overload. | |
| New const overload. | |
| (filter_view::end): Likewise. | |
| * testsuite/std/ranges/adaptors/filter.cc: Verify value of | |
| __cpp_lib_ranges_filter. | |
| (test08): New test. | |
| 2026-04-01 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/chrono_io.h (__formatter_chrono::_S_empty_fs) | |
| (__formatter_chrono::_M_C_y_Y, __formatter_chrono::_M_D_x) | |
| (__formatter_chrono::_M_F, __formatter_chrono::_M_subsecs) | |
| (__formatter_chrono_info::_M_format_to): Use | |
| _Dynamic_format_string instead of _Runtime_format_string. | |
| * include/bits/version.def (format): Bump value. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/format (_Runtime_format_string): Rename to | |
| _Dynamic_format_string. | |
| (runtime_format): Rename to dynamic_format. | |
| * include/std/print (println): Adjust comment to refer to | |
| dynamic_format instead of runtime_format. | |
| * testsuite/std/format/runtime_format.cc: Move to... | |
| * testsuite/std/format/dynamic_format.cc: ...here. | |
| 2026-04-01 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/sat_arith.h (add_sat, sub_sat, mul_sat, div_sat) | |
| (saturate_cast): Rename to saturating_xxx as per P4052R0. | |
| * include/bits/version.def (saturation_arithmetic): Bump value. | |
| * include/bits/version.h: Regenerate. | |
| * testsuite/26_numerics/saturation/add.cc: Use new name. | |
| * testsuite/26_numerics/saturation/cast.cc: Likewise. | |
| * testsuite/26_numerics/saturation/div.cc: Likewise. | |
| * testsuite/26_numerics/saturation/extended.cc: Likewise. | |
| * testsuite/26_numerics/saturation/mul.cc: Likewise. | |
| * testsuite/26_numerics/saturation/sub.cc: Likewise. | |
| * testsuite/26_numerics/saturation/version.cc: Check for updated | |
| value. | |
| 2026-03-31 Jakub Jelinek <jakub@redhat.com> | |
| * include/std/meta (std::meta::data_member_options): Add annotations | |
| member. | |
| 2026-03-31 Jakub Jelinek <jakub@redhat.com> | |
| * include/std/meta (std::meta::current_function, | |
| std::meta::current_class, std::meta::current_namespace): New | |
| declarations. | |
| * src/c++23/std.cc.in: Export those 3. | |
| 2026-03-30 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/atomic_base.h (__atomic_ref_base::_Address_return_t): | |
| Define. | |
| (__atomic_ref_base::address): Change return type to _Address_return_t. | |
| * include/bits/version.def (atomic_ref): Bump to 202603. | |
| * include/bits/version.h: Regenerate. | |
| * testsuite/29_atomics/atomic_ref/address.cc: Update check for | |
| return type. | |
| 2026-03-30 Jakub Jelinek <jakub@redhat.com> | |
| * include/std/meta (has_ellipsis_parameter): Rename to ... | |
| (is_vararg_function): ... this. New declaration. | |
| * src/c++23/std.cc.in: Remove std::meta::has_ellipsis_parameter | |
| export, add std::meta::is_vararg_function export. | |
| 2026-03-28 Alexandre Oliva <oliva@adacore.com> | |
| * include/experimental/bits/simd.h (__intrinsic_type): Accept | |
| 64-bit long doubles on x86 SSE. | |
| 2026-03-27 Nathan Myers <ncm@cantrip.org> | |
| * include/bits/stl_tree.h: Delete comment. | |
| 2026-03-25 Alexandre Oliva <oliva@adacore.com> | |
| * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc | |
| (test_wait_until): Extend the timeout for a stop request. | |
| 2026-03-21 Matthias Kretz <m.kretz@gsi.de> | |
| * include/Makefile.am: Add simd headers. | |
| * include/Makefile.in: Regenerate. | |
| * include/bits/version.def (simd): New. | |
| * include/bits/version.h: Regenerate. | |
| * include/bits/simd_alg.h: New file. | |
| * include/bits/simd_details.h: New file. | |
| * include/bits/simd_flags.h: New file. | |
| * include/bits/simd_iterator.h: New file. | |
| * include/bits/simd_loadstore.h: New file. | |
| * include/bits/simd_mask.h: New file. | |
| * include/bits/simd_mask_reductions.h: New file. | |
| * include/bits/simd_reductions.h: New file. | |
| * include/bits/simd_vec.h: New file. | |
| * include/bits/simd_x86.h: New file. | |
| * include/bits/vec_ops.h: New file. | |
| * include/std/simd: New file. | |
| * testsuite/std/simd/arithmetic.cc: New test. | |
| * testsuite/std/simd/arithmetic_expensive.cc: New test. | |
| * testsuite/std/simd/create_tests.h: New file. | |
| * testsuite/std/simd/creation.cc: New test. | |
| * testsuite/std/simd/creation_expensive.cc: New test. | |
| * testsuite/std/simd/loads.cc: New test. | |
| * testsuite/std/simd/loads_expensive.cc: New test. | |
| * testsuite/std/simd/mask2.cc: New test. | |
| * testsuite/std/simd/mask2_expensive.cc: New test. | |
| * testsuite/std/simd/mask.cc: New test. | |
| * testsuite/std/simd/mask_expensive.cc: New test. | |
| * testsuite/std/simd/reductions.cc: New test. | |
| * testsuite/std/simd/reductions_expensive.cc: New test. | |
| * testsuite/std/simd/shift_left.cc: New test. | |
| * testsuite/std/simd/shift_left_expensive.cc: New test. | |
| * testsuite/std/simd/shift_right.cc: New test. | |
| * testsuite/std/simd/shift_right_expensive.cc: New test. | |
| * testsuite/std/simd/simd_alg.cc: New test. | |
| * testsuite/std/simd/simd_alg_expensive.cc: New test. | |
| * testsuite/std/simd/sse_intrin.cc: New test. | |
| * testsuite/std/simd/stores.cc: New test. | |
| * testsuite/std/simd/stores_expensive.cc: New test. | |
| * testsuite/std/simd/test_setup.h: New file. | |
| * testsuite/std/simd/traits_common.cc: New test. | |
| * testsuite/std/simd/traits_impl.cc: New test. | |
| * testsuite/std/simd/traits_math.cc: New test. | |
| 2026-03-20 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/122567 | |
| * src/c++20/tzdb.cc (tzdb::current_zone): Loop over all trailing | |
| components of /etc/localtime path. Use readlink instead of | |
| std::filesystem::read_symlink. | |
| 2026-03-20 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++20/tzdb.cc [_AIX]: Change #ifndef to #ifdef. | |
| 2026-03-20 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124568 | |
| * testsuite/24_iterators/istreambuf_iterator/105580.cc: Add | |
| no_pch option. | |
| 2026-03-20 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++17/fs_path.cc (path::operator+=): Use pointer | |
| comparison to detect aliasing instead of a loop. | |
| 2026-03-20 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/generator (_Stateless_alloc): Swap order of | |
| constraints. | |
| 2026-03-19 François Dumont <frs.dumont@gmail.com> | |
| * src/c++11/debug.cc (_Safe_sequence_base::_M_detach_single): Do not | |
| check if input iterator is equal to _M_iterators if already equals to | |
| _M_const_iterators. | |
| (_Safe_unordered_container_base::_M_detach_local_single): Do not check | |
| if input local iterator is equal to _M_local_iterators if already equals | |
| to _M_const_local_iterators. | |
| 2026-03-19 Jakub Jelinek <jakub@redhat.com> | |
| PR libstdc++/121790 | |
| * src/c++23/std.cc.in: Add enable_nonlocking_formatter_optimization. | |
| 2026-03-19 Jakub Jelinek <jakub@redhat.com> | |
| PR libstdc++/118030 | |
| * src/c++23/std.cc.in: Add allocation_result. | |
| 2026-03-19 Jakub Jelinek <jakub@redhat.com> | |
| PR c++/120775 | |
| * src/c++23/std.cc.in: Add is_reflection{,_v} and | |
| is_consteval_only{,_v}. | |
| 2026-03-19 Jakub Jelinek <jakub@redhat.com> | |
| PR libstdc++/119794 | |
| * src/c++23/std.cc.in: Add philox_engine and philox4x{32,64}. | |
| 2026-03-19 Jakub Jelinek <jakub@redhat.com> | |
| * src/c++23/std.cc.in: Export views::indices. | |
| 2026-03-19 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124513 | |
| * src/c++20/tzdb.cc (operator>>(istream&, at_time::Indicator&)): | |
| Do not peek at the next character if eofbit is already set. | |
| (istream& operator>>(istream&, at_time&)): Skip whitespace | |
| before the first character. Handle EOF when parsing "-" as time. | |
| Do not peek for ":" or "." if eofbit already set. | |
| * testsuite/std/time/time_zone/116110.cc (test_apia): Remove | |
| offset of 24h now that the UNTIL time is parsed correctly. | |
| * testsuite/std/time/time_zone/124513.cc: New test. | |
| 2026-03-19 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/116110 | |
| * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Adjust | |
| inf.m_until according to indicator suffix on AT time in UNTIL. | |
| * testsuite/std/time/time_zone/116110.cc (test_kiritimati): | |
| Remove FIXME now that the UNTIL time is adjusted for STDOFF. | |
| (test_apia): Adjust FIXME now that UNTIL time is adusted for | |
| STDOFF. | |
| * testsuite/std/time/time_zone/get_info_sys.cc: Adjust expected | |
| results to account for corrected logic. | |
| * testsuite/std/time/zoned_time/1.cc: Likewise. | |
| 2026-03-19 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/116110 | |
| * src/c++20/tzdb.cc (time_zone::_M_get_sys_info): Update | |
| info.offset and info.save to values from the active rule. | |
| * testsuite/std/time/time_zone/116110.cc: New test. | |
| 2026-03-18 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/17_intro/names.cc (ext, max_iter, ret, subs, Rg, Rs): | |
| Define macros. | |
| [__cplusplus < 201103] (mutex): Define macro. | |
| 2026-03-18 Jonathan Wakely <jwakely@redhat.com> | |
| * include/experimental/bits/fs_path.h (path::stem) | |
| (path::extension, path::has_stem, path::has_extension): Uglify | |
| ext variable name. | |
| 2026-03-18 Jakub Jelinek <jakub@redhat.com> | |
| * include/bits/regex_compiler.h (_Compiler::_M_pop): Uglify ret | |
| variable name. | |
| 2026-03-18 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/mdspan (__mdspan::__index_type_cast): Handle | |
| forwarding referene and use forward for class types. | |
| * testsuite/23_containers/mdspan/int_like.h (ConstLValueInt) | |
| (CustomIndexKind::ConstLValue): Define. | |
| (CustomIndexType): Handle CustomIndexKind::ConstLValue. | |
| * testsuite/23_containers/mdspan/at.cc: Test with ConstLValueInt. | |
| * testsuite/23_containers/mdspan/extents/custom_integer.cc: Likewise. | |
| * testsuite/23_containers/mdspan/mdspan.cc: Likewise. | |
| 2026-03-17 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/chrono_io.h (__formatter_duration::_S_subseconds): | |
| Uglify subs variable name. | |
| * include/bits/fs_path.h (path::stem, path::extension) | |
| (path::has_stem, path::has_extension): Uglify ext parameter | |
| name. | |
| * include/ext/concurrence.h (__cond::wait, __cond::wait_recursive): | |
| Uglify mutex parameter names. | |
| * include/pstl/glue_algorithm_defs.h (generate_n): Uglify count | |
| parameter name. | |
| * include/std/ranges (zip_transform_view): Uglify Rs template | |
| parameter name. | |
| (__cartesian_is_sized_sentinel): Uglify FirstSent template | |
| parameter name. | |
| * include/tr1/riemann_zeta.tcc: Uglify max_size variable name. | |
| 2026-03-17 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124463 | |
| * include/bits/deque.tcc (__uninitialized_copy_a): Define | |
| overloads for input and output iterators being std::deque | |
| iterators, and for only the output iterator being a std::deque | |
| iterator. | |
| (__uninitialized_move_a): Overload for input and output | |
| iterators being std::deque iterators. | |
| * include/bits/stl_uninitialized.h (__uninitialized_copy_a) | |
| (__uninitialized_move_a): Declare overloads for std::deque | |
| iterators. | |
| 2026-03-17 Jonathan Wakely <jwakely@redhat.com> | |
| Revert: | |
| 2026-03-16 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124268 | |
| * config/abi/pre/gnu.ver: Export symbols. | |
| * src/Makefile.am: Add libmodulesconvenience.la to libstdc++ | |
| link. | |
| * src/Makefile.in: Regenerate. | |
| * src/c++23/Makefile.am: Create libmodulesconvenience.la | |
| and populate it with std.o and std.compat.o interface units. | |
| Add clean-local target. | |
| * src/c++23/Makefile.in: Regenerate. | |
| 2026-03-17 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/23_containers/mdspan/extents/ctor_ints.cc: Updated | |
| is_explicit, and added more test cases. | |
| 2026-03-16 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124268 | |
| * config/abi/pre/gnu.ver: Export symbols. | |
| * src/Makefile.am: Add libmodulesconvenience.la to libstdc++ | |
| link. | |
| * src/Makefile.in: Regenerate. | |
| * src/c++23/Makefile.am: Create libmodulesconvenience.la | |
| and populate it with std.o and std.compat.o interface units. | |
| Add clean-local target. | |
| * src/c++23/Makefile.in: Regenerate. | |
| 2026-03-16 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/ranges_base.h (distance(It&&, Sent)): Only decay | |
| arrays to pointers when the type is actually an array, as per | |
| LWG 4242. | |
| * testsuite/24_iterators/range_operations/distance.cc: Add test | |
| for LWG 4242. | |
| 2026-03-16 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/29_atomics/atomic/compare_exchange_padding.cc: | |
| Rewrite to be robust against spurious failures of weak compare | |
| exchange, and to check padding bits more directly. | |
| 2026-03-16 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/allocator.h (allocator::allocate): Use specific | |
| feature test macro for constexpr allocate and deallocate. Make | |
| consteval path a discarded statement if sizeof(T) is ill-formed. | |
| * include/bits/new_allocator.h (__new_allocator::allocate): Use | |
| requires-expression for static_cast. Make function body a | |
| discarded stament if sizeof(T) is ill-formed. Use if-constexpr | |
| for alignment checks. | |
| 2026-03-15 François Dumont <frs.dumont@gmail.com> | |
| PR libstdc++/124444 | |
| * include/debug/safe_sequence.h (_Safe_sequence::_M_invalidate_if_impl): New. | |
| (_Safe_sequence::_M_invalidate_if): Call later if not __is_constant_evaluated. | |
| * include/debug/safe_sequence.tcc: Rename _M_invalidate_if into | |
| _M_invalidate_if_impl and remove C++20 constexpr. | |
| 2026-03-14 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/text_encoding: Fix @since in Doxygen comment. | |
| 2026-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| PR libstdc++/124290 | |
| * testsuite/23_containers/mdspan/submdspan/selections/left_padded.cc: | |
| Use dg-timeout-factor 4. | |
| * testsuite/23_containers/mdspan/submdspan/selections/left.cc: | |
| * testsuite/23_containers/mdspan/submdspan/selections/right_padded.cc: | |
| * testsuite/23_containers/mdspan/submdspan/selections/right.cc: | |
| Likewise. | |
| * testsuite/23_containers/mdspan/submdspan/selections/stride.cc: | |
| Likewise. | |
| 2026-03-12 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/format (__format::_Ptr_sink::_M_finish): Rename | |
| __max variable to __m. | |
| * testsuite/17_intro/names.cc (__max): Define function-like | |
| macro. | |
| 2026-03-12 Jakub Jelinek <jakub@redhat.com> | |
| PR libstdc++/124443 | |
| * include/std/meta (std::define_static_object): Use CTAD for span. | |
| 2026-03-11 Jakub Jelinek <jakub@redhat.com> | |
| * include/std/meta (std::meta::exception::what()): Use | |
| __builtin_constexpr_diag instead of __asm__("") if supported. | |
| (std::meta::access_context::via(info)): Don't call is_class_type | |
| if __cls is not a type. Use __builtin_constexpr_diag instead of | |
| __asm__("") if supported for -fno-exceptions. | |
| 2026-03-10 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/chrono (hh_mm_ss): Add comment about LWG 4274. | |
| 2026-03-10 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/ranges_algo.h (__replace_fn, __replace_if_fn): | |
| Change default template argument for type of new value, as per | |
| LWG 4444. | |
| * testsuite/25_algorithms/replace/lwg4444.cc: New test. | |
| * testsuite/25_algorithms/replace_if/lwg4444.cc: New test. | |
| 2026-03-10 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/span (as_bytes, as_writable_bytes): Add | |
| constraints to disallow volatile elements, as per LWG 4243. | |
| * testsuite/23_containers/span/lwg4243.cc: New test. | |
| 2026-03-10 Nathan Myers <ncm@cantrip.org> | |
| PR libstdc++/118030 | |
| * include/bits/alloc_traits.h (allocate_at_least (2x)): Define. | |
| * include/bits/allocator.h (allocate_at_least): Define. | |
| * include/std/memory (__glibcxx_want_allocate_at_least): Define. | |
| * include/bits/memoryfwd.h (allocation_result): Define, #include | |
| <bits/version.h> first so that will work. | |
| * include/bits/version.def (allocate_at_least): Add. | |
| * include/bits/version.h: Regenerate. | |
| * testsuite/20_util/allocator/allocate_at_least.cc: New test. | |
| * testsuite/20_util/allocator/allocate_at_least_neg.cc: New test. | |
| 2026-03-10 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/basic_string.h: Check __glibcxx_to_string instead | |
| of __cplusplus. | |
| 2026-03-10 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/format (__format::_Ptr_sink, __format::__format_padded) | |
| (std::enable_nonlocking_formatter_optimization<pair<_Fp, _Sp>>): | |
| Replaced 8 spaces with tabs. | |
| 2026-03-10 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/format (__format::_Ptr_sink): Reworked | |
| from _Iter_sink specialization below. | |
| (__format::_Iter_sink<_CharT, contiguous_iterator _OutIter>): | |
| Renamed and reworked to _Ptr_sink. | |
| (__format::__contiguous_char_iter, __format::__do_vformat_to_n): | |
| Define. | |
| (__format::__do_vformat_to): Use _Ptr_sink when appropriate, | |
| and delegate to _Sink_iter specialization. | |
| (std::format_to_n): Delegate to __do_vformat_to_n. | |
| (__format::_Counting_sink): Use _Ptr_sink as base class. | |
| 2026-03-10 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/format (__formatter_int::format): Handle transcoding | |
| to _CharT before calling _M_format_int. | |
| (__formatter_int::_M_format_int): Accept basic_string_view<_CharT> | |
| and remove transcoding. | |
| (__formatter_ptr::__formatter_ptr): Configure _M_spec member. | |
| (__formatter_ptr::parse): Negate _M_alt for __spec and not _M_spec. | |
| (__formatter_ptr::format): Delegate to __formatter_int. | |
| 2026-03-10 François Dumont <frs.dumont@gmail.com> | |
| * include/debug/string | |
| [__cplusplus >= 201103L](basic_string(_Ite, _Ite, const _Alloc&)): Add | |
| std::_RequireInputIter<_Ite> template parameter. | |
| 2026-03-09 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/meta (exception::what, access_context::via): Use | |
| __asm__ instead of asm keyword. | |
| 2026-03-09 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120527 | |
| * include/bits/atomic_wait.h [__FreeBSD__] (__platform_wait_t): | |
| Define typedef. | |
| [__FreeBSD__] (__platform_wait_uses_type): Define variable | |
| template. | |
| * src/c++20/atomic.cc (__platform_load): New function. | |
| [__FreeBSD__] (_GLIBCXX_HAVE_PLATFORM_WAIT, __platform_wait) | |
| (__platform_notify, __platform_wait_until): Define. | |
| (__detail::__spin_impl): Use __platform_load. | |
| 2026-03-07 François Dumont <frs.dumont@gmail.com> | |
| * include/debug/functions.h [__cplusplus >= 201103L] | |
| (__foreign_iterator_aux): Remove. | |
| (__foreign_iterator): Adapt to use __foreign_iterator_aux2. | |
| * include/debug/helper_functions.h [__cplusplus >= 201103L]: | |
| Remove include bits/cpp_type_traits.h. | |
| (_Distance_traits<_Integral, std::__true_type>): Remove. | |
| (__valid_range_aux(_Integral, _Integral, std::__true_type)): | |
| Remove. | |
| (__valid_range_aux(_Iterator, _Iterator, std::__false_type)): Remove. | |
| (__valid_range_aux(_Integral, _Integral, _Distance_traits<_Integral>::__type&, | |
| std::__true_type)): Remove. | |
| (__valid_range_aux(_Iterator, _Iterator, _Distance_traits<_Iterator>::__type&, | |
| std::__false_type)): Remove. | |
| (__valid_range(_Iterator, _Iterator)): Adapt. | |
| (__valid_range(_Iterator, _Iterator, _Distance_traits<_Iterator>::__type&)): Adapt. | |
| 2026-03-06 Nathan Myers <ncm@cantrip.org> | |
| * include/std/bitset (operator[]() const): Customize bounds | |
| check for C++11 case. | |
| * testsuite/20_util/bitset/access/subscript_const_neg.cc: | |
| Suppress UNRESOLVED complaint. | |
| 2026-03-06 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/fs_path.h (std::formatter<filesystem::path, _CharT>): | |
| Format _Utf_view directly via __formatter_str::_M_format_range. | |
| 2026-03-06 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/122300 | |
| * src/c++17/fs_path.cc (path::_List::_Impl): Remove | |
| static_asserts. | |
| (path::_List::_Impl::required_alignment) | |
| (path::_List::_Impl::use_aligned_new): New static data members. | |
| (path::_List::_Impl::create_unchecked): Check use_aligned_new | |
| and use aligned new if needed. | |
| (path::_List::_Impl::alloc_size): New static member function. | |
| (path::_List::_Impl_deleter::operator): Check use_aligned_new | |
| and use aligned delete if needed. | |
| 2026-03-05 Nathan Myers <ncm@cantrip.org> | |
| PR libstdc++/118341 | |
| * include/std/bitset (operator[] (2x)): Add assertion. | |
| * testsuite/20_util/bitset/access/118341_neg1.cc: New test. | |
| * testsuite/20_util/bitset/access/118341_neg2.cc: Same. | |
| * testsuite/20_util/bitset/access/118341_smoke.cc: Same. | |
| * testsuite/20_util/bitset/access/subscript.cc: Same. | |
| * testsuite/20_util/bitset/access/subscript_const_neg.cc: Same. | |
| 2026-03-05 François Dumont <frs.dumont@gmail.com> | |
| * include/debug/safe_unordered_container.h | |
| (_Safe_unordered_container::_UContInvalidatePred): Move outside class, at | |
| namespace scope. Declare friend. | |
| (_Safe_unordered_container::_UMContInvalidatePred): Likewise. | |
| (_Safe_unordered_container::_UContMergeGuard): Likewise. | |
| (_Safe_unordered_container::_M_invalidate_all): Make protected. | |
| (_Safe_unordered_container::_M_invalidate_all_if): Likewise. | |
| 2026-03-05 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/124124 | |
| * testsuite/29_atomics/atomic/cons/zero_padding.cc: Limit size of | |
| test types to four bytes. | |
| 2026-03-05 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Ivan Lazaric <ivan.lazaric1@gmail.com> | |
| * include/std/format (_Arg_value::_M_get): Rename to... | |
| (_Arg_value::_M_access): Modified to accept optional | |
| second parameter that is assigned to value. | |
| (_Arg_value::_M_get): Handle rename. | |
| (_Arg_value::_M_set): Use construct_at for basic_string_view, | |
| handle, and two-argument _S_access for other types. | |
| 2026-03-05 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/format (__Arg_value::handle): Define, extracted | |
| with modification from basic_format_arg::handle. | |
| (_Arg_value::_Handle_base): Remove. | |
| (_Arg_value::_M_handle): Change type to handle. | |
| (_Arg_value::_M_get, _Arg_value::_M_set): Check for handle | |
| type directly, and return result unmodified. | |
| (basic_format_arg::__formattable): Remove. | |
| (basic_format_arg::handle): Replace with alias to | |
| _Arg_value::handle. | |
| 2026-03-04 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124363 | |
| * include/std/string_view: Adjust comment on #endif to match #if | |
| condition. | |
| 2026-03-04 Nathan Myers <ncm@cantrip.org> | |
| PR libstdc++/117402 | |
| * include/debug/map.h (try_emplace (2x), insert_or_assign (2x)): | |
| Define heterogeneous overloads, simplify existing overloads. | |
| * include/debug/unordered_map: Same. | |
| * include/debug/set.h (insert (2x)): | |
| Define heterogeneous overloads. | |
| * include/debug/unordered_set: Same. | |
| 2026-03-04 Nathan Myers <ncm@cantrip.org> | |
| PR libstdc++/117402 | |
| * include/bits/stl_map.h (operator[], at (2x), try_emplace (2x), | |
| insert_or_assign (2x)): Add overloads. | |
| * include/bits/unordered_map.h (operator[], at (2x), | |
| try_emplace (2x), insert_or_assign (2x), bucket (2x)): Add overloads. | |
| * include/bits/stl_set.h (insert (2x)): Add overloads. | |
| * include/bits/unordered_set.h (insert (2x), bucket (2x)): Add overloads. | |
| * include/bits/hashtable.h (_M_bucket_tr, _M_insert_tr): Define. | |
| * include/bits/hashtable_policy.h (_M_at_tr (2x)): Define. | |
| * include/bits/stl_tree.h (_M_emplace_here, _M_get_insert_unique_pos_tr, | |
| _M_get_insert_hint_unique_pos_tr): Define new heterogeneous insertion | |
| code path for set and map. | |
| * include/bits/version.def (associative_heterogeneous_insertion): | |
| Define. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/map (__glibcxx_want_associative_heterogeneous_insertion): | |
| Define macro. | |
| * include/std/set: Same. | |
| * include/std/unordered_map: Same. | |
| * include/std/unordered_set: Same. | |
| * testsuite/23_containers/map/modifiers/hetero/insert.cc: New tests. | |
| * testsuite/23_containers/set/modifiers/hetero/insert.cc: Same. | |
| * testsuite/23_containers/unordered_map/modifiers/hetero/insert.cc: | |
| Same. | |
| * testsuite/23_containers/unordered_multimap/modifiers/hetero/insert.cc: | |
| Same. | |
| * testsuite/23_containers/unordered_multiset/modifiers/hetero/insert.cc: | |
| Same. | |
| * testsuite/23_containers/unordered_set/modifiers/hetero/insert.cc: | |
| Same. | |
| 2026-03-03 Adam Wood <adam.wood@mines.sdsmt.edu> | |
| PR libstdc++/122217 | |
| * testsuite/27_io/filesystem/operations/copy_symlink/1.cc: New | |
| test. | |
| * testsuite/27_io/filesystem/operations/copy_symlink/2.cc: New | |
| test. | |
| * testsuite/27_io/filesystem/operations/copy_symlink/3.cc: New | |
| test. | |
| * testsuite/27_io/filesystem/operations/copy_symlink/4.cc: New | |
| test. | |
| 2026-03-03 Arthur O'Dwyer <arthur.j.odwyer@gmail.com> | |
| PR libstdc++/119197 | |
| * include/std/expected (expected, expected<void, E>): Add | |
| [[nodiscard]] to class. | |
| * testsuite/20_util/expected/119197.cc: New test. | |
| 2026-03-03 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/atomic (atomic<T*>::wait, atomic<T*>::notify_one) | |
| (atomic<T*>::notify_all): Fix indentation. | |
| 2026-03-03 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/regex_compiler.h: Adjust comments so that | |
| standard references are specific to C++11. | |
| 2026-03-02 François Dumont <frs.dumont@gmail.com> | |
| * include/debug/safe_unordered_container.h | |
| (_Safe_unordered_container::_M_invalidate_locals): Remove. | |
| (_Safe_unordered_container::_M_invalidate_all): Lock mutex while calling | |
| _M_invalidate_if and _M_invalidate_locals. | |
| (_Safe_unordered_container::_M_invalidate_all_if): New. | |
| (_Safe_unordered_container::_M_invalidate): New. | |
| (_Safe_unordered_container::_M_invalidate_if): Make private, add __scoped_lock | |
| argument. | |
| (_Safe_unordered_container::_M_invalidate_local_if): Likewise. | |
| * include/debug/safe_unordered_container.tcc | |
| (_Safe_unordered_container::_M_invalidate_if): Adapt and remove lock. | |
| (_Safe_unordered_container::_M_invalidate_local_if): Likewise. | |
| * include/debug/unordered_map | |
| (unordered_map::erase(const_iterator, const_iterator)): Lock before loop on | |
| iterators. Remove _M_check_rehashed call. | |
| (unordered_map::_M_self): New. | |
| (unordered_map::_M_invalidate): Remove. | |
| (unordered_map::_M_erase): Adapt and remove _M_check_rehashed call. | |
| (unordered_multimap::_M_erase(_Base_iterator, _Base_iterator)): New. | |
| (unordered_multimap::erase(_Kt&&)): Use latter. | |
| (unordered_multimap::erase(const key_type&)): Likewise. | |
| (unordered_multimap::erase(const_iterator, const_iterator)): | |
| Lock before loop on iterators. Remove _M_check_rehashed. | |
| (unordered_multimap::_M_self): New. | |
| (unordered_multimap::_M_invalidate): Remove. | |
| (unordered_multimap::_M_erase): Adapt. Remove _M_check_rehashed call. | |
| * include/debug/unordered_set | |
| (unordered_set::erase(const_iterator, const_iterator)): Add lock before loop | |
| for iterator invalidation. Remove _M_check_rehashed call. | |
| (unordered_set::_M_self): New. | |
| (unordered_set::_M_invalidate): Remove. | |
| (unordered_set::_M_erase): Adapt and remove _M_check_rehashed call. | |
| (unordered_multiset::_M_erase(_Base_iterator, _Base_iterator)): New. | |
| (unordered_multiset::erase(_Kt&&)): Use latter. | |
| (unordered_multiset::erase(const key_type&)): Likewise. | |
| (unordered_multiset::erase(const_iterator, const_iterator)): | |
| Lock before loop on iterators. Remove _M_check_rehashed. | |
| (unordered_multiset::_M_self): New. | |
| (unordered_multiset::_M_invalidate): Remove. | |
| (unordered_multiset::_M_erase): Adapt. Remove _M_check_rehashed call. | |
| 2026-03-02 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/105580 | |
| * testsuite/24_iterators/istreambuf_iterator/105580.cc: | |
| Add dg-bogus check for warning. | |
| 2026-03-02 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/105580 | |
| * include/std/streambuf (streambuf::gptr, streambuf::egptr) | |
| (streambuf::gbump): Surround with pragma disabling -Wnull-dereference. | |
| * testsuite/24_iterators/istreambuf_iterator/105580.cc: Remove check for | |
| warning being emitted. | |
| 2026-02-28 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/105580 | |
| * testsuite/24_iterators/istreambuf_iterator/105580.cc: New test. | |
| 2026-02-26 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> | |
| * testsuite/29_atomics/atomic_ref/requirements_neg.cc: Add | |
| using std::size_t. | |
| 2026-02-26 Yuao Ma <c8ef@outlook.com> | |
| * include/bits/atomic_base.h (__atomic_base<_PTp*>::fetch_min, | |
| __atomic_base<_PTp*>::fetch_max, | |
| __atomic_ref<_Pt, false, false, true>::fetch_min, | |
| __atomic_ref<_Pt, false, false, true>::fetch_max): Define new | |
| functions. | |
| * include/std/atomic (atomic<_Tp*>::fetch_min, | |
| atomic<_Tp*>::fetch_max): Likewise. | |
| (atomic_fetch_min_explicit, atomic_fetch_max_explicit, | |
| atomic_fetch_min, atomic_fetch_max): Change parameter from | |
| __atomic_base<_ITp>* to atomic<_Tp>*. | |
| * testsuite/29_atomics/atomic/pointer_fetch_minmax.cc: New test. | |
| * testsuite/29_atomics/atomic_ref/pointer_fetch_minmax.cc: New | |
| test. | |
| 2026-02-25 Nathan Myers <ncm@cantrip.org> | |
| PR libstdc++/117404 | |
| * include/debug/map.h (extract, erase): Define overloads. | |
| * include/debug/multimap.h: Same. | |
| * include/debug/multiset.h: Same. | |
| * include/debug/set.h: Same. | |
| * include/debug/unordered_map: Same (2x). | |
| * include/debug/unordered_set: Same (2x), rename some locals. | |
| 2026-02-24 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/23_containers/mdspan/at.cc: Updated guard. | |
| 2026-02-24 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/23_containers/mdspan/at.cc: Updated test. | |
| 2026-02-23 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/mdspan (__mdspan::__is_multi_index): Removed, | |
| replaced with local lambda in mdspan::operator[]. | |
| (__mdspan::operator[]): Implement in terms of single overload | |
| accepting index_type. Use __mdspan::__index_type_cast for type | |
| conversion. | |
| 2026-02-23 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/mdspan (mdspan::at, mdspan::__index_int_t): | |
| Define. | |
| * testsuite/23_containers/mdspan/at.cc: New test. | |
| 2026-02-20 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/lib/libstdc++.exp (v3-minimum-std): Remove second | |
| and third args in favour of using globals. | |
| 2026-02-19 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/type_traits (_CWOperators::operator++) | |
| (_CWOperators::operator--, _CWOperators::operator+=) | |
| (_CWOperators::operator-=, _CWOperators::operator*=) | |
| (_CWOperators::operator/=, _CWOperators::operator%=) | |
| (_CWOperators::operator&=, _CWOperators::operator|=) | |
| (_CWOperators::operator^=, _CWOperators::operator<<=) | |
| (_CWOperators::operator>>=, constant_wrapper::operator=): | |
| Adjust definitions to apply operator on value. | |
| * testsuite/20_util/constant_wrapper/generic.cc: | |
| Remove test_pseudo_mutator. | |
| * testsuite/20_util/constant_wrapper/instantiate.cc: | |
| Test that operators are not provided if wrapped type | |
| do not support them, or provide mutable operators. | |
| 2026-02-19 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/lib/libstdc++.exp (v3_default_std, v3_max_std): New | |
| global variables. | |
| (v3-minimum-std): Use globals instead of arguments. | |
| (v3_modules_std): Define in terms of $v3_max_std. | |
| (v3-dg-runtest): Use globals instead of local variables. Adjust | |
| call to v3-min-std. | |
| 2026-02-19 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/lib/libstdc++.exp (v3-minimum-std): Remove special | |
| case for c++2a and TODO comment. | |
| * testsuite/20_util/is_pod/requirements/explicit_instantiation.cc: | |
| Replace c++2a effective target with c++20. | |
| * testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise. | |
| * testsuite/20_util/is_pod/value.cc: Likewise. | |
| * testsuite/20_util/reference_wrapper/result_type.cc: Likewise. | |
| * testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise. | |
| * testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise. | |
| * testsuite/20_util/result_of/sfinae_friendly_1.cc: Likewise. | |
| * testsuite/20_util/tuple/78939.cc: Likewise. | |
| * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise. | |
| * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise. | |
| * testsuite/20_util/variable_templates_for_traits.cc: Likewise. | |
| * testsuite/experimental/type_traits/value.cc: Likewise. | |
| * testsuite/ext/malloc_allocator/variadic_construct.cc: | |
| Likewise. | |
| * testsuite/ext/new_allocator/variadic_construct.cc: Likewise. | |
| * testsuite/libstdc++-prettyprinters/chrono.cc: Likewise. | |
| * testsuite/libstdc++-prettyprinters/cxx20.cc: Likewise. | |
| * testsuite/std/ranges/iota/size.cc: Likewise. | |
| * testsuite/tr1/3_function_objects/result_of.cc: Likewise. | |
| 2026-02-18 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/121402 | |
| * include/std/ranges (repeat_view::_M_value): Add | |
| [[no_unique_address]]. | |
| * testsuite/std/ranges/adaptors/sizeof.cc | |
| [__cpp_lib_ranges_repeat]: New test. | |
| 2026-02-17 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/124124 | |
| * testsuite/29_atomics/atomic/cons/zero_padding.cc: Updated | |
| Ctor class and move test_floating to... | |
| * testsuite/29_atomics/atomic_float/zero_padding.cc: Extracted | |
| test_floating. | |
| 2026-02-17 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/124124 | |
| * testsuite/29_atomics/atomic/cons/zero_padding.cc: Adjust | |
| dg-require. | |
| 2026-02-17 Jakub Jelinek <jakub@redhat.com> | |
| * src/c++23/std.cc.in (std::submdspan_canonicalize_slices, | |
| std::submdspan_extents): Remove exports. | |
| (std::canonical_slices, std::subextents): New exports. | |
| 2026-02-16 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/119745 | |
| * include/bits/basic_string.h (basic_string::_M_construct) | |
| [__cplusplus >= 202302L]: Declare. | |
| (basic_string::basic_string(basic_string&&, size_type, const _Alloc&)) | |
| (basic_string(basic_string&&, size_type, size_type, const _Alloc&)) | |
| (basic_string::substr(size_type, size_type) &&) | |
| (basic_string::substr(size_type) &&) [__cplusplus >= 202302L]: Define. | |
| * include/bits/basic_string.tcc (basic_string::_M_construct) | |
| [__cplusplus >= 202302L]: Define. | |
| * testsuite/21_strings/basic_string/operations/substr/rvalue.cc: New test. | |
| 2026-02-16 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/mdspan (std::submdspan_extents): Rename to... | |
| (std::subextents): Renamed from submdspan_extents. | |
| (std::submdspan_canonicalize_slices): Rename to... | |
| (std::canonical_slices): Renamed from submdspan_canonicalize_slices. | |
| * testsuite/23_containers/mdspan/submdspan/submdspan_canonicalize_slices.cc: | |
| Move to... | |
| * testsuite/23_containers/mdspan/submdspan/canonical_slices.cc: ...here. | |
| Updated calls to submdspan_canonicalize_slices. | |
| * testsuite/23_containers/mdspan/submdspan/submdspan_canonicalize_slices_neg.cc: | |
| Move to... | |
| * testsuite/23_containers/mdspan/submdspan/canonical_slices_neg.cc: ...here. | |
| Updated calls to submdspan_canonicalize_slices. | |
| * testsuite/23_containers/mdspan/submdspan/submdspan_extents.cc: Move to... | |
| * testsuite/23_containers/mdspan/submdspan/subextents.cc: ...here. | |
| Qualified and renamed calls to submdspan_extents. | |
| * testsuite/23_containers/mdspan/submdspan/submdspan_extents_neg.cc: Move to... | |
| * testsuite/23_containers/mdspan/submdspan/subextents_neg.cc: ...here. | |
| Qualified and renamed calls to submdspan_extents. | |
| 2026-02-16 Ivan Lazaric <ivan.lazaric1@gmail.com> | |
| Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/fs_path.h: Include bits/formatfwd.h. | |
| (std::formatter<filesystem::path, _CharT>): Define. | |
| * include/bits/version.def (format_path): Define. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/filesystem: Expose __cpp_lib_format_path. | |
| * testsuite/std/format/fs_path.cc: New test. | |
| 2026-02-13 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc | |
| (__gnu_test::uneq_allocator(int)): Declare as explicit. | |
| * testsuite/std/memory/indirect/ctor.cc: Construct uneq_allocator | |
| from int explicitly. | |
| * testsuite/std/memory/polymorphic/ctor.cc: Likewise. | |
| * testsuite/std/memory/polymorphic/ctor_poly.cc: Likewise. | |
| * testsuite/util/testsuite_allocator.h: Likewise. | |
| 2026-02-13 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/121771 | |
| * include/std/tuple (tuple::tuple(const Elements&...)): Use | |
| type_identity_t to prevent constructor being used for CTAD. | |
| (tuple::tuple(allocator_arg_t, const A&, const Elements&...)): | |
| Likewise. | |
| * testsuite/20_util/tuple/cons/121771.cc: New test. | |
| 2026-02-12 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/regex_executor.tcc (_Executor::_M_rep_once_more): | |
| Make unnused _Match_mode parameter unnamed. | |
| (_Executor::_M_handle_repeat): Likewise. | |
| (_Executor::_M_handle_subexpr_begin): Likewise. | |
| (_Executor::_M_handle_subexpr_end): Likewise. | |
| (_Executor::_M_handle_line_begin_assertion): Likewise. | |
| (_Executor::_M_handle_line_end_assertion): Likewise. | |
| (_Executor::_M_handle_match): Likewise. | |
| (_Executor::_M_handle_backref): Likewise. | |
| (_Executor::_M_handle_alternative): Likewise. | |
| 2026-02-12 Xi Ruoyao <xry111@xry111.site> | |
| Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/17_intro/badnames.cc (__unused): Do not define. | |
| * testsuite/17_intro/names.cc [glibc == 2.43] (__unused): Undef. | |
| 2026-02-12 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/type_traits (is_function): Declare before first | |
| use. | |
| 2026-02-12 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/114865 | |
| * include/std/atomic (atomic<_Tp>::atomic(_Tp)) [C++11]: | |
| Enable __builtin_clear_padding logic. | |
| * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Enable | |
| this test in earlier modes, including C++11. | |
| * testsuite/29_atomics/atomic/cons/zero_padding.cc [C++11]: | |
| Enable tests verifying cleared padding bits for a non-static-init | |
| std::atomic object. | |
| 2026-02-11 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/funcref_impl.h (function_ref::function_ref(_Fn&&)): | |
| Use _S_static and _S_nttp invokers. | |
| * include/bits/funcwrap.h (_Base_invoker::_S_static): | |
| Define. | |
| * include/bits/stl_function.h (std::__is_std_op_template) | |
| (std::__is_std_op_wrapper) [__cplusplus > 201703L]: | |
| Moved from std/ranges. | |
| * include/std/ranges (__detail::__is_std_op_template) | |
| (__detail::__is_std_op_wrapper): Moved to bits/stl_function.h. | |
| * testsuite/20_util/function_ref/dangling.cc: New test. | |
| * testsuite/20_util/function_ref/dangling_neg.cc: New test. | |
| 2026-02-11 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/123875 | |
| * testsuite/29_atomics/atomic/cons/static_zero_padding.cc: Move to... | |
| * testsuite/29_atomics/atomic/cons/zero_padding.cc: ...here and | |
| added heap tests. Also fixed trailing whitespaces. | |
| 2026-02-11 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/123908 | |
| * config/abi/pre/gnu.ver (GLIBCXX_3.4.35): Add exports for | |
| std::__get_once_callable and std::__get_once_call. | |
| 2026-02-11 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/regex.tcc (__detail::__lookup_collatename): New | |
| function. | |
| (regex_traits::lookup_collatename): Use new function. Elide | |
| redundant narrowing via ctype facet for regex_traits<char>. | |
| (regex_traits::lookup_classname): Replace lookup table with | |
| handwritten prefix match. | |
| 2026-02-11 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124015 | |
| * include/bits/regex.tcc (regex_traits::lookup_classname): Fix | |
| handling of icase parameter. | |
| 2026-02-11 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124015 | |
| * testsuite/28_regex/traits/char/lookup_classname.cc: Check for | |
| correct result for unrecognized classname. Check that lookup is | |
| case insensitive. Check that all required classnames are | |
| recognized. Check that icase flag only affects "lower" and | |
| "upper". | |
| * testsuite/28_regex/traits/wchar_t/lookup_classname.cc: | |
| Likewise. | |
| 2026-02-10 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/123875 | |
| * include/bits/atomic_base.h (__atomic_impl::__clear_padding): | |
| Use if constexpr unconditionally. | |
| (__atomic_float<_Fp>::__atomic_float(_Fp)): Skip __clear_padding | |
| call for constant evaluation. | |
| * include/std/atomic (atomic<_Tp>::atomic(_Tp)): Likewise. | |
| * testsuite/29_atomics/atomic/cons/static_zero_padding.cc: New test. | |
| 2026-02-10 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/123991 | |
| * include/bits/basic_string.h (compare(size_type, size_type, T)): | |
| Remove noexcept-specifier. | |
| (compare(size_type, size_type, T, size_type, size_type)): | |
| Likewise. | |
| * include/bits/cow_string.h (compare(size_type, size_type, T)): | |
| Remove noexcept-specifier. | |
| (compare(size_type, size_type, T, size_type, size_type)): | |
| Likewise. | |
| * testsuite/21_strings/basic_string/operations/compare/char/123991.cc: | |
| New test. | |
| * testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc: | |
| New test. | |
| 2026-02-10 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/regex.h (_Executor): Remove __dfs_mode template | |
| parameter and _V2 inline namespace. | |
| * include/bits/regex.tcc (__regex_algo_impl): Adjust after | |
| __dfs_mode template parameter removal. | |
| * include/bits/regex_executor.h (_Executor): Remove __dfs_mode | |
| parameter and _V2 inline namespace. | |
| * include/bits/regex_executor.tcc (_Executor): Likewise. | |
| 2026-02-10 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/regex.tcc (__regex_algo_impl): Pass __use_dfs | |
| parameter to _Executor's constructor. | |
| * include/bits/regex_executor.h (_Executor::_Search_mode): New. | |
| (_Executor::_Executor): Add __use_dfs parameter and initialize | |
| _M_search_mode. Adjust after inlining _State_info members into | |
| _Executor. | |
| (_Executor::~_Executor): Free _M_visted_states. | |
| (_Executor::_M_main): Adjust after renaming _M_main_dispatch | |
| overloads to _M_main_dfs and _M_main_bfs. | |
| (_Executor::_State_info): Remove. | |
| (_Executor::_M_visited): Inlined from _State_info. | |
| (_Executor::_M_get_sol_pos): Likewise. | |
| (_Executor::_M_states): Remove. | |
| (_Executor::_M_start): Inlined from _State_info. | |
| (_Executor::_M_sol_pos): Likewise. | |
| (_Executor::_M_match_queue): Likewise. | |
| (_Executor::_M_search_mode): New. | |
| * include/bits/regex_executor.tcc (_Executor::_M_main_dispatch): | |
| Renamed to... | |
| (_Executor::_M_main_dfs, _Executor::_M_main_bfs): ... these. | |
| (_Executor::_M_*): Adjust after _M_states removal. | |
| (_Executor::_M_lookhead): Also adjust _Executor constructor | |
| call. | |
| 2026-02-09 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/124024 | |
| * include/bits/out_ptr.h (out_ptr): Fix doxygen comment to refer | |
| to the right function. | |
| (inout_ptr): Improve markup in doxygen comment. | |
| 2026-02-06 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/hashtable.h (std::__heterogeneous_hash_key) | |
| [__glibcxx_associative_heterogeneous_erasure]: Changed guard. | |
| * include/bits/stl_tree.h (std::__heterogeneous_tree_key) | |
| [__glibcxx_associative_heterogeneous_erasure]: Likewise. | |
| * include/bits/stl_function.h: Add comment with C++ version | |
| for __glibcxx_associative_heterogeneous_erasure guard. | |
| 2026-02-06 Nathan Myers <ncm@cantrip.org> | |
| * include/bits/stl_function.h (concept __heterogeneous_key): | |
| Guard with __glibcxx_associative_heterogeneous_erasure | |
| 2026-02-06 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120567 | |
| * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Include "__sync_" in | |
| grep command to check for extern calls to libatomic. | |
| * configure: Regenerate. | |
| 2026-02-06 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/Makefile.am (new-abi-baseline): Overwrite existing | |
| file instead of creating baseline_symbols.txt.new. | |
| * testsuite/Makefile.in: Regenerate. | |
| 2026-02-06 Nathan Myers <ncm@cantrip.org> | |
| * include/bits/stl_function.h (__heterogeneous_key): Use | |
| C++17-defined remove_cvref<>::type instead. | |
| 2026-02-05 Caolán McNamara <caolanm@gmail.com> | |
| * include/bits/regex.tcc (regex_traits::lookup_collatename): | |
| Make __collatenames array const. | |
| 2026-02-05 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/contracts (contract_violation::location): Use | |
| source_location default constructor and then set _M_impl. | |
| * include/std/source_location (source_location(const void*)): | |
| Remove constructor. | |
| * testsuite/18_support/contracts/includes.cc: Move to... | |
| * testsuite/18_support/contracts/srcloc.cc: ...here. Test for | |
| ambiguity caused by new constructor. | |
| 2026-02-05 Jonathan Wakely <jwakely@redhat.com> | |
| * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Only | |
| use gdb.Type.is_scalar if supported. | |
| * testsuite/libstdc++-prettyprinters/compat.cc: Test printer for | |
| old implementation of std::atomic<std::shared_ptr<T>>. | |
| 2026-02-05 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/28_regex/algorithms/regex_match/multiline.cc: Add | |
| string to static_assert. | |
| * testsuite/28_regex/sub_match/lwg3204.cc: Likewise. | |
| 2026-02-04 Nathan Myers <ncm@cantrip.org> | |
| PR libstdc++/117404 | |
| * include/bits/version.def (associative_heterogeneous_erasure): | |
| Define. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/map: Request new feature from version.h. | |
| * include/std/set: Same. | |
| * include/std/unordered_map: Same. | |
| * include/std/unordered_set: Same. | |
| * include/bits/stl_map.h (extract, erase): Define overloads. | |
| * include/bits/stl_set.h: Same. | |
| * include/bits/stl_multimap.h: Same. | |
| * include/bits/stl_multiset.h: Same. | |
| * include/bits/unordered_map.h: Same, 2x. | |
| * include/bits/unordered_set.h: Same, 2x. | |
| * include/bits/stl_function.h (concepts __not_container_iterator, | |
| __heterogeneous_key): Define. | |
| * include/bits/hashtable.h (_M_find_before_node, _M_locate, extract): | |
| Delegate to more-general _tr version. | |
| (_M_find_before_node_tr, _M_locate_tr, _M_extract_tr, _M_erase_tr): | |
| Add new members to support a heterogeneous key argument. | |
| (_M_erase_some): Add new helper function. | |
| (concept __heterogeneous_hash_key): Define. | |
| * include/bits/stl_tree.h (_M_lower_bound_tr, _M_upper_bound_tr, | |
| _M_erase_tr, _M_extract_tr): Add new members to support a | |
| heterogeneous key argument. | |
| (concept __heterogeneous_tree_key): Define. | |
| * testsuite/23_containers/map/modifiers/hetero/erase.cc: New test. | |
| * testsuite/23_containers/multimap/modifiers/hetero/erase.cc: Same. | |
| * testsuite/23_containers/multiset/modifiers/hetero/erase.cc: Same. | |
| * testsuite/23_containers/set/modifiers/hetero/erase.cc: Same. | |
| * testsuite/23_containers/unordered_map/modifiers/hetero/erase.cc: Same. | |
| * testsuite/23_containers/unordered_multimap/modifiers/hetero/erase.cc: | |
| Same. | |
| * testsuite/23_containers/unordered_multiset/modifiers/hetero/erase.cc: | |
| Same. | |
| * testsuite/23_containers/unordered_set/modifiers/hetero/erase.cc: Same. | |
| 2026-02-03 Marek Polacek <polacek@redhat.com> | |
| * include/bits/new_allocator.h (__new_allocator::allocate, | |
| __new_allocator::deallocate): Add missing constexpr. | |
| 2026-02-03 Jakub Jelinek <jakub@redhat.com> | |
| PR libstdc++/123921 | |
| * include/bits/version.def (define_static): New with the | |
| same values as reflection. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/meta: Define also __glibcxx_want_define_static before | |
| including bits/version.h. | |
| 2026-02-02 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/regex_executor.tcc (_ExecutorFrameBase): | |
| Zero-initialize _M_byte0. | |
| (_ExecutorFrameBase::_M_end): Rename to ... | |
| (_ExecutorFrameBase::_M_subexpr_end): ... this. | |
| (_Executor::_M_handle_subexpr_begin): Remove now redundant | |
| clearing of _M_subexpr_end. | |
| (_Executor::_M_handle_subexpr_end): Adjust after renaming. | |
| (_Executor::_M_dfs) <case _S_fopcode_restore_cur_results>: | |
| Likewise. | |
| 2026-01-31 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/regex_executor.tcc (_ExecutorFrameBase): Add | |
| #pragma GCC diagnostic to suppress -Wpedantic warning about | |
| anonymous structs. | |
| 2026-01-30 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/regex_executor.tcc (__detail::_Executor::_M_node) | |
| [__OPTIMIZE__]: Add [[gnu::always_inline]] attribute. Declare | |
| inline. | |
| 2026-01-30 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/86164 | |
| * include/bits/regex_executor.tcc (__detail::_ExecutorFrameOpcode): | |
| Remove _S_fopcode_restore_current. | |
| (__detail::_Executor::_M_handle_repeat): Pass _M_current when | |
| pushing a fallback_next or fallback_rep_once_more frame. | |
| (__detail::_Executor::_M_handle_match): Don't push a | |
| restore_current frame. | |
| (__detail::_Executor::_M_handle_backref): Likewise and simplify | |
| accordingly. | |
| (__detail::_Executor::_M_handle_alternative): Pass _M_current when | |
| pushing a fallback_next or posix_alternative frame. | |
| (__detail::_Executor::_M_dfs) <case _S_fopcode_fallback_next>: | |
| Restore _M_current. | |
| <case _S_fopcode_fallback_rep_once_more>: Likewise. | |
| <case _S_fopcode_posix_alternative>: Likewise. | |
| <case _S_fopcode_restore_current>: Remove. | |
| 2026-01-30 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/86164 | |
| * include/bits/regex.h (__detail::_Executor): Use inline | |
| namespace _V2. | |
| * include/bits/regex_executor.h (__detail::_ExecutorFrame): | |
| Declare. | |
| (__detail::_Executor): Use inline namespace _V2. | |
| (__detail::_Executor::_M_node): Declare. | |
| (__detail::_Executor::_M_frames): New data member. | |
| * include/bits/regex_executor.tcc (__detail::_ExecutorFrameOpcode): | |
| New. | |
| (__detail::_ExecutorFrameBase): New. | |
| (__detail::_ExecutorFrame): New. | |
| (__detail::_Executor): Use inline namespace _V2. | |
| (__detail::_Executor::_M_rep_once_more): Replace recursive | |
| _M_dfs calls with an _S_opcode_next frame push, and any work | |
| after such calls with an appropriate frame push. | |
| (__detail::_M_handle_repeat): Likewise. | |
| (__detail::_M_handle_subexpr_begin): Likewise. | |
| (__detail::_M_handle_subexpr_end): Likewise. | |
| (__detail::_M_handle_line_begin_assertion): Likewise. | |
| (__detail::_M_handle_line_end_assertion): Likewise. | |
| (__detail::_M_handle_word_boundary): Likewise. | |
| (__detail::_M_handle_subexpr_lookahead): Likewise. | |
| (__detail::_M_handle_match): Likewise. | |
| (__detail::_M_handle_backref): Likewise. | |
| (__detail::_M_handle_accept): Likewise. | |
| (__detail::_M_handle_alternative): Likewise. | |
| (__detail::_M_node): Factored out from _M_dfs. | |
| (__detail::_M_dfs): Push an initial frame to _M_frames that | |
| visits the starting node and pass this stack each subroutine. | |
| Pop the latest _ExecutorFrame from _M_frames and handle | |
| appropriately according to its _ExecutorFrameOpcode. Loop until | |
| _M_frames is empty. | |
| 2026-01-29 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/expected (__expected::__trivially_replaceable) | |
| (__expected::__usable_for_assign) | |
| (__expected::__usable_for_trivial_assign) | |
| (__expected::__can_reassign_type): New concepts. | |
| (expected::operator=): Adjust constraints | |
| on existing overloads and add defaulted overload. | |
| (expected<cv void, E>::operator=): Likewise. | |
| * testsuite/20_util/expected/requirements.cc: Check for trivial | |
| and nothrow properties of assignments. | |
| 2026-01-29 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/source_location: Check __glibcxx_contracts instead | |
| of __cpp_lib_contracts. | |
| * testsuite/18_support/contracts/includes.cc: New test. | |
| 2026-01-29 vspefs <vspefs@protonmail.com> | |
| * src/c++23/std.cc.in (invoke_default_violation_handler): Change | |
| to invoke_default_contract_violation_handler. | |
| 2026-01-29 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/contracts: Replace non-ASCII characters. | |
| 2026-01-28 Jonathan Wakely <jwakely@redhat.com> | |
| * src/experimental/Makefile.am: Change AM_CXXFLAGS to use C++20 | |
| by default. | |
| 2026-01-28 Jonathan Wakely <jwakely@redhat.com> | |
| * src/experimental/contract26.cc: Use #error if built without | |
| contracts support enabled. | |
| * include/std/source_location: Remove stray whitespace. | |
| 2026-01-28 Jonathan Wakely <jwakely@redhat.com> | |
| PR tree-optimization/122197 | |
| * include/bits/shared_ptr_base.h (~_Sp_counted_deleter): Use | |
| diagnostic pragam to disable -Wfree-nonheap-object false | |
| positive. | |
| (~_Sp_counted_ptr_inplace): Likewise for -Warray-bounds false | |
| positive. | |
| 2026-01-28 Jonathan Wakely <jwakely@redhat.com> | |
| * config/locale/gnu/ctype_members.cc (use_table): New function. | |
| (ctype<wchar_t>::do_narrow): Use use_table. | |
| 2026-01-28 Soumya AR <soumyaa@nvidia.com> | |
| * include/bits/atomic_base.h: | |
| Add fetch_min and fetch_max memberfunctions. | |
| * include/bits/version.def: | |
| Add __cpp_lib_atomic_min_max feature test macro. | |
| * include/bits/version.h (defined): Regenerate. | |
| * include/std/atomic: Extend for fetch_min/max non-member functions. | |
| * src/c++23/std.cc.in: Export atomic_fetch_min, atomic_fetch_max, | |
| atomic_fetch_min_explicit, atomic_fetch_max_explicit. | |
| * testsuite/29_atomics/atomic_integral/nonmembers_fetch_minmax.cc: | |
| New test. | |
| * testsuite/29_atomics/atomic_ref/integral_fetch_minmax.cc: New test. | |
| 2026-01-28 Nina Ranns <dinka.ranns@gmail.com> | |
| Iain Sandoe <iain@sandoe.co.uk> | |
| Ville Voutilainen <ville.voutilainen@gmail.com> | |
| * include/Makefile.am: Add contract include. | |
| * include/Makefile.in: Regenerate. | |
| * include/bits/version.def: Add ftm for contracts. | |
| * include/bits/version.h: Regenerate. | |
| * include/precompiled/stdc++.h: Add contracts header. | |
| * include/std/source_location: Befriend the contract_violation | |
| class so that we can initialise a source_location from an | |
| existing __impl *. | |
| * src/c++23/std.cc.in: Add contracts support. | |
| * src/experimental/Makefile.am: Add new contract violation | |
| implementation, remove the old one. | |
| * src/experimental/Makefile.in: Regenerate. | |
| * include/experimental/contract: Removed. | |
| * src/experimental/contract.cc: Removed. | |
| * include/std/contracts: New file. | |
| * src/experimental/contract26.cc: New file. | |
| * testsuite/18_support/contracts/invoke_default_cvh.cc: New test. | |
| * testsuite/18_support/contracts/invoke_default_cvh2.cc: New test. | |
| 2026-01-23 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/123758 | |
| * include/bits/funcwrap.h (_Cpy_base(_Cpy_base const&)): | |
| Explicitly call _Mo_base() in initializer list. | |
| 2026-01-22 Frank Scheiner <frank.scheiner@web.de> | |
| * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: | |
| Regenerate. | |
| 2026-01-20 Jakub Jelinek <jakub@redhat.com> | |
| * include/bits/version.def (reflection): Add cxx11abi = yes;. | |
| * include/bits/version.h: Regenerate. | |
| 2026-01-19 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/114153 | |
| * include/bits/ranges_cmp.h (__detail::__less_builtin_ptr_cmp): | |
| Add __not_overloaded_spaceship spaceship check. | |
| * include/bits/stl_function.h (greater<void>::operator()) | |
| (less<void>::operator(), greater_equal<void>::operator()) | |
| (less_equal<void>::operator()): Implement using if constexpr. | |
| (greater<void>::__S_cmp, less<void>::__S_cmp) | |
| (greater_equal<void>::__ptr_comp, less_equal<void>::S_cmp): | |
| Remove. | |
| (greater<void>::__ptr_cmp, less<void>::__ptr_cmp) | |
| (greater_equal<void>::__ptr_comp, less_equal<void>::ptr_cmp): Change | |
| tostatic constexpr variable. Define in terms of requires expressions | |
| and __not_overloaded_spaceship check. | |
| * include/std/concepts: (__detail::__not_overloaded_spaceship): | |
| Define. | |
| * libsupc++/compare: (__detail::__3way_builtin_ptr_cmp): Use | |
| __not_overloaded_spaceship concept. | |
| * testsuite/20_util/function_objects/comparisons_pointer_spaceship.cc: New test. | |
| 2026-01-19 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/erase_if.h (__detail::__erase_if): Pass mutable | |
| iterators to __cont.erase. | |
| 2026-01-19 François Dumont <frs.dumont@gmail.com> | |
| * include/bits/erase_if.h (__detail::__erase_if): New. | |
| * include/debug/deque (std::erase_if<>(__debug::deque<>&, _Pred)): Use latter. | |
| * include/debug/inplace_vector (std::erase_if<>(__debug::inplace_vector<>&, _Pred)): | |
| Likewise. | |
| * include/debug/vector (std::erase_if<>(__debug::vector<>&, _Pred)): Likewise. | |
| * include/std/deque: Include erase_if.h. | |
| (std::erase_if<>(std::vector<>&, _Pred)): Adapt to use __detail::__erase_if. | |
| * include/std/inplace_vector (std::erase_if<>(std::inplace_vector<>&, _Pred)): | |
| Likewise. | |
| * include/std/string (std::erase_if<>(std::basic_string<>&, _Pred)): Likewise. | |
| * include/std/vector (std::erase_if<>(std::vector<>&, _Pred)): Likewise. | |
| * include/debug/forward_list | |
| (std::erase_if<>(__debug::forward_list<>&, _Pred)): New. | |
| (std::erase<>(__debug::forward_list<>&, const _Up&)): New. | |
| * include/debug/list | |
| (std::erase_if<>(__debug::list<>&, _Pred)): New. | |
| (std::erase<>(__debug::list<>&, const _Up&)): New. | |
| * include/debug/map (std::erase_if<>(__debug::map<>&, _Pred)): New. | |
| (std::erase_if<>(__debug::multimap<>&, _Pred)): New. | |
| * include/debug/set (std::erase_if<>(__debug::set<>&, _Pred)): New. | |
| (std::erase_if<>(__debug::multiset<>&, _Pred)): New. | |
| * include/debug/string | |
| (std::erase_if<>(__gnu_debug::basic_string<>&, _Pred)): New. | |
| (std::erase<>(__gnu_debug::basic_string<>&, const _Up&)): New. | |
| * include/debug/unordered_map | |
| (std::erase_if<>(__debug::unordered_map<>&, _Pred)): New. | |
| (std::erase_if<>(__debug::unordered_multimap<>&, _Pred)): New. | |
| * include/debug/unordered_set | |
| (std::erase_if<>(__debug::unordered_set<>&, _Pred)): New. | |
| (std::erase_if<>(__debug::unordered_multiset<>&, _Pred)): New. | |
| * include/std/forward_list (std::erase_if<>(std::forward_list<>&, _Pred)): | |
| Adapt to work exclusively for normal implementation. | |
| (std::erase<>(std::forward_list<>&, const _Up&)): Likewise. | |
| * include/std/list (std::erase_if<>(std::list<>&, _Pred)): Likewise. | |
| (std::erase<>(std::list<>&, const _Up&)): Likewise. | |
| * include/std/map (std::erase_if<>(std::map<>&, _Pred)): Likewise. | |
| (std::erase_if<>(std::multimap<>&, _Pred)): Likewise. | |
| Guard functions using __cpp_lib_erase_if. | |
| * include/std/set (std::erase_if<>(std::set<>&, _Pred)): Likewise. | |
| (std::erase_if<>(std::multiset<>&, _Pred)): Likewise. | |
| Guard functions using __cpp_lib_erase_if. | |
| * include/std/unordered_map | |
| (std::erase_if<>(std::unordered_map<>&, _Pred)): Likewise. | |
| (std::erase_if<>(std::unordered_multimap<>&, _Pred)): Likewise. | |
| Guard functions using __cpp_lib_erase_if. | |
| * include/std/unordered_set | |
| (std::erase_if<>(std::unordered_set<>&, _Pred)): Likewise. | |
| (std::erase_if<>(std::unordered_multiset<>&, _Pred)): Likewise. | |
| Guard functions using __cpp_lib_erase_if. | |
| * testsuite/21_strings/basic_string/debug/erase.cc: New test case. | |
| * testsuite/23_containers/forward_list/debug/erase.cc: New test case. | |
| * testsuite/23_containers/forward_list/debug/invalidation/erase.cc: New test case. | |
| * testsuite/23_containers/list/debug/erase.cc: New test case. | |
| * testsuite/23_containers/list/debug/invalidation/erase.cc: New test case. | |
| * testsuite/23_containers/map/debug/erase_if.cc: New test case. | |
| * testsuite/23_containers/map/debug/invalidation/erase_if.cc: New test case. | |
| * testsuite/23_containers/multimap/debug/erase_if.cc: New test case. | |
| * testsuite/23_containers/multimap/debug/invalidation/erase_if.cc: New test case. | |
| * testsuite/23_containers/multiset/debug/erase_if.cc: New test case. | |
| * testsuite/23_containers/multiset/debug/invalidation/erase_if.cc: New test case. | |
| * testsuite/23_containers/set/debug/erase_if.cc: New test case. | |
| * testsuite/23_containers/set/debug/invalidation/erase_if.cc: New test case. | |
| * testsuite/23_containers/unordered_map/debug/erase_if.cc: New test case. | |
| * testsuite/23_containers/unordered_map/debug/invalidation/erase_if.cc: New test case. | |
| * testsuite/23_containers/unordered_multimap/debug/erase_if.cc: New test case. | |
| * testsuite/23_containers/unordered_multimap/debug/invalidation/erase_if.cc: New test case. | |
| * testsuite/23_containers/unordered_multiset/debug/erase_if.cc: New test case. | |
| * testsuite/23_containers/unordered_multiset/debug/invalidation/erase_if.cc: New test case. | |
| * testsuite/23_containers/unordered_set/debug/erase_if.cc: New test case. | |
| * testsuite/23_containers/unordered_set/debug/invalidation/erase_if.cc: New test case. | |
| 2026-01-15 Jakub Jelinek <jakub@redhat.com> | |
| * include/std/type_traits (std::is_reflection, std::is_fundamental, | |
| std::is_reflection_v, std::is_consteval_only): Compare | |
| __cpp_impl_reflection >= 202506L instead of 202500L. | |
| * testsuite/20_util/variable_templates_for_traits.cc: Likewise. | |
| 2026-01-15 Marek Polacek <polacek@redhat.com> | |
| Jakub Jelinek <jakub@redhat.com> | |
| PR c++/120775 | |
| PR c++/123081 | |
| PR c++/122634 | |
| * include/Makefile.am (std_headers): Add ${std_srcdir}/meta. | |
| * include/Makefile.in: Regenerate. | |
| * include/bits/iterator_concepts.h (std::ranges::__access::__begin): Add | |
| constexpr. | |
| * include/bits/version.def (reflection): New. | |
| * include/bits/version.h: Regenerate. | |
| * include/precompiled/stdc++.h: Include <meta> for C++26. | |
| * include/std/meta: New file. | |
| * include/std/type_traits (std::is_reflection): New trait. | |
| (std::is_fundamental): Include is_reflection for C++26 -freflection. | |
| (std::is_reflection_v): New variable template. | |
| (std::is_consteval_only): New trait. | |
| (std::is_consteval_only_v): New variable template. | |
| * src/c++23/std.cc.in: Add <meta> exports. | |
| * testsuite/20_util/variable_templates_for_traits.cc: Add -freflection as | |
| dg-additional-options for C++26. Add std::is_reflection_v test in that case. | |
| * testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc: New test. | |
| * testsuite/20_util/is_consteval_only/requirements/typedefs.cc: New test. | |
| * testsuite/20_util/is_consteval_only/value.cc: New test. | |
| * testsuite/20_util/is_reflection/requirements/explicit_instantiation.cc: New test. | |
| * testsuite/20_util/is_reflection/requirements/typedefs.cc: New test. | |
| * testsuite/20_util/is_reflection/value.cc: New test. | |
| 2026-01-14 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/util/testsuite_iterators.h: Modify comment. | |
| 2026-01-13 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/stl_heap.h (std::__is_heap_until, std::__push_heap) | |
| (std::__adjust_heap): Replace subscript with dereference of | |
| advanced iterator. | |
| * testsuite/util/testsuite_iterators.h (__gnu_test::subscript_proxy) | |
| (__gnu_test::proxy_random_access_iterator_wrapper): Define. | |
| * testsuite/25_algorithms/sort_heap/check_proxy_brackets.cc: New test. | |
| 2026-01-12 Jakub Jelinek <jakub@redhat.com> | |
| * config/abi/pre/gnu.ver (CXXABI_1.3.14): Don't export _ZTI*DF16_ on | |
| s390x. | |
| (CXXABI_1.3.17): Export _ZTI*DF16_ on s390x. | |
| * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Remove | |
| _ZTI{,P,K}DF16_. | |
| 2026-01-12 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++20/atomic.cc (__detail::__spin_impl): Do not use | |
| reserved names for variables. | |
| 2026-01-12 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/atomic_wait.h (__wait_args): Improve comments. | |
| * src/c++20/atomic.cc (__wait_args::_M_setup_proxy_wait): | |
| Improve comment. | |
| 2026-01-12 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc: | |
| Updated test. | |
| 2026-01-10 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> | |
| * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Add | |
| names {,P,K}DF16. | |
| 2026-01-10 Wang Jinghao <zheng.xianyuwang@gmail.com> | |
| * src/c++11/system_error.cc (system_error_category) [_WIN32]: | |
| Use FormatMessageA function instead of FormatMessage macro. | |
| * testsuite/19_diagnostics/error_category/system_category.cc: | |
| Fix typo in __MINGW32__ macro name. Adjust behavior on the | |
| mingw32 target. | |
| 2026-01-10 Yuao Ma <c8ef@outlook.com> | |
| * include/bits/version.def: Add FTM. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/flat_map: Add constexpr. | |
| * testsuite/23_containers/flat_map/1.cc: Add constexpr test. | |
| * testsuite/23_containers/flat_multimap/1.cc: Add constexpr test. | |
| 2026-01-09 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++20/atomic.cc (use_proxy_wait): Remove unused second | |
| parameter. | |
| (__wait_args::_M_setup_proxy_wait): Remove second argument. | |
| (__notify_impl): Likewise. | |
| 2026-01-09 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/atomic_timed_wait.h (__atomic_wait_address_until): | |
| Use _M_on_wake instead of _M_setup_wait after waking. | |
| (__atomic_wait_address_for): Likewise. | |
| * include/bits/atomic_wait.h (__atomic_wait_address): Likewise. | |
| (__wait_args::_M_setup_wait): Remove third parameter and move | |
| code to update _M_old to ... | |
| (__wait_args::_M_on_wake): New member function to update _M_old | |
| after waking, only calling _M_setup_proxy_wait if needed. | |
| (__wait_args::_M_store): New member function to update _M_old | |
| from a value, for non-proxy waits. | |
| * src/c++20/atomic.cc (__wait_args::_M_setup_proxy_wait): If | |
| _M_obj is not addr, only load a new value and return true. | |
| 2026-01-09 Jonathan Wakely <jwakely@redhat.com> | |
| Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/122878 | |
| * include/bits/semaphore_base.h (_M_try_acquire): Replace | |
| _M_try_acquire_for call with explicit loop and call to | |
| __atomic_wait_address_for. | |
| (_M_try_acquire_for): Replace loop with call to | |
| _M_try_acquire_until. | |
| 2026-01-09 Keith Packard <keithp@keithp.com> | |
| * acinclude.m4 (GLIBCXX_CONFIGURE): Add --with-picolibc. | |
| * configure: Regenerate. | |
| * configure.ac: Add handling for with_picolibc=yes. | |
| * config/os/picolibc/ctype_base.h: New file. | |
| * config/os/picolibc/ctype_configure_char.cc: New file. | |
| * config/os/picolibc/ctype_inline.h: New file. | |
| * config/os/picolibc/os_defines.h: New file. | |
| 2026-01-08 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/20_util/variant/constinit.cc: Use scan-tree-dump | |
| for matching of constructor. | |
| * testsuite/20_util/variant/constinit_compat.cc: Likewise. | |
| * testsuite/lib/libstdc++.exp: Load scantree.exp and scandump.exp. | |
| 2026-01-07 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/123100 | |
| * include/std/sstream (basic_stringbuf::str()&&): Handle the | |
| case where _M_string is not being used for the buffer. | |
| * testsuite/27_io/basic_stringbuf/str/char/123100.cc: New test. | |
| 2026-01-07 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/atomic_wait.h (__wait_args::_M_setup_wait): | |
| Remove unreachable return statement. | |
| 2026-01-07 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/123406 | |
| * acinclude.m4 (GLIBCXX_CHECK_STDIO_LOCKING): Override detection | |
| of flockfile for non-cygwin newlib targets. | |
| * configure: Regenerate. | |
| 2026-01-07 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/123378 | |
| * include/std/barrier (~__tree_barrier_base): Define. | |
| 2026-01-07 Jakub Jelinek <jakub@redhat.com> | |
| PR libstdc++/123183 | |
| PR libstdc++/123326 | |
| * libsupc++/exception (std::bad_exception::~bad_exception(), | |
| std::bad_exception::what()): Add inline keyword and | |
| [[__gnu__::__gnu_inline__]] attribute to the C++26 constexpr | |
| exceptions definitions. | |
| * libsupc++/exception.h (std::exception::~exception(), | |
| std::exception::what()): Likewise. | |
| * libsupc++/exception_ptr.h (std::exception_ptr::exception_ptr(void*)): | |
| Likewise. | |
| * libsupc++/nested_exception.h | |
| (std::nested_exception::~nested_exception()): Likewise. | |
| * libsupc++/typeinfo (std::bad_cast::~bad_cast(), | |
| std::bad_cast::what(), std::bad_typeid::~bad_typeid(), | |
| std::bad_typeid::what()): Likewise. | |
| * include/bits/new_except.h (std::bad_alloc::~bad_alloc(), | |
| std::bad_alloc::what(), | |
| std::bad_array_new_length::~bad_array_new_length(), | |
| std::bad_array_new_length::what()): Likewise. | |
| * include/bits/stdexcept_except.h | |
| (std::logic_error::logic_error(const string&), | |
| std::logic_error::logic_error(const char*), | |
| std::logic_error::~logic_error(), std::logic_error::what(), | |
| std::domain_error::domain_error(const string&), | |
| std::domain_error::domain_error(const char*), | |
| std::invalid_argument::invalid_argument(const string&), | |
| std::invalid_argument::invalid_argument(const char*), | |
| std::length_error::length_error(const string&), | |
| std::length_error::length_error(const char*), | |
| std::out_of_range::out_of_range(const string&), | |
| std::out_of_range::out_of_range(const char*), | |
| std::runtime_error::runtime_error(const string&), | |
| std::runtime_error::runtime_error(const char*), | |
| std::runtime_error::~runtime_error(), std::runtime_error::what(), | |
| std::overflow_error::overflow_error(const string&), | |
| std::overflow_error::overflow_error(const char*), | |
| std::overflow_error::~overflow_error(), | |
| std::underflow_error::underflow_error(const string&), | |
| std::underflow_error::underflow_error(const char*), | |
| std::underflow_error::~underflow_error()): Likewise. | |
| (std::domain_error::~domain_error(), | |
| std::invalid_argument::~invalid_argument(), | |
| std::length_error::~length_error(), | |
| std::out_of_range::~out_of_range()): Likewise. Also change | |
| _GLIBCXX_NOTHROW to noexcept on those definitions. | |
| Copyright (C) 2026 Free Software Foundation, Inc. | |
| Copying and distribution of this file, with or without modification, | |
| are permitted in any medium without royalty provided the copyright | |
| notice and this notice are preserved. |