diff options
Diffstat (limited to 'libstdc++-v3/ChangeLog')
| -rw-r--r-- | libstdc++-v3/ChangeLog | 7975 |
1 files changed, 632 insertions, 7343 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index d88e4c7..358275a 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,7449 +1,738 @@ -2025-10-18 Iain Sandoe <iain@sandoe.co.uk> +2026-02-11 Tomasz Kamiński <tkaminsk@redhat.com> - PR c++/119060 - * include/bits/version.def: Add observable_checkpoint at present - allowed from C++26. - * include/bits/version.h: Regenerate. - * include/std/utility: Add std::observable_checkpoint(). - * src/c++23/std.cc.in: Add obervable_checkpoint () to utility. - -2025-10-17 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/atomic_base.h - (__atomic_ref_base::_S_required_alignment): Renamed from... - (__atomic_ref_base::_S_required_aligment): Renamed. - -2025-10-16 Jonathan Wakely <jwakely@redhat.com> - - * include/std/stacktrace - (operator<<(ostream&, const stacktrace_entry&)): Improve output - when description() or source_file() returns an empty string, - or the stacktrace_entry is invalid. Append frame address to - output. - (operator<<(ostream&, const basic_stacktrace<A>&)): Use the - size_type of the correct specialization. - -2025-10-15 Jonathan Wakely <jwakely@redhat.com> - - * python/libstdcxx/v6/printers.py (StdStacktraceEntryPrinter): - New printer for std::stacktrace_entry. - (StdStacktracePrinter): New printer for std::basic_stacktrace. - -2025-10-15 Jonathan Wakely <jwakely@redhat.com> - - * include/std/stacktrace (basic_stacktrace::current): Call - _M_trim before returning. - (basic_stacktrace::_M_trim): New member function. - -2025-10-15 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/122293 - * include/bits/chrono.h (__to_timeout_timespec): Fix - preprocessor condition to match the conditions under which - callers of this function are defined. - * include/bits/this_thread_sleep.h: Remove unused include. - -2025-10-15 Chris Johns <chrisj@rtems.org> - - * configure: Regenerate. - * configure.ac (newlib, *-rtems*): Add HAVE_SYS_IOCTL_H, - HAVE_SYS_STAT_H, HAVE_SYS_TYPES_H, HAVE_S_ISREG, HAVE_UNISTD_H, - HAVE_UNLINKAT, _GLIBCXX_USE_CHMOD, _GLIBCXX_USE_MKDIR, - _GLIBCXX_USE_CHDIR, _GLIBCXX_USE_GETCWD, _GLIBCXX_USE_UTIME, - _GLIBCXX_USE_LINK, _GLIBCXX_USE_READLINK, _GLIBCXX_USE_SYMLINK, - _GLIBCXX_USE_TRUNCATE and _GLIBCXX_USE_FDOPENDIR. - -2025-10-14 Mike Crowe <mac@mcrowe.com> - - PR libstdc++/116586 - * testsuite/30_threads/this_thread/sleep_for.cc: Add - test_negative() test. - * testsuite/30_threads/this_thread/sleep_until.cc: Make existing - test use both system_clock and steady_clock. Add test_negative() - test. - -2025-10-14 Mike Crowe <mac@mcrowe.com> - - PR libstdc++/116586 - * testsuite/30_threads/timed_mutex/try_lock_until/116586.cc: New - test. - -2025-10-14 Mike Crowe <mac@mcrowe.com> - - PR libstdc++/116586 - * testsuite/30_threads/recursive_timed_mutex/try_lock_until/116586.cc: - New test. - -2025-10-14 Mike Crowe <mac@mcrowe.com> - - PR libstdc++/116586 - * testsuite/30_threads/future/members/116586.cc: New test. + * 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. -2025-10-14 Mike Crowe <mac@mcrowe.com> +2026-02-11 Tomasz Kamiński <tkaminsk@redhat.com> - PR libstdc++/116586 - * testsuite/30_threads/condition_variable/members/116586.cc: New - test. + 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. -2025-10-14 Jonathan Wakely <jwakely@redhat.com> +2026-02-11 Jonathan Wakely <jwakely@redhat.com> - PR libstdc++/116586 - * testsuite/30_threads/shared_timed_mutex/try_lock_until/116586.cc: - New test. + PR libstdc++/123908 + * config/abi/pre/gnu.ver (GLIBCXX_3.4.35): Add exports for + std::__get_once_callable and std::__get_once_call. -2025-10-14 Mike Crowe <mac@mcrowe.com> - - PR libstdc++/116586 - * testsuite/30_threads/semaphore/try_acquire_for.cc: Add tests. - * testsuite/30_threads/semaphore/try_acquire_until.cc: Add - tests. - -2025-10-14 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/113327 - PR libstdc++/116586 - PR libstdc++/119258 - PR libstdc++/58931 - * include/bits/chrono.h (__to_timeout_timespec): New overloaded - function templates for converting chrono types to timespec. - * include/bits/std_mutex.h (__to_timeout_gthread_time_t): New - function template for converting time_point to __gthread_time_t. - * include/bits/this_thread_sleep.h (sleep_for): Use - __to_timeout_timespec. - (__sleep_for): Remove namespace-scope declaration. - * include/std/condition_variable: Likewise. - * include/std/mutex: Likewise. - * include/std/shared_mutex: Likewise. - * src/c++11/thread.cc (limit): New helper function. - (__sleep_for): Use limit to prevent overflow when converting - chrono::seconds to time_t, unsigned, or chrono::milliseconds. - * src/c++20/atomic.cc: Use __to_timeout_timespec and - __to_timeout_gthread_time_t for timeouts. - * testsuite/30_threads/this_thread/113327.cc: New test. - -2025-10-14 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/format (_M_format_range): Remove unused local type - alias _String. - -2025-10-14 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/hashtable.h: Check specific feature test macros - instead of checking thevalue of __cplusplus. - * include/bits/stl_map.h: Likewise. - * include/bits/stl_multimap.h: Likewise. - * include/bits/stl_multiset.h: Likewise. - * include/bits/stl_set.h: Likewise. - * include/bits/stl_tree.h: Likewise. - * include/bits/unordered_map.h: Likewise. - * include/bits/unordered_set.h: Likewise. - * include/debug/map.h: Likewise. - * include/debug/multimap.h: Likewise. - * include/debug/multiset.h: Likewise. - * include/debug/set.h: Likewise. - * include/debug/unordered_map: Likewise. - * include/debug/unordered_set: Likewise. - -2025-10-14 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/122255 - * src/c++17/fs_path.cc (path::_List::_Impl::~_Impl): Define - destructor. - (path::_List::_Impl::copy): Use create_unchecked. - (path::_List::_Impl): Add static assertions. - (path::_List::_Impl::create): New static member function. - (path::_List::_Impl::create_unchecked): Likewise. - (path::_List::_Impl_deleter::operator()): Use destructor. - (path::_List::reserve): Use create. - -2025-10-14 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/std/format (__format::__write_escape_seqs) - (__format::_Escaping_sink): Define. - (__format::__write_escaped_unicode_part): Extract from - __format::__write_escaped_unicode. - (__format::__write_escaped_unicode): Forward to - __write_escaped_unicode_part. - (__formatter_str::_M_format_range): Use _Escaping sink. - * testsuite/std/format/ranges/string.cc: New tests for - character which codepoints will be split in buffer and - escaping. Invoked test_padding. - -2025-10-14 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/118757 - * include/bits/shared_ptr_atomic.h (_Atomic_count::_M_wait_unlock): - Add parameter capturing reference to _M_ptr. Reimplement in terms - of __atomic_wait_address. - (_Atomic_count::~_Atomic_count, _Atomic_count::lock) - (_Atomic_count::unlock, _Atomic_count::_M_swap_unlock): Replace - invocation of atomic member funcitons with __atomic builtins. - (_Atomic_count::notify_one, _Atomic_count::notify_all): - Use __atomic_notify_address. - (_Sp_atomic::element_type): Define. - (_Sp_atomic::_M_val): Change type to uintptr_t. - (_Sp_atomic::wait): Pass _M_ptr to _M_wait_unlock. - * python/libstdcxx/v6/printers.py: - * testsuite/20_util/shared_ptr/atomic/pr118757.cc: New test. - * testsuite/20_util/weak_ptr/pr118757.cc: New test. - -2025-10-14 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/122267 - * include/bits/atomic_base.h - (__atomic_ref_base<const _Tp>::_S_required_alignment): - Use __alignof__ instead of alignof. - -2025-10-14 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/time/month_day/io.cc: New formatting tests. - * testsuite/std/time/month_day_last/io.cc: Likewise. - * testsuite/std/time/month_weekday/io.cc: Likewise. - * testsuite/std/time/month_weekday_last/io.cc: Likewise. - * testsuite/std/time/weekday_indexed/io.cc: Likewise. - * testsuite/std/time/weekday_last/io.cc: Likewise. - * testsuite/std/time/year_month/io.cc: Likewise. - -2025-10-13 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_iterator_base_funcs.h (advance): Fix comment. - -2025-10-13 Yuao Ma <c8ef@outlook.com> - - * include/bits/atomic_base.h: Implement address(). - * include/bits/version.def: Bump version number. - * include/bits/version.h: Regenerate. - * testsuite/29_atomics/atomic_ref/address.cc: New test. - -2025-10-13 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/unicode.h (_Utf_view::_M_read_reverse_utf16): - Fix check for high surrogate preceding low surrogate. - * testsuite/ext/unicode/view.cc: Check unpaired low surrogates. - -2025-10-13 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/unicode.h (__is_single_code_unit): Fix check for - 7-bit ASCII characters. - -2025-10-11 Gerald Pfeifer <gerald@pfeifer.com> - - * doc/xml/manual/build_hacking.xml: Update Autoconf manual link. - * doc/html/manual/appendix_porting.html: Regenerate. - -2025-10-10 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/122172 - * include/bits/shared_ptr_base.h (_Sp_counted_base): Define - _Unsigned_count_type for make_unsigned<_Atomic_word>. - Replace __int_traits<_Atomic_word> with equivalent expression. - * include/ext/atomicity.h (_GLIBCXX_UNSIGNED_ATOMIC_WORD): - Define macro for unsigned type to use for arithmetic. - (__exchange_and_add_single, __atomic_add_single): Use it. - -2025-10-10 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/time/month_day_last/io.cc: Remove TODO comments - for test_parse(). - * testsuite/std/time/month_weekday/io.cc: Likewise. - * testsuite/std/time/month_weekday_last/io.cc: Likewise. - * testsuite/std/time/weekday_indexed/io.cc: Likewise. - * testsuite/std/time/weekday_last/io.cc: Likewise. - * testsuite/std/time/year_month_day_last/io.cc: Likewise. - * testsuite/std/time/year_month_weekday/io.cc: Likewise. - * testsuite/std/time/year_month_weekday_last/io.cc: Likewise. - -2025-10-10 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/121790 - * include/bits/chrono_io.h (enable_nonlocking_formatter_optimization): - Adjust specializations for duration, hh_mm_ss and time_points. - * include/std/format (enable_nonlocking_formatter_optimization): - Apply remove_cvref_t on pair and tuple elements. - * include/std/queue (enable_nonlocking_formatter_optimization): - Change specialization value to false. - * include/std/stack (enable_nonlocking_formatter_optimization): - Change specialization value to false. - * testsuite/std/format/ranges/adaptors.cc: Adjusted tests. - * testsuite/std/format/tuple.cc: Adjusted tests. - * testsuite/std/time/format/nonlocking.cc: Adjusted tests. - -2025-10-10 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/121790 - * include/bits/chrono_io.h - (enable_nonlocking_formatter_optimization): Define specializations - for chrono types. - * include/bits/version.def (print): Bump. - * include/bits/version.h: Regenerate. - * include/std/format (enable_nonlocking_formatter_optimization): - Define specializations for pair, tuple and ranges. - * include/std/queue (enable_nonlocking_formatter_optimization): - Define specializations for queue and priority_queue. - * include/std/stack (enable_nonlocking_formatter_optimization): - Define specialization for stack. - * include/std/stacktrace (enable_nonlocking_formatter_optimization): - Define specialization for basic_stacktrace and stacktrace_entry. - * include/std/thread (enable_nonlocking_formatter_optimization): - Define specialization for thread::id. - * include/std/vector (enable_nonlocking_formatter_optimization): - Define specialization for vector<bool>::reference. - * testsuite/23_containers/vector/bool/format.cc: Test value of - enable_nonlocking_formatter_optimization. - * testsuite/30_threads/thread/id/output.cc: Likewise. - * testsuite/std/format/ranges/adaptors.cc: Likewise. - * testsuite/std/format/ranges/formatter.cc: Likewise. - * testsuite/std/format/tuple.cc: Likewise. - * testsuite/std/time/format/empty_spec.cc: Extract Rep class - to custom_rep.h. - * testsuite/std/time/format/custom_rep.h: Extracted from - empty_spec.cc. - * testsuite/std/time/format/nonlocking.cc: New test. - -2025-10-10 Jonathan Wakely <jwakely@redhat.com> - Tomasz Kamiński <tkaminsk@redhat.com> +2026-02-11 Jonathan Wakely <jwakely@redhat.com> - PR libstdc++/121790 - * acinclude.m4 (GLIBCXX_CHECK_STDIO_LOCKING): New macro to check - for std::print dependencies. - * config.h.in: Regenerate. + * 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. - * configure.ac: Use GLIBCXX_CHECK_STDIO_LOCKING. - * include/bits/formatfwd.h (enable_nonlocking_formatter_optimization): - Define new variable template. - * include/bits/version.def (print): Bump value. - * include/bits/version.h: Regenerate. - * include/std/format (enable_nonlocking_formatter_optimization): - Define specializations for variable template. - * include/std/ostream (print) [!_WIN32]: Do not use - vprint_unicode at all. - (println): Append newline to format string instead of formatting - twice. - * include/std/print (_File_sink): New class. - (vprint_nonunicode_locking): New function. - (vprint_unicode_locking): New function reusing previous code - from vprint_unicode. - (vprintf_unicode): Defer to vprint_nonunicode for Windows or to - vprint_unicode_locking otherwise. - (print): [!_WIN32]: Do no use vprint_unicode at all. - Check enable_nonlocking_formatter_optimization and defer to - either vprint_nonunicode_locking or vprint_nonunicode. - (println): Use vprint_unicode or format directly to a _File_sink - instead of formatting twice. - * testsuite/27_io/print/1.cc: Updated and added new tests. - * testsuite/std/format/formatter/nonlocking.cc: New tests. - -2025-10-10 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/115402 - * include/bits/atomic_base.h (__atomic_ref_base<const _Tp>) - (__atomic_ref_base<_Tp>): Define by extracting common methods - from atomic_ref specializations. - (__atomic_ref<_Tp, In, Fp, Pt>): Inherit from __atomic_ref_base - and remove extracted method. - (__atomic_ref<const _Tp, In, Fp, Pt>): Define. - * include/std/atomic (std::atomic): Added an - * testsuite/29_atomics/atomic/requirements/types_neg.cc: - Add test for volatile qualified types. - * testsuite/29_atomics/atomic_ref/bool.cc: Move the content - to op_support.cc, add test for bool. - * testsuite/29_atomics/atomic_ref/op_support.cc: New test - expanded from atomic_ref/bool.cc. - * testsuite/29_atomics/atomic_ref/cv_qual.cc: New test. - * testsuite/29_atomics/atomic_ref/requirements_neg.cc: New test. - * testsuite/29_atomics/atomic_ref/deduction.cc: Add tests for - cv-qualified types. - * testsuite/29_atomics/atomic_ref/float.cc: Likewise. - * testsuite/29_atomics/atomic_ref/generic.cc: Likewise. - * testsuite/29_atomics/atomic_ref/integral.cc: Likewise. - * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise. - * testsuite/29_atomics/atomic_ref/requirements.cc: Likewise. - * testsuite/29_atomics/atomic_ref/wait_notify.cc: Add tests for - const qualified types. - -2025-10-10 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/121929 - * include/bits/chrono_io.h (_ChronoData::_M_fill_aux) - (_ChronoData::_M_fill_aux): Add comment documenting precondition. - (formatter<chrono::year_month_day, _CharT>::format): Compute - local_days inline. - (formatter<chrono::year_month_day_last, _CharT>::format) - (formatter<chrono::year_month_weekday, _CharT>::format) - (formatter<chrono::year_month_weekday_last, _CharT>::format): - Change how the _M_day field is computed. - * testsuite/std/time/year_month_weekday/io.cc: Adjust tests. - -2025-10-09 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/hashtable.h (_Hashtable::_S_nothrow_move): Use - diagnostic pragmas to allow constexpr if in C++14. Use value - member instead of operator(). - -2025-10-09 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/version.tpl: Fix comment on #endif. Tweak - description of when macros are defined. - * include/bits/version.h: Regenerate. - -2025-10-09 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/time/year_month_day_last/io.cc: New formatting tests. - * testsuite/std/time/year_month_weekday/io.cc: Likewise. - * testsuite/std/time/year_month_weekday_last/io.cc: Likewise. - -2025-10-08 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/manual/status_cxx2017.xml: Replace broken link to PSTL - upstream. - * doc/xml/manual/status_cxx2020.xml: Likewise. - * doc/html/manual/status.html: Regenerate. - -2025-10-08 Jonathan Wakely <jwakely@redhat.com> - - * config/cpu/i486/atomicity.h: Removed. - -2025-10-08 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/122172 - * config/cpu/cris/atomicity.h: Removed. - -2025-10-08 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/indirect.h (indirect::operator=(indirect&&)): - Move assign allocator when POCMA is true. - (polymorphic::operator=(polymorphic&&)): Likewise. - * testsuite/std/memory/indirect/copy.cc: Remove constexpr from - functions that use tracker_allocator. Add test_constexpr(). - * testsuite/std/memory/indirect/copy_alloc.cc: Remove constexpr - from all functions and remove static_assert. - * testsuite/std/memory/indirect/ctor.cc: Do not use - scoped_allocator_adaptor during constant evaluation. - * testsuite/std/memory/indirect/move.cc: Remove constexpr from - functions that use tracker_allocator. Add test_constexpr(). - * testsuite/std/memory/indirect/move_alloc.cc: Remove constexpr - from all functions and remove static_assert. - * testsuite/std/memory/indirect/relops.cc: Invoke lambda in - static_assert. - * testsuite/std/memory/polymorphic/copy.cc: Remove constexpr - from functions that use tracker_allocator. Add test_constexpr(). - * testsuite/std/memory/polymorphic/copy_alloc.cc: Remove - constexpr from all functions and remove static_assert. - * testsuite/std/memory/polymorphic/ctor.cc: Do not use - scoped_allocator_adaptor during constant evaluation. - * testsuite/std/memory/polymorphic/ctor_poly.cc: Likewise. - * testsuite/std/memory/polymorphic/move.cc: Remove constexpr - from functions that use tracker_allocator. Add test_constexpr(). - * testsuite/std/memory/polymorphic/move_alloc.cc: Remove - constexpr from all functions and remove static_assert. - * testsuite/util/testsuite_allocator.h (tracker_allocator): - Remove redundant 'inline' from friend. - (uneq_allocator): Make all functions constexpr. - (uneq_allocator::base, uneq_allocator::swap_base): Remove. - (uneq_allocator::~uneq_allocator): Remove. - (uneq_allocator::allocate, uneq_allocator::deallocate): Do not - use map of allocations during constant evaluation. - (propagating_allocator): Make all functions constexpr. - (propagating_allocator::base): Remove. - (propagating_allocator::swap_base): Simplify. - (ExplicitConsAlloc, CustomPointerAlloc, NullablePointer): Add - constexpr to all functions. - -2025-10-08 Jakub Jelinek <jakub@redhat.com> - - * include/bits/unicode-data.h: Regenerate. - * testsuite/ext/unicode/properties.cc: Test __is_extended_pictographic - on U+1F004 rather than U+1F000. - -2025-10-08 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/chrono_io.h (_ChronoData::_M_fill_day): Replace - '%' by '/'. - -2025-10-08 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/std/time/format/format.cc: Include <vector>. - -2025-10-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/110352 - * include/std/mdspan (submdspan_mapping_result): New class. - * src/c++23/std.cc.in (submdspan_mapping_result): Add. - -2025-10-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/110352 - * include/std/mdspan (full_extent_t): New class. - * src/c++23/std.cc.in (full_extent_t): Add. - -2025-10-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/110352 - * include/bits/version.def (submdspan): New internal macro. - * include/bits/version.h: Regenerate. - * include/std/mdspan (strided_slice): New class. - * src/c++23/std.cc.in (strided_slice): Add. - * testsuite/23_containers/mdspan/submdspan/strided_slice.cc: New test. - * testsuite/23_containers/mdspan/submdspan/strided_slice_neg.cc: New test. - -2025-10-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__mdspan::__index_type_cast): Optimize by - skipping a __glibcxx_assert if it's know at compile-time. - (std::layout_left_padded, std::layout_righ_padded): Reorder - is_always_strided and is_unique member functions. - * testsuite/23_containers/mdspan/int_like.h: Rename _M_i to - value. - -2025-10-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/110352 - * include/std/mdspan (_RightPaddedIndices): Traits for right - padded layouts. - (layout_right::mapping::mapping) New overload for right padded - layouts. - (layout_right_padded): Add implementation. - * src/c++23/std.cc.in (layout_right_padded): Add. - * testsuite/23_containers/mdspan/layouts/ctors.cc: Update - test for right padded layouts. - * testsuite/23_containers/mdspan/layouts/empty.cc: Ditto. - * testsuite/23_containers/mdspan/layouts/mapping.cc: Ditto. - * testsuite/23_containers/mdspan/layouts/padded.cc: Ditto. - * testsuite/23_containers/mdspan/layouts/padded_neg.cc: Ditto. - * testsuite/23_containers/mdspan/layouts/padded_traits.h: Ditto. - -2025-10-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/110352 - * include/bits/version.def (padded_layouts): Add new internal - feature testing macro. - * include/bits/version.h: Regenerate. - * include/std/mdspan (__fwd_prod): New overload. - (layout_left_padded): Add declaration and implementation. - (layout_right_padded): Add declaration only. - (layout_left::mapping::mapping): New overload for left - padded mappings. - (__index_type_cast): New function that performs a checked cast - to index_type. - (__is_left_padded_mapping): New concept. - (__is_right_padded_mapping): Ditto. - (__standardized_mapping): Recognize left and right padded - mappings. - (_LeftPaddedIndices): Traits for left padded details. - (_PaddedStorage): New class for implementing padded layouts. - * src/c++23/std.cc.in (layout_left_padded): Add. - * testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc: - Refactor and add tests for layout_left_padded. - * testsuite/23_containers/mdspan/layouts/ctors.cc: Ditto. - * testsuite/23_containers/mdspan/layouts/empty.cc: Ditto. - * testsuite/23_containers/mdspan/layouts/mapping.cc: Ditto. - * testsuite/23_containers/mdspan/layouts/padded.cc: Ditto. - * testsuite/23_containers/mdspan/layouts/padded_neg.cc: Ditto. - * testsuite/23_containers/mdspan/layouts/padded_traits.h: New - traits. - -2025-10-07 Jonathan Wakely <jwakely@redhat.com> - - * configure.host: Fix spelling in comment. - -2025-10-07 Jonathan Wakely <jwakely@redhat.com> - - * include/ext/ropeimpl.h (rope::_S_fetch): Initialize variable. - -2025-10-07 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/sat_arith.h (mul_sat): Add parentheses around - operands. - -2025-10-07 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/std/time/parse/parse.cc: Initialize variable. - -2025-10-07 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/20_util/shared_ptr/cons/move.cc: Add comment and - dg-prune-output for -Wpessimizing-move warning. - * testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc: - Likewise. - -2025-10-07 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/random.h (philox_engine(result_type)): Reorder - ctor-initializer-list to match declaration order. -2025-10-07 Jonathan Wakely <jwakely@redhat.com> +2026-02-06 Jonathan Wakely <jwakely@redhat.com> - * include/bits/basic_string.h (basic_string::_M_check): Cast - size_type arguments to size_t. - -2025-10-05 Sam James <sam@gentoo.org> - - * Makefile.in: Regenerate. - * aclocal.m4: Regenerate. - * configure: Regenerate. - * doc/Makefile.in: Regenerate. - * include/Makefile.in: Regenerate. - * libsupc++/Makefile.in: Regenerate. - * po/Makefile.in: Regenerate. - * python/Makefile.in: Regenerate. - * src/Makefile.in: Regenerate. - * src/c++11/Makefile.in: Regenerate. - * src/c++17/Makefile.in: Regenerate. - * src/c++20/Makefile.in: Regenerate. - * src/c++23/Makefile.in: Regenerate. - * src/c++26/Makefile.in: Regenerate. - * src/c++98/Makefile.in: Regenerate. - * src/experimental/Makefile.in: Regenerate. - * src/filesystem/Makefile.in: Regenerate. - * src/libbacktrace/Makefile.in: Regenerate. + * testsuite/Makefile.am (new-abi-baseline): Overwrite existing + file instead of creating baseline_symbols.txt.new. * testsuite/Makefile.in: Regenerate. -2025-10-03 Tomasz Kamiński <tkaminsk@redhat.com> - - * doc/html/manual/index.html: Regenerated. - * doc/html/manual/status.html: Regenerated. - * doc/xml/manual/status_cxx2020.xml: Added status table. - -2025-10-01 François Dumont <frs.dumont@gmail.com> - - * include/std/vector (std::erase_if, std::erase): Replace _GLIBCXX20_CONSTEXPR - with 'constexpr' and remove implied 'inline' keyword. - * include/std/string (std::erase_if, std::erase): Likewise. - -2025-10-01 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc: Use - wcslen(cs) instead of sizeof(cs)-1. - -2025-10-01 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/20_util/unique_ptr/modifiers/93562.cc: Define a - separate deleter for array cases. - -2025-10-01 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc - (Cvt::do_length): Fix signature to override virtual function in - base. - * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc: - (Cvt::do_length): Likewise. - * testsuite/27_io/basic_filebuf/underflow/char/1.cc - (NoconvCvt::do_in): Likewise. - * testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc - (checksumcvt::do_length): Likewise. - -2025-10-01 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/22_locale/time_get/get/char/3.cc: Add parentheses to - x == y|z expression. - * testsuite/22_locale/time_get/get/wchar_t/3.cc: Likewise. - * testsuite/28_regex/algorithms/regex_match/multiline.cc: - Likewise. - -2025-10-01 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_uninitialized.h (uninitialized_copy) - (uninitialized_fill, uninitialized_fill_n): Use pragmas to - suppress -Wclass-memaccess warnings. - -2025-10-01 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/std/memory/polymorphic/copy.cc: Fix spelling of - typedef. - -2025-09-30 François Dumont <frs.dumont@gmail.com> - - * include/std/inplace_vector: - (std::swap(inplace_vector<>&, inplace_vector<>&)): Remove the duplicated - implementation at std namespace level. Keep the friend inline one. - (inplace_vector<Tp, 0>::assign(initializer_list<>)): Add missing return - statement. - -2025-09-27 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/20_util/allocator_traits/members/allocate_hint.cc: - Value-initialize variables to avoid -Wmaybe-uninitialized - warning. - * testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc: - Likewise. - * testsuite/20_util/duration/114244.cc: Likewise. - * testsuite/20_util/duration/io.cc: Likewise. - -2025-09-27 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/deque.tcc (deque::_M_shrink_to_fit): Cast - difference_type to size_type to avoid -Wsign-compare warning. - * include/std/spanstream (basic_spanbuf::seekoff): Cast - streamoff to size_t to avoid -Wsign-compare warning. - -2025-09-27 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc: - Fix assignment used instead of equality comparison. - * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc: - Likewise. - * testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc: - Likewise. - * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc: - Likewise. - * testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc: - Likewise. - * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc: - Likewise. - * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc: - Likewise. - * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc: - Likewise. - * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc: - Likewise. - * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc: - Likewise. - * testsuite/23_containers/map/cons/from_range.cc: Fix is_equal - function and expected value of comparison functions after - construction. - * testsuite/23_containers/multimap/cons/from_range.cc: Likewise. - * testsuite/23_containers/multiset/cons/from_range.cc: Likewise. - * testsuite/23_containers/set/cons/from_range.cc: Likewise. - * testsuite/23_containers/unordered_map/cons/from_range.cc: Fix - is_equal functions. - * testsuite/23_containers/unordered_multimap/cons/from_range.cc: - Likewise. - * testsuite/23_containers/unordered_multiset/cons/from_range.cc: - Likewise. - * testsuite/23_containers/unordered_set/cons/from_range.cc: - Likewise. - * testsuite/25_algorithms/minmax/constrained.cc: Fix assignment - used instead of equality comparison. - * testsuite/27_io/manipulators/extended/get_time/wchar_t/1.cc: - Likewise. - -2025-09-26 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_algobase.h (__search, __is_permutation): - Reuse predicate instead of creating a new one each time. - * include/bits/stl_algo.h (__is_permutation): Likewise. - -2025-09-26 Jonathan Wakely <jwakely@redhat.com> - - * include/std/deque (erase_if): Move predicate instead of - wrapping with std::ref. - (erase): Forward to erase_if. - * include/std/inplace_vector (erase_if, erase): Likewise. - * include/std/string (erase_if, erase): Likewise. - * include/std/vector (erase_if, erase): Likewise. - -2025-09-26 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/predefined_ops.h (equal_to, less): Define aliases - for std::equal_to<void> and std::less<void>. - (bind1st, bind2nd, not1, __equal_to): New object generator - functions for adapting predicates. - (__iter_less_iter, __iter_less_val, __iter_comp_val) - (__val_less_iter, __val_comp_iter, __iter_equal_to_iter) - (__iter_equal_to_val, __iter_comp_iter, __negate): Remove all - object generator functions and the class templates they return. - * include/bits/stl_algo.h (__move_median_to_first, __find_if_not) - (__find_if_not_n, __search_n_aux, find_end, find_if_not) - (__remove_copy_if, remove_copy, remove_copy_if, remove) - (remove_if, __adjacent_find, __unique, unique, __unique_copy) - (__unique_copy_1, __stable_partition_adaptive, stable_partition) - (__heap_select, __partial_sort_copy, partial_sort_copy) - (__unguarded_linear_insert, __insertion_sort) - (__unguarded_insertion_sort, __unguarded_partition) - (lower_bound, __upper_bound, upper_bound, __equal_range) - (equal_range, binary_search, __move_merge_adaptive) - (__move_merge_adaptive_backward, __merge_adaptive_resize) - (__merge_without_buffer, inplace_merge, __move_merge) - (__includes, includes, __next_permutation, next_permutation) - (__prev_permutation, prev_permutation, __replace_copy_if) - (replace_copy, replace_copy_if, __is_sorted_until) - (is_sorted_until, __minmax_element, minmax_element, minmax) - (is_permutation, __is_permutation, find, find_if, adjacent_find) - (count, count_if, search, search_n, unique_copy, partial_sort) - (nth_element, sort, __merge, merge, stable_sort, __set_union) - (set_union, __set_intersection, set_intersection) - (__set_difference, set_difference, __set_symmetric_difference) - (set_symmetric_difference, __min_element, min_element) - (__max_element, max_element, min, max): Use direct predicates - instead of __iter_equal_to_iter, __iter_comp_iter, and - __iter_less_iter, __negate etc. Dereference iterators when - invoking predicates. - * include/bits/stl_algobase.h (__lexicographical_compare_impl) - (__lexicographical_compare::__lc, __lower_bound, lower_bound) - (lexicographical_compare, __mismatch, mismatch, __find_if) - (__count_if, __remove_if, __search, __is_permutation) - (is_permutation, search): Likewise. - * include/bits/stl_function.h (equal_to<void>, less<void>): - Define transparent comparison functions for C++98 and C++11. - * include/bits/stl_heap.h (__is_heap_until, __is_heap) - (__push_heap, push_heap, __adjust_heap, pop_heap, make_heap) - (sort_heap, is_heap_until, is_heap): Likewise. - * include/std/deque (erase_if): Remove call to __pred_iter. - (erase): Replace __iter_equals_val with __equal_to. - * include/std/inplace_vector (erase_if, erase): Likewise. - * include/std/string (erase_if, erase): Likewise. - * include/std/vector (erase_if, erase): Likewise. - -2025-09-26 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/122062 - * include/bits/random.tcc (__detail::__normalize): Use void cast - for operands of comma operator. - (piecewise_linear_distribution): Likewise. - * testsuite/26_numerics/random/piecewise_linear_distribution/cons/122062.cc: - New test. - -2025-09-25 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__static_quotient): New overload. - -2025-09-25 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_algo.h: Check robust_nonmodifying_seq_ops - feature test macro instead of checking __cplusplus value. Add - comment to another __cplusplus check. - * include/bits/stl_algobase.h: Add comment to #endif. - -2025-09-25 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/79147 - PR libstdc++/103650 - * include/Makefile.am (c++config.h): Adjust sed command to - comment out STDC_HEADERS macro. - * include/Makefile.in: Regenerate. - -2025-09-25 Luc Grosheintz <luc.grosheintz@gmail.com> - - * testsuite/23_containers/mdspan/layouts/empty.cc: Fix indent. - * testsuite/23_containers/mdspan/layouts/mapping.cc - (test_stride_1d): Fix test. - (test_stride_2d): Rewrite using a struct. - (test_stride_3d): Ditto. - (has_static_is_exhaustive): New concept. - (test_mapping_properties): Update test. - -2025-09-24 Luc Grosheintz <luc.grosheintz@gmail.com> - Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/20_util/function_objects/not_fn/nttp.cc: Move - test of feature testing macro to version.cc - * testsuite/20_util/function_objects/not_fn/version.cc: New test. - -2025-09-24 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/chrono_io.h (__formatter_duration::_S_spec_for_tp): - Extracted from defition of formatter<sys_time>::__defSpec. - (formatter<chrono::sys_time<_Duration>, _CharT>::parse): Simplify - condition in if contexpr. - (formatter<chrono::sys_time<_Duration>, _CharT>::__stream_insertable): - Remove. - (formatter<chrono::sys_time<_Duration>, _CharT>::__defSpec) - (formatter<chrono::local_time<_Duration>, _CharT>::__defSpec): - Compute using __formatter_duration::_S_spec_for_tp. - (forrmatter<chrono::sys_time<_Duration>, _CharT>::parse): Check if - parse _M_chrono_spec - * testsuite/std/time/format/empty_spec.cc: Extend tests for floating - point and other non-streamable durations (years). - -2025-09-24 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/chrono_io.h (__formatter_chrono::_M_parse): - Replace _ParseContext with basic_format_parse_context<_CharT> and - make it non-template. - (__formatter_duration::_M_parse): Replace _ParseContext with - basic_format_parse_context<_CharT> and remove unused default - argument. - -2025-09-24 Patrick Palka <ppalka@redhat.com> - - * testsuite/17_intro/names.cc: Undefine 'u' on s390*-linux. - -2025-09-23 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/random.h: Include <bits/ios_base.h> instead of - <iomanip>. Change preprocessor checks to use internal feature - test macro. - (philox_engine): Reword doxygen comments. Use typename instead - of class in template parameter lists. Reformat and adjust - whitespace. - (philox_engine::_If_seed_seq): Replace alias template with - __is_seed_seq variable template. - (philox_engine::philox_engine(result_type)): Define inline. - (philox_engine::seed(result_type), philox_engine::set_counter) - (philox_engine::operator(), philox_engine::discard): Likewise. - (operator==): Define as defaulted. - (operator<<): Reuse widened char. - * include/bits/random.tcc: Reformat and adjust whitespace. - (philox_engine::_M_philox): Use std::array copy constructor and - std::array::fill instead of looping. - * testsuite/26_numerics/random/philox4x32.cc: Gate test on - feature test macro. Add static_assert to check typedef. - * testsuite/26_numerics/random/philox4x64.cc: Likewise. - * testsuite/26_numerics/random/philox_engine/cons/copy.cc: Add - VERIFY assertions to check copies are equal. Test different - seeds. - * testsuite/26_numerics/random/philox_engine/cons/default.cc: - Add VERIFY assertions to check construction results. - * testsuite/26_numerics/random/philox_engine/cons/seed.cc: - Likewise. - * testsuite/26_numerics/random/philox_engine/operators/equal.cc: - Also test inequality. - * testsuite/26_numerics/random/philox_engine/operators/serialize.cc: - Remove redundant include and return. - * testsuite/26_numerics/random/philox_engine/requirements/constants.cc: - Check values of all constants. - * testsuite/26_numerics/random/philox_engine/requirements/typedefs.cc: - Check typedefs are correct. - * testsuite/26_numerics/random/philox_engine/cons/119794.cc: - Removed. - * testsuite/26_numerics/random/philox_engine/cons/seed_seq.cc: - Removed. - * testsuite/26_numerics/random/philox_engine/operators/inequal.cc: - Removed. - * testsuite/26_numerics/random/philox_engine/requirements/constexpr_data.cc: - Removed. - * testsuite/26_numerics/random/philox_engine/requirements/constexpr_functions.cc: - Removed. - * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error - line number. - -2025-09-23 1nfocalypse <1nfocalypse@protonmail.com> - - PR libstdc++/119794 - * include/bits/random.h (philox_engine): Define. - * include/bits/random.tcc (philox_engine): Define member - functions. - * include/bits/version.def (philox_engine): New macro. - * include/bits/version.h: Regenerated. - * include/std/random: Define __glibcxx_want_philox_engine and - include <bits/version.h>. - * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error - line number. - * testsuite/26_numerics/random/philox4x32.cc: New test. - * testsuite/26_numerics/random/philox4x64.cc: New test. - * testsuite/26_numerics/random/philox_engine/cons/119794.cc: New test. - * testsuite/26_numerics/random/philox_engine/cons/copy.cc: New test. - * testsuite/26_numerics/random/philox_engine/cons/default.cc: New test. - * testsuite/26_numerics/random/philox_engine/cons/seed.cc: New test. - * testsuite/26_numerics/random/philox_engine/cons/seed_seq.cc: New test. - * testsuite/26_numerics/random/philox_engine/operators/equal.cc: New test. - * testsuite/26_numerics/random/philox_engine/operators/inequal.cc: New test. - * testsuite/26_numerics/random/philox_engine/operators/serialize.cc: New test. - * testsuite/26_numerics/random/philox_engine/requirements/constants.cc: New test. - * testsuite/26_numerics/random/philox_engine/requirements/constexpr_data.cc: New test. - * testsuite/26_numerics/random/philox_engine/requirements/constexpr_functions.cc: New test. - * testsuite/26_numerics/random/philox_engine/requirements/typedefs.cc: New test. - -2025-09-23 Ben Wu <soggysocks206@gmail.com> - - PR libstdc++/118087 - * include/bits/deque.tcc: Use _Temporary_value in - _M_emplace_aux. - * include/bits/stl_deque.h: Introduce _Temporary_value. - * testsuite/23_containers/deque/modifiers/emplace/118087.cc: - New test. - -2025-09-23 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/121940 - * include/bits/funcwrap.h (__polyfunc::__deduce_funcref): Return void - for ill-formed constructs. - (function_ref(nontype_t<__f>, _Tp&&)): Constrain on __deduce_funcref - producing non-void results. - * testsuite/20_util/function_ref/deduction.cc: Negative tests. - -2025-09-23 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/79147 - * include/Makefile.am (c++config.h): Adjust sed command to - comment out all PACKAGE_XXX macros and to avoid adjusting - PACKAGE_VERSION twice. - * include/Makefile.in: Regenerate. - -2025-09-23 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/chrono_io.h (formatter<chrono::utc_time, _CharT>): - (formatter<chrono::gps_time<_Duration>, _CharT>) - (formatter<chrono::tai_time<_Duration>, _CharT): Remove - __formatter_chrono base class. - -2025-09-22 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/chrono_io.h(__formatter_chrono::_M_parse): Update - needed flags for %g, %G, %V, %U, %W. - (__formatter_chrono::_M_format_to): Change how %V is handled. - (__formatter_chrono::_M_g_G): Merged into _M_g_G_V. - (__formatter_chrono::_M_g_G_V): Reworked from _M_g_G. - (__formatter_chrono::_M_U_V_W): Changed into _M_U_V. - (__formatter_chrono::_M_U_W): Reworked implementation. - * testsuite/std/time/year_month_day/io.cc: New tests. - -2025-09-22 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/106658 - * include/bits/stl_construct.h (std::start_lifetime_as_array) - (std::start_lifetime_as): Moved from std/memory, with update - to guard macros. - * include/std/memory (std::start_lifetime_as_array) - (std::start_lifetime_as): Moved to bits/stl_construct.h. - -2025-09-19 Nathan Myers <ncm@cantrip.org> - - PR libstdc++/119744 - * include/bits/version.def: Redefine __cpp_lib_bind_front etc. - * include/bits/version.h: Ditto. - * include/std/functional: Add new bind_front etc. overloads - * testsuite/20_util/function_objects/bind_back/1.cc: - Check plumbing better - * testsuite/20_util/function_objects/bind_back/nttp.cc: New test. - * testsuite/20_util/function_objects/bind_back/nttp_neg.cc: New test. - * testsuite/20_util/function_objects/bind_front/1.cc: - Check plumbing better - * testsuite/20_util/function_objects/bind_front/nttp.cc: New test. - * testsuite/20_util/function_objects/bind_front/nttp_neg.cc: New test. - * testsuite/20_util/function_objects/not_fn/nttp.cc: New test. - * testsuite/20_util/function_objects/not_fn/nttp_neg.cc: New test. - * testsuite/20_util/headers/functional/synopsis.cc: New decls. - -2025-09-19 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/chrono_io.h: Remove unused <iomanip> header. - (operator<<): Constrain overload for chrono::local_time. - * testsuite/std/time/clock/local/io.cc: Check constraints. - -2025-09-19 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/version.def (start_lifetime_as): Move adjacent to - other C++23 macros. - * include/bits/version.h: Regenerate. - -2025-09-18 Jakub Jelinek <jakub@redhat.com> - - PR c++/106658 - * include/bits/version.def: Implement C++23 P2590R2 - Explicit - lifetime management. - (start_lifetime_as): New. - * include/bits/version.h: Regenerate. - * include/std/memory (std::start_lifetime_as, - std::start_lifetime_as_array): New function templates. - * src/c++23/std.cc.in (std::start_lifetime_as, - std::start_lifetime_as_array): Export. - * testsuite/std/memory/start_lifetime_as/start_lifetime_as.cc: New test. - -2025-09-17 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/111861 - * include/bits/ranges_algo.h (ranges::unique_copy): When - initializing a value type object from *iter, use - direct-initialization and don't use a deduced type. - (ranges::push_heap): Use direct-initialization when initializing - a value type object from ranges::iter_move. - (ranges::max): As in ranges::unique_copy. - * include/bits/ranges_util.h (ranges::min): Likewise. - -2025-09-17 Patrick Palka <ppalka@redhat.com> - - * testsuite/20_util/bind/dangling_ref.cc: Compile with - -Wsystem-headers. - * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise. - * testsuite/20_util/unique_ptr/lwg4148.cc: Likewise. - * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: - Likewise. - * testsuite/30_threads/packaged_task/cons/dangling_ref.cc: - Likewise. - -2025-09-16 Jonathan Wakely <jwakely@redhat.com> - - * include/std/ranges (__detail::__repeated_tuple): Use - __make_tuple helper alias directly, instead of doing overload - resolution on std::tuple_cat. - * include/std/tuple (__make_tuple_impl): Remove. - (__do_make_tuple): Replace recursion with _Index_tuple and pack - expansion. - (__make_tuple): Adjust to new __do_make_tuple definition. - (__combine_tuples<tuple<T1s...>, tuple<T2s...>, Rem...>): Replace - with a partial specialization for exactly two tuples and a - partial specialization for three or more tuples. - -2025-09-16 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121913 - * include/bits/ranges_algo.h (__rotate_fn::operator()): Use - auto_value_t<_Iter> instead of deduced type. - -2025-09-16 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121956 - * include/std/ranges (adjacent_view::_Iterator::value_type): - Always define as std::tuple<T, N>, not std::pair<T, T>. - * testsuite/std/ranges/adaptors/adjacent/1.cc: Check value type - of views::pairwise. - -2025-09-16 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_uninitialized.h (uninitialized_move) - (uninitialized_move_n): Replace _GLIBCXX_MAKE_MOVE_ITERATOR with - std::make_move_iterator. - -2025-09-16 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/119820 - * include/bits/ranges_algo.h (__shuffle_fn): Use - ranges::distance to get difference type value to add to - iterator. - * include/std/format (__formatter_str::_M_format_range): - Use ranges::next to increment iterator by a size_t value. - -2025-09-13 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/121917 - * include/bits/ranges_algo.h (__shuffle_fn::operator()): Only - consider the two-at-a-time PRNG optimization if the range is - sized. - * testsuite/25_algorithms/shuffle/constrained.cc (test03): New - test. - -2025-09-12 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121913 - * include/bits/ranges_algo.h (__rotate_fn::operator()): Use - ranges::iter_move(it) instead of std::move(*it). - * testsuite/25_algorithms/rotate/121913.cc: New test. - -2025-09-12 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121890 - * include/bits/ranges_algo.h (ranges::rotate, ranges::shuffle) - (__insertion_sort, __unguarded_partition_pivot, __introselect): - Use ranges::next to advance iterators. Use local variables in - rotate to avoid duplicate expressions. - (ranges::push_heap, ranges::pop_heap, ranges::partial_sort) - (ranges::partial_sort_copy): Use ranges::prev. - (__final_insertion_sort): Use iter_difference_t<Iter> - for operand of operator+ on iterator. - * include/bits/ranges_base.h (ranges::advance): Use iterator's - difference_type for all iterator arithmetic. - * include/bits/stl_algo.h (__search_n_aux, __rotate) - (__insertion_sort, __unguarded_partition_pivot, __introselect) - (__final_insertion_sort, for_each_n, random_shuffle): Likewise. - Use local variables in __rotate to avoid duplicate expressions. - * include/bits/stl_algobase.h (__fill_n_a, __lc_rai::__newlast1): - Likewise. - * include/bits/stl_heap.h (push_heap): Likewise. - (__is_heap_until): Add static_assert. - (__is_heap): Convert distance to difference_type. - * include/std/functional (boyer_moore_searcher::operator()): Use - iterator's difference_type for iterator arithmetic. - * testsuite/util/testsuite_iterators.h - (random_access_iterator_wrapper): Add deleted overloads of - operators that should be called with difference_type. - * testsuite/24_iterators/range_operations/advance.cc: Use - ranges::next. - * testsuite/25_algorithms/heap/constrained.cc: Use ranges::next - and ranges::prev. - * testsuite/25_algorithms/nth_element/58800.cc: Use std::next. - * testsuite/25_algorithms/nth_element/constrained.cc: Use - ptrdiff_t for loop variable. - * testsuite/25_algorithms/nth_element/random_test.cc: Use - iterator's difference_type instead of int. - * testsuite/25_algorithms/partial_sort/check_compare_by_value.cc: - Use std::next. - * testsuite/25_algorithms/partial_sort/constrained.cc: Use - ptrdiff_t for loop variable. - * testsuite/25_algorithms/partial_sort/random_test.cc: Use - iterator's difference_type instead of int. - * testsuite/25_algorithms/partial_sort_copy/constrained.cc: - Use ptrdiff_t for loop variable. - * testsuite/25_algorithms/partial_sort_copy/random_test.cc: - Use iterator's difference_type instead of int. - * testsuite/std/ranges/adaptors/drop.cc: Use ranges::next. - * testsuite/25_algorithms/fill_n/diff_type.cc: New test. - * testsuite/25_algorithms/lexicographical_compare/diff_type.cc: - New test. - -2025-09-12 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/117276 - * include/pstl/parallel_backend_tbb.h (__func_task::finalize): - Make deallocation unconditional. - -2025-09-12 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121046 - * include/debug/bitset (bitset(const CharT*, ...)): Add - constraints on CharT type. - -2025-09-12 Jonathan Wakely <jwakely@redhat.com> - - * config/cpu/generic/atomicity_mutex/atomicity.h - (__exchange_and_add): Use const_cast to remove volatile. - -2025-09-11 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/71945 - * include/bits/shared_ptr_base.h (_Sp_counted_base::_S_chk): - Trap if a reference count cannot be incremented any higher. - (_Sp_counted_base::_M_add_ref_copy): Use _S_chk. - (_Sp_counted_base::_M_add_weak_ref): Likewise. - (_Sp_counted_base<_S_mutex>::_M_add_ref_lock_nothrow): Likewise. - (_Sp_counted_base<_S_atomic>::_M_add_ref_lock_nothrow): Likewise. - (_Sp_counted_base<_S_single>::_M_add_ref_copy): Use _S_chk. - -2025-09-11 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/71945 - * include/bits/shared_ptr_base.h - (_Sp_counted_base::_M_get_use_count): Cast _M_use_count to - unsigned before returning as long. - (_Sp_counted_base<_S_single>::_M_add_ref_copy): Use atomic - helper function to adjust ref count using unsigned arithmetic. - (_Sp_counted_base<_S_single>::_M_weak_release): Likewise. - (_Sp_counted_base<_S_single>::_M_get_use_count): Cast - _M_use_count to unsigned before returning as long. - (_Sp_counted_base<_S_single>::_M_add_ref_lock_nothrow): Use - _M_add_ref_copy to do increment using unsigned arithmetic. - (_Sp_counted_base<_S_single>::_M_release): Use atomic helper and - _M_weak_release to do decrements using unsigned arithmetic. - (_Sp_counted_base<_S_mutex>::_M_release): Add comment. - (_Sp_counted_base<_S_single>::_M_weak_add_ref): Remove - specialization. - -2025-09-11 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121148 - * config/cpu/generic/atomicity_mutex/atomicity.h - (__exchange_and_add): Call __exchange_and_add_single. - * include/ext/atomicity.h (__exchange_and_add_single): Use an - unsigned type for the addition. - * libsupc++/Makefile.am (atomicity.o): Compile with -fwrapv. - * libsupc++/Makefile.in: Regenerate. - -2025-09-11 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/iterator_concepts.h (_IterMove::_S_noexcept) - (_IterSwap::_S_noexcept): Change constexpr to consteval. - * include/bits/ranges_base.h (_Begin::_S_noexcept) - (_End::_S_noexcept, _RBegin::_S_noexcept, _REnd::_S_noexcept) - (_Size::_S_noexcept, _Empty::_S_noexcept, _Data::_S_noexcept): - Likewise. - * include/std/concepts (_Swap::_S_noexcept): Likewise. - -2025-09-11 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/ranges_base.h (__detail::__to_unsigned_like) - (__access::__possible_const_range, __access::__as_const) - (__distance_fn::operator(), __next_fn::operator()) - (__prev_fn::operator()): Add always_inline attribute. - (_Begin::operator(), _End::operator(), _RBegin::operator()) - (_REnd::operator(), _Size::operator(), _SSize::operator()) - (_Empty::operator(), _Data::operator(), _SSize::operator()): - Likewise. Move nodiscard attribute to start of declaration. - -2025-09-11 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/shared_ptr_base.h (__weak_ptr): Avoid calling - lock() when converting or assigning a weak_ptr<Derived> to - a weak_ptr<Base> in case Base is not a virtual base of Derived. - This logic is centralized in _S_safe_upcast, called by the - various converting constructors/assignment operators. - (_S_safe_upcast): New helper function. - * testsuite/20_util/weak_ptr/cons/virtual_bases.cc: New test. - -2025-09-11 Jonathan Wakely <jwakely@redhat.com> - - * include/std/syncstream: Remove trailing whitespace. - -2025-09-11 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/time/year_month_day/io.cc: Additional tests. - -2025-09-10 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/unique_ptr.h: Remove blank line. - -2025-09-10 Jonathan Wakely <jwakely@redhat.com> - - * include/std/functional (boyer_moore_searcher::operator()): Add - static_assert. - (boyer_moore_horspool_searcher::operator()): Likewise. - * testsuite/20_util/function_objects/121782.cc: New test. - -2025-09-10 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (_ExtentsStorage::_Base): New name for - _S_base. - (_ExtentsStorage::_Storage): New name for _S_storage. - (extents::_Storage): New name for _S_storage. - (layout_stride::mapping::_Strides): New name for - _S_stries_t. - * testsuite/23_containers/mdspan/class_mandate_neg.cc: Update - test to the new error message. - -2025-09-10 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/span (__integral_constant_like): Use - remove_cvref_t before checking if _Tp::value is boolean. - * testsuite/23_containers/mdspan/extents/misc.cc: Update test. - * testsuite/23_containers/mdspan/mdspan.cc: Ditto. - * testsuite/23_containers/span/deduction.cc: Ditto. - -2025-09-10 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/121765 - * include/std/format (__format::_Drop_iter): Define. - (_Iter_for_t::type): Change alias to _Drop_iter. - (__format::__format_padded): Return __fc.out() for - _Drop_iter. - * testsuite/std/format/pr121765.cc: New test. - -2025-09-10 Tomasz Kamiński <tkaminsk@redhat.com> - - * doc/html/manual/status.html: Regenerate. - * doc/xml/manual/status_cxx2020.xml: Add more entires. - -2025-09-10 Tomasz Kamiński <tkaminsk@redhat.com> - - * doc/html/index.html: Regenerated. - * doc/html/manual/index.html: Regenerated. - * doc/html/manual/intro.html: Regenerated. - * doc/html/manual/status.html: Regenatered. - * doc/xml/manual/status_cxx2020.xml: Add iso.2020.specific - section with atomic_ref documentation. - -2025-09-09 Jonathan Wakely <jwakely@redhat.com> - - * include/std/type_traits (_CwFixedValue::_S_type): Rename to - __type. - (constant_wrapper): Rename template parameter in declaration to - match later definition. - -2025-09-09 Arsen Arsenović <arsen@aarsen.me> - - * doc/xml/manual/using_exceptions.xml: Replace "Tunables" link - with one that does not have an anchor. - * doc/html/manual/using_exceptions.html: Regenerate. - -2025-09-08 Jonathan Wakely <jwakely@redhat.com> - - * include/std/type_traits (constant_wrapper): Rename template - parameter to avoid BADNAME. - -2025-09-08 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120698 - * doc/xml/manual/configure.xml: Do not claim that vtv is enabled - by default. - * doc/html/manual/configure.html: Regenerate. - -2025-09-08 Nathan Myers <ncm@cantrip.org> - - * src/c++20/Makefile.in: Mention syncbuf.lo. - -2025-09-08 Nathan Myers <ncm@cantrip.org> - - * include/std/syncstream: (syncbuf<>::__mutex) Remove _S_get_mutex, - use extern function instead. - * src/c++20/syncbuf.cc: Define global __syncbuf_get_mutex. - * src/c++20/Makefile.am: Mention syncbuf.cc. - * src/c++20/Makefile.in: Regenerate. - * config/abi/pre/gnu.ver: Mention mangled __syncbuf_get_mutex. - -2025-09-08 Jakub Jelinek <jakub@redhat.com> - - PR libstdc++/121827 - * include/precompiled/extc++.h: Don't include ext/cast.h which is an - internal header. - * include/ext/pointer.h: Include bits/c++config.h before - #if _GLIBCXX_HOSTED. - -2025-09-08 Gerald Pfeifer <gerald@pfeifer.com> - - * doc/xml/manual/using_exceptions.xml: Update link to "Tunables" - section in the Glibc manual. - * doc/html/manual/using_exceptions.html: Regenerate. - -2025-09-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/span (__integral_constant_like): Allow the member - `value` of a constant wrapping type to be a const reference of - an integer. - * testsuite/23_containers/mdspan/extents/misc.cc: Add test for - cw and constant_wrapper. - * testsuite/23_containers/mdspan/mdspan.cc: Ditto. - * testsuite/23_containers/span/deduction.cc: Ditto. - -2025-09-08 Luc Grosheintz <luc.grosheintz@gmail.com> - Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/version.def (constant_wrapper): Add. - * include/bits/version.h: Regenerate. - * include/std/type_traits (_CwFixedValue): New class. - (_IndexSequence): New struct. - (_BuildIndexSequence): New struct. - (_ConstExprParam): New concept. - (_CwOperators): New struct. - (constant_wrapper): New struct. - (cw): New global constant. - * src/c++23/std.cc.in (constant_wrapper): Add. - (cw): Add. - * testsuite/20_util/constant_wrapper/adl.cc: New test. - * testsuite/20_util/constant_wrapper/ex.cc: New test. - * testsuite/20_util/constant_wrapper/generic.cc: New test. - * testsuite/20_util/constant_wrapper/instantiate.cc: New test. - * testsuite/20_util/constant_wrapper/op_comma_neg.cc: New test. - * testsuite/20_util/constant_wrapper/version.cc: New test. - * testsuite/20_util/constant_wrapper/other_wrappers.cc: New file. - -2025-09-05 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/121804 - * include/std/ranges (join_view::_Iterator::_M_get_inner): - Mark noexcept. - * testsuite/std/ranges/adaptors/join.cc (test16): New test. - -2025-09-05 Tomasz Kamiński <tkaminsk@redhat.com> - - * doc/html/manual/status.html: Regenerate. - * doc/xml/manual/status_cxx2011.xml: Add entry for bad_function_call. - * doc/xml/manual/status_cxx2017.xml: Add entries for bad_any_cast - and nullptr_t output. Update entry for sf.cmath. Fix stable name for - mem.res. - -2025-09-05 Tomasz Kamiński <tkaminsk@redhat.com> - - * doc/html/manual/status.html: Regenerate the file. - * doc/xml/manual/status_cxx2017.xml: Addd more entires. - -2025-09-04 Patrick Palka <ppalka@redhat.com> - - * include/std/ranges (join_view::_Iterator::_M_satisfy): - Adjust to handle non-std::optional _M_inner as per before LWG 3569. - (join_view::_Iterator::_M_get_inner): New. - (join_view::_Iterator::_M_inner): Don't wrap in std::optional if - the iterator is forward. Initialize. - (join_view::_Iterator::operator*): Use _M_get_inner instead - of *_M_inner. - (join_view::_Iterator::operator++): Likewise. - (join_view::_Iterator::iter_move): Likewise. - (join_view::_Iterator::iter_swap): Likewise. - -2025-09-04 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/binders.h (_Binder::_S_call): Make public. - * include/std/ranges (ranges::_Partial<_Adaptor, _Args...>): - Replace tuple<_Args...> with _Bind_back_t<_Adaptor, _Args...>. - (ranges::_Partial<_Adaptor, _Arg>): Remove. - -2025-09-04 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/Makefile.am: Add bits/binders.h - * include/Makefile.in: Add bits/binders.h - * include/std/functional (std::_Indexed_bound_arg, std::_Binder) - (std::__make_bound_args, std::_Bind_front_t, std::_Bind_back_t): - Moved to bits/binders.h file, that is now included. - * include/bits/binders.h: New file. - -2025-09-04 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/std/functional: (std::_Indexed_bound_arg): Fixed - indentation. - (__Bound_arg_storage::_S_apply_front) - (__Bound_arg_storage::_S_apply_front): Merged into _S_apply. - (__Bound_arg_storage::_S_apply): Merged above, add _Back template - parameter, replace std::invoke with std::__invoke. - (std::_Bind_front): Renamed to std::_Binder and add _Back - template parameter. - (std::_Binder): Renamed from std::_Bind_front. - (_Binder::_Result_t, _Binder::_S_noexcept_invoke): Define. - (_Binder::operator()): Use _Result_t and _S_noexcept_invoke. - (_Binder::_S_call): Handle zero args specially, replace std::invoke - with std::__invoke. - (std::_Bind_front_t, std::_Bind_back_t): Defined in terms - of _Binder. - (std::_Bind_back): Merged into _Binder. - * testsuite/20_util/function_objects/bind_back/1.cc: New tests. - * testsuite/20_util/function_objects/bind_back/111327.cc: Updated - error messages. - * testsuite/20_util/function_objects/bind_front/1.cc: New tests. - * testsuite/20_util/function_objects/bind_front/111327.cc: Updated - error messages. - -2025-09-04 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (layout_left::mapping::operator()): Add - _GLIBCXX_RESOLVE_LIB_DEFECTS marker for 4314. - (layout_left::mapping::operator()): Ditto. - (layout_stride::mapping::operator()): Ditto. - -2025-09-04 Tomasz Kamiński <tkaminsk@redhat.com> - - * doc/html/manual/status.html: Regenerated the file. - * doc/xml/manual/status_cxx1998.xml: Add stable name to - each entry. - -2025-09-03 Yihan Wang <yronglin777@gmail.com> - - * include/std/expected (expected(U&&)): Add missing constraint - as per LWG 4222. - * testsuite/20_util/expected/lwg4222.cc: New test. - -2025-09-03 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121745 - * include/bits/stl_pair.h (get): Use forward instead of move in - std::get<T> overloads for rvalue pairs. - * testsuite/20_util/pair/astuple/get_by_type.cc: Check all value - categories and cv-qualification. - -2025-09-03 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/110853 - * include/bits/stl_pair.h [C++20] (pair(const T1&, const T2&)): - Use std::type_identity_t<T1> for first parameter. - * testsuite/20_util/pair/cons/110853.cc: New test. - -2025-09-03 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/version.def (chrono_cxx20): Define. - * include/bits/version.h: Regenerate. - * include/std/chrono: Check __glibcxx_chrono_cxx20 instead of - __cpp_lib_chrono for C++20 features that don't require the new - std::string ABI and/or can be used for freestanding. - * src/c++20/clock.cc: Adjust preprocessor condition. - -2025-09-02 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/bits/utility.h (_Index_tuple): Move to <type_traits>. - (_Build_index_tuple): Ditto. - * include/std/type_traits (_Index_tuple): Ditto. - (_Build_index_tuple): Ditto. - -2025-09-02 Tomasz Kamiński <tkaminsk@redhat.com> - - * libsupc++/compare (__cmp_cat::__literal_zero): Rename - from __unspec. - (__cmp_cat::__unspec): Rename to __literal_zero. - (operator==, operator<, operator>, operator<=, operator>=): - Replace __cmp_cat::__unspec to __cmp_cat::__literal_zero. - -2025-08-31 Gerald Pfeifer <gerald@pfeifer.com> - - * doc/xml/manual/using_exceptions.xml: Update link to - Boost's "Exception-Safety" - * doc/html/manual/using_exceptions.html: Rebuild. - -2025-08-31 Jonathan Wakely <jwakely@redhat.com> - - * src/c++26/debugging.cc [_GLIBCXX_HAVE_SYS_PTRACE_H]: Include - <sys/types.h>. - (breakpoint) [__i386__ || __x86_64__]: Use "int 0x03" instead of - "int3". - -2025-08-28 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/119670 - * acinclude.m4 (GLIBCXX_CHECK_DEBUGGING): Check for facilities - needed by <debugging>. - * config.h.in: Regenerate. - * configure: Regenerate. - * configure.ac: Use GLIBCXX_CHECK_DEBUGGING. - * include/Makefile.am: Add new header. - * include/Makefile.in: Regenerate. - * include/bits/version.def (debugging): Add. - * include/bits/version.h: Regenerate. - * include/precompiled/stdc++.h: Add new header. - * src/c++26/Makefile.am: Add new file. - * src/c++26/Makefile.in: Regenerate. - * include/std/debugging: New file. - * src/c++26/debugging.cc: New file. - * testsuite/19_diagnostics/debugging/breakpoint.cc: New test. - * testsuite/19_diagnostics/debugging/breakpoint_if_debugging.cc: - New test. - * testsuite/19_diagnostics/debugging/is_debugger_present.cc: New - test. - * testsuite/19_diagnostics/debugging/is_debugger_present-2.cc: - New test. - -2025-08-28 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/18_support/comparisons/categories/zero_neg.cc: New test. - -2025-08-28 Weslley da Silva Pereira <weslley.spereira@gmail.com> - - * include/std/complex (polar, __complex_sqrt, pow) - (__complex_pow_unsigned): Use explicit conversions from int to - the complex value_type. - -2025-08-28 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121046 - * include/std/bitset (bitset(const CharT*, ...)): Add - constraints on CharT type. - * testsuite/23_containers/bitset/lwg4294.cc: New test. - -2025-08-28 Tomasz Kamiński <tkaminsk@redhat.com> - - * libsupc++/compare (__cmp_cat::_Ord): Add unordered enumerator. - (__cmp_cat::_Ncmp): Remove. - (__cmp_cat::__ord, __cmp_cat::__make): Define. - (partial_ordering::partial_ordering(__cmp_cat::_Ncmp)): Remove. - (operator<=>(__cmp_cat::__unspec, partial_ordering)) - (partial_ordering::unordered): Replace _Ncmp with _Ord. - (std::partial_ordering, std::weak_ordering, std::strong_ordering): - Befriend __ord and __make helpers, remove friend declartions for - other orderings. - (__compare::__fp_weak_ordering): Remove unused __cat variable. - Simplify ordering conversions. - -2025-08-27 Tomasz Kamiński <tkaminsk@redhat.com> - - * libsupc++/compare - (operator<=>(__cmp_cat::__unspec, partial_ordering)): - Implement using _M_reverse. - -2025-08-27 Nathan Myers <ncm@cantrip.org> - - * include/std/chrono (gps_clock::now, tai_clock::now): Remove - inline definitions. - * src/c++20/clock.cc (gps_clock::now, tai_clock::now): New file - for out-of-line now() impls. - * src/c++20/Makefile.am: Mention clock.cc. - * src/c++20/Makefile.in: Regenerate. - * config/abi/pre/gnu.ver: add mangled now() symbols. - -2025-08-27 Tomasz Kamiński <tkaminsk@redhat.com> - - * libsupc++/compare (_Ncmp::_Unordered): Rename and change the value - to minimum value of signed char. - (_Ncomp::unordered): Renamed from _Unordered, the name is reserved - by partial_ordered::unordered. - (partial_ordering::_M_reverse()): Define. - (operator<=(partial_ordering, __cmp_cat::__unspec)) - (operator>=(__cmp_cat::__unspec, partial_ordering)): Implemented - in terms of negated _M_value. - (operator>=(partial_ordering, __cmp_cat::__unspec)) - (operator<=(__cmp_cat::__unspec, partial_ordering)): Directly - compare _M_value, as unordered value is negative. - (partial_ordering::unordered): Handle _Ncmp::unoredred rename. - * python/libstdcxx/v6/printers.py: Add -128 as integer value - for unordered, keeping 2 to preserve backward compatibility. - -2025-08-27 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/funcwrap.h (__polyfunc::_Mo_base): Reorder _M_manage - and _M_storage members. Make _M_destroy protected and remove friend - declaration. - * testsuite/20_util/copyable_function/call.cc: Add test for aliasing - base class. - * testsuite/20_util/move_only_function/call.cc: Likewise. - -2025-08-26 Patrick Palka <ppalka@redhat.com> - - * include/std/ranges (__detail::_CachedPosition): Remove - additional size constraint on the offset-based partial - specialization. - -2025-08-26 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/90192 - * include/bits/stl_vector.h (vector<T>::_M_fill_append): Declare. - (vector<T>::fill): Use _M_fill_append instead of _M_fill_insert. - * include/bits/vector.tcc (vector<T>::_M_fill_append): Define - (vector<T>::_M_fill_insert): Delegate to _M_fill_append when - elements are appended. - * testsuite/23_containers/vector/modifiers/moveable.cc: Updated - copycount for inserting at the end (appending). - * testsuite/23_containers/vector/modifiers/resize.cc: New test. - * testsuite/backward/hash_set/check_construct_destroy.cc: Updated - copycount, the hash_set constructor uses insert to fill buckets - with nullptrs. - -2025-08-26 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/move.h (std::__like_impl, std::__like_t): Make - available in c++11. - * include/std/functional (std::_Indexed_bound_arg) - (std::_Bound_arg_storage, std::__make_bound_args): Define. - (std::_Bind_front, std::_Bind_back): Use _Bound_arg_storage. - * testsuite/20_util/function_objects/bind_back/1.cc: Expand - test to cover cases of 0, 1, many bound args. - * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise. - * testsuite/20_util/function_objects/bind_front/1.cc: Likewise. - * testsuite/20_util/function_objects/bind_front/111327.cc: Likewise. - -2025-08-26 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/std/stop_token (__variant::_Never_valueless_alt): Declare. - (__variant::_Never_valueless_alt<std::stop_token>) - (__variant::_Never_valueless_alt<std::stop_source>): Define. - * include/std/thread: (__variant::_Never_valueless_alt): Declare. - (__variant::_Never_valueless_alt<std::jthread>): Define. - -2025-08-21 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121496 - * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Do not - use _GLIBCXX_TSAN in _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK macro. - * configure: Regenerate. - -2025-08-21 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121496 - * include/std/mutex (__timed_mutex_impl::_M_try_wait_until): - Change preprocessor condition to use #if instead of #ifdef. - (recursive_timed_mutex::_M_clocklock): Likewise. - * testsuite/30_threads/timed_mutex/121496.cc: New test. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/120994 - * include/bits/version.def (aligned_accessor): Add. - * include/bits/version.h: Regenerate. - * include/std/mdspan (aligned_accessor): New class. - * src/c++23/std.cc.in (aligned_accessor): Add. - * testsuite/23_containers/mdspan/accessors/generic.cc: Add tests - for aligned_accessor. - * testsuite/23_containers/mdspan/accessors/aligned_neg.cc: New test. - * testsuite/23_containers/mdspan/version.cc: Add test for - __cpp_lib_aligned_accessor. - * testsuite/23_containers/mdspan/accessors/debug/aligned_access_neg.cc: New file. - * testsuite/23_containers/mdspan/accessors/debug/aligned_offset_neg.cc: New file. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/120994 - * include/bits/align.h (is_sufficiently_aligned): New function. - * include/bits/version.def (is_sufficiently_aligned): Add. - * include/bits/version.h: Regenerate. - * include/std/memory: Add __glibcxx_want_is_sufficiently_aligned. - * src/c++23/std.cc.in (is_sufficiently_aligned): Add. - * testsuite/20_util/headers/memory/version.cc: Add test for - __cpp_lib_is_sufficiently_aligned. - * testsuite/20_util/is_sufficiently_aligned/1.cc: New test. - -2025-08-21 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121374 - * include/std/limits (numeric_limits<__float128>::max_digits10): - Fix value. - * testsuite/18_support/numeric_limits/128bit.cc: Check value. - -2025-08-21 Jonathan Wakely <jwakely@redhat.com> - - PR c++/117294 - * testsuite/20_util/optional/cons/value_neg.cc: Prune additional - output for C++20 and later. - * testsuite/20_util/scoped_allocator/69293_neg.cc: Match - additional error for C++20 and later. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/bits/version.def (mdspan): Set value for C++26. - * include/bits/version.h: Regenerate. - * include/std/mdspan (dims): Add. - * src/c++23/std.cc.in (dims): Add. - * testsuite/23_containers/mdspan/extents/misc.cc: Add tests. - * testsuite/23_containers/mdspan/version.cc: Update test. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__static_prod): Delete. - (__fwd_partial_prods): Compute at compile-time in O(rank), not - O(rank**2). - (__rev_partial_prods): Ditto. - (__size): Inline __static_prod. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__fwd_partial_prods): Reduce size of the - array by 1 element. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__valid_static_extent): Replace - numeric_limits with __int_traits. - (extents::_S_ctor_explicit): Ditto. - (extents::__static_quotient): Ditto. - (layout_stride::mapping::mapping): Ditto. - (mdspan::size): Ditto. - * testsuite/23_containers/mdspan/extents/class_mandates_neg.cc: - Update test with additional diagnostics. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (extents::operator==): Replace loop with - pack expansion. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__mdspan::__all_static): New function. - (__mdspan::_StaticExtents::_S_is_dyn): Inline and eliminate. - (__mdspan::_ExtentsStorage::_S_is_dynamic): New method. - (__mdspan::_ExtentsStorage::_M_extent): Use _S_is_dynamic. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__fwd_prods): Relax condition for fully-dynamic - extents to cover (dyn, ..., dyn, X). - (__rev_partial_prods): Analogous for (X, dyn, ..., dyn). - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__mdspan::__all_dynamic): New function. - (__mdspan::_StaticExtents::_S_dynamic_index): Convert to method. - (__mdspan::_StaticExtents::_S_dynamic_index_inv): Ditto. - (__mdspan::_StaticExtents): New specialization for fully dynamic - extents. - (__mdspan::__fwd_prod): New constexpr if branch to avoid - instantiating __fwd_partial_prods. - (__mdspan::__rev_prod): Ditto. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__mdspan::__fwd_prod): Optimize - for rank <= 2. - (__mdspan::__rev_prod): Ditto. - (__mdspan::__size): Refactor to use a pre-computed product, not - a partial product. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__mdspan::__static_prod): New function. - (__mdspan::__fwd_partial_prods): Constexpr array of partial - forward products. - (__mdspan::__fwd_partial_prods): Same for reverse partial - products. - (__mdspan::__static_extents_prod): Delete function. - (__mdspan::__extents_prod): Renamed from __exts_prod and refactored. - include/std/mdspan (__mdspan::__fwd_prod): Compute as the - product of pre-computed static static and the product of dynamic - extents. - (__mdspan::__rev_prod): Ditto. - -2025-08-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__mdspan::_StaticExtents): Extract non IndexType - related code from _ExtentsStorage. - (__mdspan::_ExtentsStorage): Use _StaticExtents. - (__mdspan::__static_extents): Return reference to NTTP of _StaticExtents. - (__mdspan::__contains_zero): New overload. - (__mdspan::__exts_prod, __mdspan::__static_quotient): Use span to avoid - copying __sta_exts. - -2025-08-19 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/104874 - * testsuite/24_iterators/random_access/string_vector_iterators.cc: - Call test6642. - -2025-08-18 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/121476 - * include/bits/ranges_algo.h (__all_of_fn::operator()): - (__any_of_fn::operator(), __none_of_fn::operator()) - (__find_first_of_fn::operator(), __count_fn::operator()) - (__find_end_fn::operator(), __remove_if_fn::operator()) - (__remove_fn::operator(), __unique_fn::operator()) - (__is_sorted_until_fn::operator(), __is_sorted_fn::operator()) - (__lower_bound_fn::operator(), __upper_bound_fn::operator()) - (__equal_range_fn::operator(), __binary_search_fn::operator()) - (__is_partitioned_fn::operator(), __partition_point_fn::operator()) - (__minmax_fn::operator(), __min_element_fn::operator()) - (__includes_fn::operator(), __max_fn::operator()) - (__lexicographical_compare_fn::operator(), __clamp__fn::operator()) - (__find_last_fn::operator(), __find_last_if_fn::operator()) - (__find_last_if_not_fn::operator()): Add [[nodiscard]] attribute. - * include/bits/ranges_algobase.h (__equal_fn::operator()): - Add [[nodiscard]] attribute. - * include/bits/ranges_util.h (__find_fn::operator()) - (__find_if_fn::operator(), __find_if_not_fn::operator()) - (__mismatch_fn::operator(), __search_fn::operator()) - (__min_fn::operator(), __adjacent_find_fn::operator()): - Add [[nodiscard]] attribute. - * include/bits/stl_algo.h (std::min(initializer_list<T>)) - (std::min(initializer_list<T>, _Compare)) - (std::max(initializer_list<T>)) - (std::mmax(initializer_list<T>, _Compare)): Add _GLIBCXX_NODISCARD. - * testsuite/25_algorithms/min/constrained.cc: Silence nodiscard - warning. - * testsuite/25_algorithms/max/constrained.cc: Likewise. - * testsuite/25_algorithms/minmax/constrained.cc: Likewise. - * testsuite/25_algorithms/minmax_element/constrained.cc: Likewise. - -2025-08-18 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/121313 - * include/bits/vector.tcc (vector::insert_range): Add check for - empty size. - * testsuite/23_containers/vector/modifiers/insert/insert_range.cc: - New tests. - -2025-08-10 H.J. Lu <hjl.tools@gmail.com> - - * configure: Regenerated. - -2025-08-07 Gerald Pfeifer <gerald@pfeifer.com> - - * doc/xml/manual/build_hacking.xml: Switch gcc.gnu.org installation - docs to https. - * doc/html/manual/appendix_porting.html: Regenerate. - -2025-08-05 Jakub Jelinek <jakub@redhat.com> - - PR libstdc++/121373 - * src/c++23/std.cc.in (std::ranges::iter_move, std::ranges::iter_swap): - Remove exports. - -2025-08-04 Jakub Jelinek <jakub@redhat.com> - hexne <printfne@gmail.com> - - PR libstdc++/121373 - * src/c++23/std.cc.in (std::ranges::shift_left, - std::ranges::shift_right): Only export for C++23 and later. - (std::ranges::fold_left_first_with_iter_result, - std::ranges::fold_left_with_iter_result): Export. - (std::byteswap): Export for C++23 and later. - (std::ranges::iter_move, std::ranges::iter_swap): Export. - (std::projected_value_t): Export for C++26 and later. - (std::out_ptr_t, std::inout_ptr_t): Export. - (std::ranges::iota_result): Export. - (std::regex_constants): Export a lot of constants. - (std::is_scoped_enum, std::is_scoped_enum_v): Export. - -2025-08-04 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/121128 - * include/bits/indirect.h (indirect::operator*): - Cast __self to approparietly qualified indirect. - * testsuite/std/memory/indirect/access.cc: New test. - * testsuite/std/memory/polymorphic/access.cc: New test. - -2025-08-03 Jakub Jelinek <jakub@redhat.com> - - * src/c++23/std.cc.in (std::owner_equal, std::owner_hash): Export. - -2025-07-30 François Dumont <frs.dumont@gmail.com> - - * testsuite/std/time/format/data_not_present_neg.cc: Remove _GLIBCXX_USE_DUAL_ABI - check. - -2025-07-29 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/format/ranges/format_kind.cc: New test. - -2025-07-28 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/102181 - * include/bits/stl_iterator_base_funcs.h (distance, advance): - Check C++20 iterator concepts and handle appropriately. - (__detail::__iter_category_converts_to_concept): New concept. - (__detail::__promotable_iterator): New concept. - * testsuite/24_iterators/operations/cxx20_iterators.cc: New - test. - -2025-07-28 Nathan Myers <ncm@cantrip.org> - - PR libstdc++/119742 - * include/debug/bitset: Add new ctor. - -2025-07-28 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan: Small stylistic adjustments. - -2025-07-28 Luc Grosheintz <luc.grosheintz@gmail.com> - - * testsuite/23_containers/mdspan/accessors/generic.cc: Refactor - test_ctor. - -2025-07-28 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/121196 - * include/std/inplace_vector (std::erase): Provide default argument - for _Up parameter. - * testsuite/23_containers/inplace_vector/erasure.cc: Add test for - using braces-init-list as arguments to erase_if and use function - to verify content of inplace_vector - -2025-07-25 Tuur Martens <tuurmartens4@gmail.com> - - * include/bits/unordered_map.h: Rectify referencing of - non-existent type. - -2025-07-24 Nathaniel Shead <nathanieloshead@gmail.com> - - PR c++/117294 - PR c++/113854 - * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust - diagnostics. - * testsuite/20_util/expected/illformed_neg.cc: Likewise. - * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise. - * testsuite/23_containers/array/creation/3_neg.cc: Likewise. - * testsuite/24_iterators/range_generators/lwg3900.cc: Likewise. - * testsuite/29_atomics/atomic/requirements/types_neg.cc: - Likewise. - * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc: - Likewise. - * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc: - Likewise. - * testsuite/std/format/arguments/args_neg.cc: Likewise. - * testsuite/std/format/string_neg.cc: Likewise. - -2025-07-24 Tomasz Kamiński <tkaminsk@redhat.com> +2026-02-06 Nathan Myers <ncm@cantrip.org> - PR libstdc++/104874 - * testsuite/24_iterators/random_access/string_vector_iterators.cc: - Reworked. + * include/bits/stl_function.h (__heterogeneous_key): Use + C++17-defined remove_cvref<>::type instead. -2025-07-24 Tomasz Kamiński <tkaminsk@redhat.com> +2026-02-05 Caolán McNamara <caolanm@gmail.com> - * testsuite/21_strings/basic_string/cons/from_range.cc: Replace - test_constexpr with test_ranges inside static_assert. - * testsuite/21_strings/basic_string/modifiers/append/append_range.cc: - Likewise. - * testsuite/21_strings/basic_string/modifiers/assign/assign_range.cc: - Likewise. - * testsuite/21_strings/basic_string/modifiers/insert/insert_range.cc: - Likewise. - * testsuite/21_strings/basic_string/modifiers/replace/replace_with_range.cc: - Likewise. - * testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise. - * testsuite/23_containers/vector/bool/modifiers/assign/assign_range.cc: - Likewise. - * testsuite/23_containers/vector/bool/modifiers/insert/insert_range.cc: - Likewise. - * testsuite/23_containers/vector/cons/from_range.cc: Likewise. - * testsuite/23_containers/vector/modifiers/assign/assign_range.cc: - Likewise. - * testsuite/23_containers/vector/modifiers/insert/insert_range.cc: - Likewise. - * testsuite/23_containers/vector/bool/modifiers/insert/append_range.cc: - Run full test_ranges instead of span-only in test_constexpr. - * testsuite/23_containers/vector/modifiers/append_range.cc: - Replace test_constexpr with calls to test_ranges and test_overlapping. - * testsuite/util/testsuite_allocator.h (__gnu_test::SimpleAllocator): - Declared member functions as constexpr. - -2025-07-23 Luc Grosheintz <luc.grosheintz@gmail.com> + * include/bits/regex.tcc (regex_traits::lookup_collatename): + Make __collatenames array const. - * testsuite/23_containers/mdspan/accessors/default.cc: Delete. - * testsuite/23_containers/mdspan/accessors/generic.cc: Slightly - generalize the test code previously in default.cc. +2026-02-05 Jonathan Wakely <jwakely@redhat.com> -2025-07-23 Luc Grosheintz <luc.grosheintz@gmail.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. - * testsuite/23_containers/mdspan/extents/ctor_ints.cc: Remove - superfluous parens. - * testsuite/23_containers/mdspan/extents/ctor_shape.cc: Ditto. - * testsuite/23_containers/mdspan/mdspan.cc: Ditto. +2026-02-05 Jonathan Wakely <jwakely@redhat.com> -2025-07-23 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119137 - * testsuite/23_containers/inplace_vector/access/elem.cc: Cover - front and back methods and const calls. - * testsuite/23_containers/inplace_vector/access/elem_neg.cc: - Likewise. - * testsuite/23_containers/inplace_vector/modifiers/erase_neg.cc: - New test. - * testsuite/23_containers/inplace_vector/modifiers/single_insert_neg.cc: - New test. + * 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>>. -2025-07-22 Tomasz Kamiński <tkaminsk@redhat.com> +2026-02-05 Jonathan Wakely <jwakely@redhat.com> - PR libstdc++/119137 - * testsuite/23_containers/inplace_vector/cons/from_range.cc: Run - iterators and range test at compile-time. - * testsuite/23_containers/inplace_vector/modifiers/assign.cc: - Likewise. - * testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc: - Likewise. - * testsuite/util/testsuite_iterators.h (__gnu_test::BoundsContainer) - (__gnu_test::OutputContainer, __gnu_test::WritableObject) - (__gnu_test::output_iterator_wrapper, __gnu_test::input_iterator_wrapper) - (__gnu_test::forward_iterator_wrapper) - (__gnu_test::bidirectional_iterator_wrapper) - (__gnu_test::random_access_iterator_wrapper) - (__gnu_test::test_container): Add appropriate _GLIBCXXNN_CONSTEXPR - macros to member functions. - (__gnu_test::contiguous_iterator_wrapper) - (__gnu_test::input_iterator_wrapper_rval) - (__gnu_test::test_range, __gnu_test::test_range_nocopy) - (__gnu_test::test_sized_range_sized_sent) - (__gnu_test::test_sized_range): Add constexpr specifier to member - functions. - -2025-07-22 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119137 - * include/std/inplace_vector (inplace_vector::assign_range): - Replace _Nm with _M_size in the assigment loop. - -2025-07-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (mdspan::mdspan): Make default ctor - conditionally noexcept. - * testsuite/23_containers/mdspan/mdspan.cc: Add tests. - -2025-07-21 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (mdspan::is_always_unique): Make - conditionally noexcept. - (mdspan::is_always_exhaustive): Ditto. - (mdspan::is_always_strided): Ditto. - (mdspan::is_unique): Ditto. - (mdspan::is_exhaustive): Ditto. - (mdspan::is_strided): Ditto. - * testsuite/23_containers/mdspan/layout_like.h: Make noexcept - configurable. Add ThrowingLayout. - * testsuite/23_containers/mdspan/mdspan.cc: Add tests for - noexcept. - -2025-07-20 Jakub Jelinek <jakub@redhat.com> - - PR libstdc++/121174 - * src/c++23/std.cc.in (std::dextents): Export. Add to FIXME comments - other not yet implemented nor exported <mdspan> entities. - -2025-07-18 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_iterator_base_types.h (__any_input_iterator): - Only define when __cpp_lib_concepts is defined. - -2025-07-18 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/manual/appendix_contributing.xml: Remove Paolo from - list of maintainers to contact about contributing. - * doc/html/manual/appendix_contributing.html: Regenerate. - -2025-07-18 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/manual/build_hacking.xml: Document that - windows_zones-map.h is a generated file. - * doc/html/manual/appendix_porting.html: Regenerate. - -2025-07-18 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119137 - * include/std/inplace_vector (inplace_vector::operator=): - Qualify call to std::addressof. - -2025-07-18 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/121154 - * include/bits/chrono_io.h (_ChronoSpec::_M_time_point): Remove. - (_ChronoSpec::_M_needs_ok_check): Define - (__formatter_chrono::_M_parse): Set _M_needs_ok_check. - (__formatter_chrono::_M_check_ok): Check values also for debug mode, - and return __string_view. - (__formatter_chrono::_M_format_to): Handle results of _M_check_ok. - (__formatter_chrono::_M_wi, __formatter_chrono::_M_a_A) - (__formatter_chrono::_M_b_B, __formatter_chrono::_M_C_y_Y) - (__formatter_chrono::_M_d_e, __formatter_chrono::_M_F): - Removed handling of _M_debug. - (__formatter_chrono::__M_m): Print zero unpadded in _M_debug mode. - (__formatter_duration::_S_spec_for): Remove _M_time_point refernce. - (__formatter_duration::_M_parse): Override _M_needs_ok_check. - * testsuite/std/time/month/io.cc: Test for localized !ok() values. - * testsuite/std/time/weekday/io.cc: Test for localized !ok() values. - -2025-07-18 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121150 - * testsuite/20_util/hash/int128.cc: Cast expected values to - size_t. - -2025-07-18 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/unicode.h (_Utf_iterator::operator--): Reorder - conditions and update position after reading a code unit. - (_Utf_iterator::_M_read_reverse): Define. - (_Utf_iterator::_M_read_utf8): Return extracted code point. - (_Utf_iterator::_M_read_reverse_utf8): Define. - (_Utf_iterator::_M_read_reverse_utf16): Define. - (_Utf_iterator::_M_read_reverse_utf32): Define. - * testsuite/ext/unicode/view.cc: Add checks for reversed views - and reverse iteration. - -2025-07-18 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/unicode.h (_Utf_iterator): Reorder data members - to be more compact. + * testsuite/28_regex/algorithms/regex_match/multiline.cc: Add + string to static_assert. + * testsuite/28_regex/sub_match/lwg3204.cc: Likewise. -2025-07-18 Jonathan Wakely <jwakely@redhat.com> - Tomasz Kamiński <tkaminsk@redhat.com> +2026-02-04 Nathan Myers <ncm@cantrip.org> - PR libstdc++/119137 - * doc/doxygen/user.cfg.in (INPUT): Add new header. - * include/Makefile.am: Add new header. - * include/Makefile.in: Regenerate. - * include/bits/stl_iterator_base_types.h (__any_input_iterator): + PR libstdc++/117404 + * include/bits/version.def (associative_heterogeneous_erasure): Define. - * include/bits/version.def (inplace_vector): Define. * include/bits/version.h: Regenerate. - * include/precompiled/stdc++.h: Include new header. - * src/c++23/std.cc.in: Export contents if new header. - * include/std/inplace_vector: New file. - * testsuite/23_containers/inplace_vector/access/capacity.cc: New file. - * testsuite/23_containers/inplace_vector/access/elem.cc: New file. - * testsuite/23_containers/inplace_vector/access/elem_neg.cc: New file. - * testsuite/23_containers/inplace_vector/cons/1.cc: New file. - * testsuite/23_containers/inplace_vector/cons/from_range.cc: New file. - * testsuite/23_containers/inplace_vector/cons/throws.cc: New file. - * testsuite/23_containers/inplace_vector/copy.cc: New file. - * testsuite/23_containers/inplace_vector/erasure.cc: New file. - * testsuite/23_containers/inplace_vector/modifiers/assign.cc: New file. - * testsuite/23_containers/inplace_vector/modifiers/erase.cc: New file. - * testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc: - New file. - * testsuite/23_containers/inplace_vector/modifiers/single_insert.cc: - New file. - * testsuite/23_containers/inplace_vector/move.cc: New file. - * testsuite/23_containers/inplace_vector/relops.cc: New file. - * testsuite/23_containers/inplace_vector/version.cc: New file. - * testsuite/util/testsuite_iterators.h (input_iterator_wrapper::base): - Define. - -2025-07-17 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/96710 - * doc/xml/manual/evolution.xml: Document change or __int128. - * doc/html/manual/api.html: Regenerate. - -2025-07-17 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/121061 - * include/std/mdspan (extents::extents): Perform conversion to - index_type of an r-value reference. - (layout_left::mapping::operator()): Ditto. - (layout_right::mapping::operator()): Ditto. - (layout_stride::mapping::operator()): Ditto. - * testsuite/23_containers/mdspan/extents/custom_integer.cc: Add - tests for RValueInt and MutatingInt. - * testsuite/23_containers/mdspan/int_like.h (RValueInt): Add. - * testsuite/23_containers/mdspan/layouts/mapping.cc: Test with - RValueInt. - * testsuite/23_containers/mdspan/mdspan.cc: Ditto. - -2025-07-17 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/121061 - * include/std/mdspan (extents::extents): Fix constraint to - prevent non-const conversion to index_type. - (layout_stride::mapping::mapping): Ditto. - (mdspan::mdspan): Ditto. - (mdspan::operator[]): Ditto. - * testsuite/23_containers/mdspan/extents/custom_integer.cc: Add - test for MutatingInt. - * testsuite/23_containers/mdspan/int_like.h (MutatingInt): Add. - * testsuite/23_containers/mdspan/layouts/mapping.cc: Add test for - MutatingInt. - * testsuite/23_containers/mdspan/layouts/stride.cc: Ditto. - * testsuite/23_containers/mdspan/mdspan.cc: Ditto. - -2025-07-17 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/121061 - * testsuite/23_containers/mdspan/extents/custom_integer.cc: - Enable checking with different custom integers. Improve - checking non-existence of overloads for incompatible custom - integers. - * testsuite/23_containers/mdspan/layouts/mapping.cc: ditto. Also - improve reuse of int_like.h. - * testsuite/23_containers/mdspan/layouts/stride.cc: ditto. - * testsuite/23_containers/mdspan/mdspan.cc: ditto. - * testsuite/23_containers/mdspan/extents/int_like.h: Rename (old - name). - * testsuite/23_containers/mdspan/int_like.h: Rename (new name). - (ThrowingInt): Add. - (NotIntLike): Add. - -2025-07-17 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/unicode.h (__unicode::_Utf_iterator): Add - comments. - (__unicode:_Utf_iterator::operator++()): Check whether to - iterate over the buffer first. - -2025-07-17 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121097 - * include/c_global/cmath (hypot): Use __promote_3 instead of - __promoted. - -2025-07-16 Jonathan Wakely <jwakely@redhat.com> - - * include/std/bitset (__bitset::__string) [__cpp_lib_bitset]: - Change alias to refer to basic_string_view instead. - -2025-07-16 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/121114 - * include/bits/version.def (constexpr_exceptions): Add no_stdname - and changed value. - * include/bits/version.h: Regenerated. - * testsuite/18_support/exception/version.cc: Test that macro is - not exported. - -2025-07-15 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/move.h (swap): Replace enable_if with concepts - when available, and with __enable_if_t alias otherwise. - -2025-07-15 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/ranges_base.h (ranges::advance(i, n, bound)): - Ensure that observable side effects on iterators match what is - specified in the standard. - -2025-07-15 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/119962 - * include/std/ranges (join_view::_Iterator::_M_outer): Initialize. - (lazy_split_view::_OuterIter::_M_current): Initialize. - (join_with_view::_Iterator::_M_outer_it): Initialize. - * testsuite/std/ranges/adaptors/join.cc (test15): New test. - * testsuite/std/ranges/adaptors/join_with/1.cc (test05): New test. - * testsuite/std/ranges/adaptors/lazy_split.cc (test13): New test. - -2025-07-15 Björn Schäpers <bjoern@hazardy.de> - - PR libstdc++/108409 - * scripts/gen_windows_zones_map.py: New file, generates - windows_zones-map.h. - * src/c++20/windows_zones-map.h: New file, contains the look up - table. - * src/c++20/tzdb.cc (tzdb::current_zone): Add Windows code path. - -2025-07-15 Björn Schäpers <bjoern@hazardy.de> - - * src/c++20/tzdb.cc (zoneinfo_file): On Windows look relative - from the DLL path for the time zone information. - -2025-07-15 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: - * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: - * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: - * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: - * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: - * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: - * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: - * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: - * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: - -2025-07-15 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/121024 - * include/bits/ranges_uninitialized.h (ranges::destroy): Do not - optimize away trivial destructors during constant evaluation. - (ranges::destroy_n): Likewise. - * testsuite/20_util/specialized_algorithms/destroy/121024.cc: - New test. - -2025-07-15 Jonathan Wakely <jwakely@redhat.com> - - * include/experimental/memory (swap, make_observer_ptr): Add - constexpr. - (operator==, operator!=, operator<, operator>, operator<=) - (operator>=): Likewise. - * testsuite/experimental/memory/observer_ptr/make_observer.cc: - Checks for constant evaluation. - * testsuite/experimental/memory/observer_ptr/relops/relops.cc: - Likewise. - * testsuite/experimental/memory/observer_ptr/swap/swap.cc: - Likewise. - -2025-07-15 Jonathan Wakely <jwakely@redhat.com> - - * include/std/type_traits (__make_unsigned_selector): Add - unsigned __int128 to type list. - * testsuite/20_util/make_unsigned/int128.cc: New test. - -2025-07-15 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/96710 - * include/bits/functional_hash.h (hash<__int128>): Define for - strict modes. - (hash<unsigned __int128>): Likewise. - * testsuite/20_util/hash/int128.cc: New test. + * 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. -2025-07-15 Tomasz Kamiński <tkaminsk@redhat.com> +2026-02-02 Patrick Palka <ppalka@redhat.com> - PR libstdc++/110739 - * include/bits/chrono_io.h (__formatter_chrono::_S_weekdays) - (__formatter_chrono::_S_months, __formatter_chrono::_S_fill_ampm): - Define. - (__formatter_chrono::_M_format_to): Do not pass context parameter - to functions listed below. - (__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B): Implement - using harcoded list of names, and remove format context parameter. - (__formatter_chrono::_M_p, __formatter_chrono::_M_r): Implement - using _S_fill_ampm. - (__formatter_chrono::_M_c): Removed format context parameter. - (__formatter_chrono::_M_subsecs): Call __ctx.locale() directly, - instead of _M_locale and do not compare with locale::classic(). - Add [[unlikely]] attributes. - (__formatter_chrono::_M_locale): Move to __formatter_duration. - (__formatter_duration::_M_locale): Moved from __formatter_chrono. - -2025-07-14 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_pair.h (swap): Add comment to deleted - overload. - * include/bits/unique_ptr.h (swap): Likewise. - * include/std/array (swap): Likewise. - * include/std/optional (swap): Likewise. - * include/std/tuple (swap): Likewise. - * include/std/variant (swap): Likewise. - * testsuite/23_containers/array/tuple_interface/get_neg.cc: - Adjust dg-error line numbers. - -2025-07-14 Jonathan Wakely <jwakely@redhat.com> - - * include/pstl/algorithm_impl.h (__for_each_n_it_serial): - Protect against overloaded comma operator. - (__brick_walk2): Likewise. - (__brick_walk2_n): Likewise. - (__brick_walk3): Likewise. - (__brick_move_destroy::operator()): Likewise. - (__brick_calc_mask_1): Likewise. - (__brick_copy_by_mask): Likewise. - (__brick_partition_by_mask): Likewise. - (__brick_calc_mask_2): Likewise. - (__brick_reverse): Likewise. - (__pattern_partial_sort_copy): Likewise. - * include/pstl/memory_impl.h (__brick_uninitialized_move): - Likewise. - (__brick_uninitialized_copy): Likewise. - * include/pstl/numeric_impl.h (__brick_transform_scan): + * 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. -2025-07-14 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/117785 - * include/bits/version.def (constexpr_exceptions): Define - correct value. - * include/bits/version.h: Regenerate. - * libsupc++/exception: Check correct value. - * testsuite/18_support/exception/version.cc: New test. - -2025-07-14 Jonathan Wakely <jwakely@redhat.com> - - * libsupc++/exception_ptr.h (make_exception_ptr): Return null - for consteval when -fno-exceptions is used. - (exception_ptr_cast): Likewise. Allow consteval path to work - with -fno-rtti. - -2025-07-11 Jakub Jelinek <jakub@redhat.com> - - * libsupc++/exception_ptr.h: Implement C++26 P3748R0 - Inspecting - exception_ptr should be constexpr. - (std::exception_ptr_cast): Make constexpr, remove inline keyword. Add - static_asserts for Mandates. For if consteval use std::rethrow_exception, - catch it and return its address or nullptr. - * testsuite/18_support/exception_ptr/exception_ptr_cast.cc (E::~E): Add - constexpr. - (G::G): Likewise. - (test01): Likewise. Return bool and take bool argument, throw if the - argument is true. Add static_assert(test01(false)). - (main): Call test01(true) in try. - -2025-07-11 Jonathan Wakely <jwakely@redhat.com> +2026-01-31 Patrick Palka <ppalka@redhat.com> - * include/bits/cpp_type_traits.h (__is_floating<__float128>): - Do not depend on __STRICT_ANSI__. - * include/bits/stl_algobase.h (__size_to_integer(__float128)): - Likewise. - * include/std/type_traits (__is_floating_point_helper<__float128>): - Likewise. + * include/bits/regex_executor.tcc (_ExecutorFrameBase): Add + #pragma GCC diagnostic to suppress -Wpedantic warning about + anonymous structs. -2025-07-11 Jonathan Wakely <jwakely@redhat.com> +2026-01-30 Patrick Palka <ppalka@redhat.com> - PR libstdc++/96710 - * include/bits/cpp_type_traits.h (__is_integer): Define explicit - specializations for __int128. - (__memcpyable_integer): Remove explicit specializations for - __int128. - * include/bits/iterator_concepts.h (incrementable_traits): - Likewise. - (__is_signed_int128, __is_unsigned_int128, __is_int128): Remove. - (__is_integer_like, __is_signed_integer_like): Remove check for - __int128. - * include/bits/max_size_type.h: Remove all uses of __is_int128 - in constraints. - * include/bits/ranges_base.h (__to_unsigned_like): Remove - overloads for __int128. - (ranges::ssize): Remove special case for __int128. - * include/bits/stl_algobase.h (__size_to_integer): Define - __int128 overloads for strict modes. - * include/ext/numeric_traits.h (__is_integer_nonstrict): Remove - explicit specializations for __int128. - * include/std/charconv (to_chars): Define overloads for - __int128. - * include/std/format (__format::make_unsigned_t): Remove. - (__format::to_chars): Remove. - * include/std/limits (numeric_limits): Define explicit - specializations for __int128. - * include/std/type_traits (__is_integral_helper): Likewise. - (__make_unsigned, __make_signed): Likewise. - -2025-07-10 Jakub Jelinek <jakub@redhat.com> - - PR c++/117785 - * include/bits/version.def (constexpr_exceptions): New. - * include/bits/version.h: Regenerate. - * libsupc++/exception (std::bad_exception::bad_exception): Add - _GLIBCXX26_CONSTEXPR. - (std::bad_exception::~bad_exception, std::bad_exception::what): For - C++26 add constexpr and define inline. - * libsupc++/exception.h (std::exception::exception, - std::exception::operator=): Add _GLIBCXX26_CONSTEXPR. - (std::exception::~exception, std::exception::what): For C++26 add - constexpr and define inline. - * libsupc++/exception_ptr.h (std::make_exception_ptr): Add - _GLIBCXX26_CONSTEXPR. For if consteval use just throw with - current_exception() in catch. - (std::exception_ptr::exception_ptr(void*)): For C++26 add constexpr - and define inline. - (std::exception_ptr::exception_ptr()): Add _GLIBCXX26_CONSTEXPR. - (std::exception_ptr::exception_ptr(const exception_ptr&)): Likewise. - Use __builtin_eh_ptr_adjust_ref if consteval and compiler has it - instead of _M_addref. - (std::exception_ptr::exception_ptr(nullptr_t)): Add - _GLIBCXX26_CONSTEXPR. - (std::exception_ptr::exception_ptr(exception_ptr&&)): Likewise. - (std::exception_ptr::operator=): Likewise. - (std::exception_ptr::~exception_ptr): Likewise. Use - __builtin_eh_ptr_adjust_ref if consteval and compiler has it - instead of _M_release. - (std::exception_ptr::swap): Add _GLIBCXX26_CONSTEXPR. - (std::exception_ptr::operator bool): Likewise. - (std::exception_ptr::operator==): Likewise. - * libsupc++/nested_exception.h - (std::nested_exception::nested_exception): Add _GLIBCXX26_CONSTEXPR. - (std::nested_exception::operator=): Likewise. - (std::nested_exception::~nested_exception): For C++26 add constexpr - and define inline. - (std::nested_exception::rethrow_if_nested): Add _GLIBCXX26_CONSTEXPR. - (std::nested_exception::nested_ptr): Likewise. - (std::_Nested_exception::_Nested_exception): Likewise. - (std::throw_with_nested, std::rethrow_if_nested): Likewise. - * libsupc++/new (std::bad_alloc::bad_alloc): Likewise. - (std::bad_alloc::operator=): Likewise. - (std::bad_alloc::~bad_alloc): For C++26 add constexpr and define + * include/bits/regex_executor.tcc (__detail::_Executor::_M_node) + [__OPTIMIZE__]: Add [[gnu::always_inline]] attribute. Declare inline. - (std::bad_alloc::what): Likewise. - (std::bad_array_new_length::bad_array_new_length): Add - _GLIBCXX26_CONSTEXPR. - (std::bad_array_new_length::~bad_array_new_length): For C++26 add - constexpr and define inline. - (std::bad_array_new_length::what): Likewise. - * libsupc++/typeinfo (std::bad_cast::bad_cast): Add - _GLIBCXX26_CONSTEXPR. - (std::bad_cast::~bad_cast): For C++26 add constexpr and define inline. - (std::bad_cast::what): Likewise. - (std::bad_typeid::bad_typeid): Add _GLIBCXX26_CONSTEXPR. - (std::bad_typeid::~bad_typeid): For C++26 add constexpr and define - inline. - (std::bad_typeid::what): Likewise. - -2025-07-10 Jakub Jelinek <jakub@redhat.com> - - * testsuite/22_locale/codecvt/codecvt_unicode.h - (ucs2_to_utf8_out_error): Comment spelling fix: bellow -> below. - (utf16_to_ucs2_in_error): Likewise. - -2025-07-09 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_uninitialized.h (__uninitialized_default): - Do not use optimized implementation for constexpr case. Use - _GLIBCXX20_CONSTEXPR instead of _GLIBCXX26_CONSTEXPR. - -2025-07-09 Jonathan Wakely <jwakely@redhat.com> - * include/std/mdspan (mdspan): Add template keyword for - dependent name. - -2025-07-09 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120997 - * include/std/span (span::first, span::last, span::subspan): Do - not use braced-init-list for return statements. - * testsuite/23_containers/span/120997.cc: New test. - -2025-07-09 Paul Keir <pkeir@outlook.com> - - PR libstdc++/117403 - * include/bits/shared_ptr.h (shared_ptr::owner_equal) - (shared_ptr::owner_hash, weak_ptr::owner_equal) - (weak_ptr::owner_hash): Define new member functions. - * include/bits/shared_ptr_base.h (owner_equal, owner_hash): - Define new structs. - * include/bits/version.def (smart_ptr_owner_equality): Define. - * include/bits/version.h: Regenerate. - * include/std/memory: Added define for - __glibcxx_want_smart_ptr_owner_equality. - * testsuite/20_util/owner_equal/version.cc: New test. - * testsuite/20_util/owner_equal/cmp.cc: New test. - * testsuite/20_util/owner_equal/noexcept.cc: New test. - * testsuite/20_util/owner_hash/cmp.cc: New test. - * testsuite/20_util/owner_hash/noexcept.cc: New test. - * testsuite/20_util/shared_ptr/observers/owner_equal.cc: New - test. - * testsuite/20_util/shared_ptr/observers/owner_hash.cc: - New test. - * testsuite/20_util/weak_ptr/observers/owner_equal.cc: New test. - * testsuite/20_util/weak_ptr/observers/owner_hash.cc: New test. - -2025-07-09 Mateusz Zych <mte.zych@gmail.com> - - * include/bits/max_size_type.h (numeric_limits<__max_size_type>): - New members. - (numeric_limits<__max_diff_type>): Likewise. - * testsuite/std/ranges/iota/max_size_type.cc: New test cases. - -2025-07-09 Jonathan Wakely <jwakely@redhat.com> - - * src/c++17/memory_resource.cc: Adjust indentation of unnamed - namespaces. - (pool_sizes): Add comment. - (choose_block_size): Move outside preprocessor group for - gthreads targets. - * testsuite/20_util/synchronized_pool_resource/118681.cc: - Require gthreads. - -2025-07-09 H.J. Lu <hjl.tools@gmail.com> - - * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: - Updated. - -2025-07-08 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118681 - * testsuite/20_util/unsynchronized_pool_resource/118681.cc: Fix - deallocate argument. - -2025-07-08 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118681 - * src/c++17/memory_resource.cc (choose_block_size): New - function. - (synchronized_pool_resource::do_allocate): Use choose_block_size - to determine appropriate block size. - (synchronized_pool_resource::do_deallocate): Likewise - (unsynchronized_pool_resource::do_allocate): Likewise. - (unsynchronized_pool_resource::do_deallocate): Likewise - * testsuite/20_util/synchronized_pool_resource/118681.cc: New - test. - * testsuite/20_util/unsynchronized_pool_resource/118681.cc: New - test. - -2025-07-08 Jonathan Wakely <jwakely@redhat.com> - - * include/debug/forward_list (_Safe_forward_list<>::_M_swap): - Adapt to _M_this() signature change. - -2025-07-08 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119861 - * include/std/format (formatter<_Rg, _CharT>::set_separator) - (formatter<_Rg, _CharT>::set_brackets): Constrain with - (format_kind<_Rg> == range_format::sequence). - * testsuite/std/format/ranges/pr119861_neg.cc: New test. - -2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/120914 - * include/std/span (span): Update CTAD to enable - integral constants [P3029R1]. - * include/std/mdspan (extents): ditto. - (mdspan): ditto. - * testsuite/23_containers/span/deduction.cc: Test deduction - guide. - * testsuite/23_containers/mdspan/extents/misc.cc: ditto. - * testsuite/23_containers/mdspan/mdspan.cc: ditto. - -2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - * testsuite/23_containers/span/contiguous_range_neg.cc: Silence - warning about unused variable myspan. - -2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/107761 - * include/bits/version.def (mdspan): Set to 202207 and remove - no_stdname. - * include/bits/version.h: Regenerate. - * testsuite/23_containers/mdspan/version.cc: Test presence - of feature test macro. - -2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/107761 - * include/std/mdspan (mdspan): New class. - * src/c++23/std.cc.in (mdspan): Add. - * testsuite/23_containers/mdspan/class_mandate_neg.cc: New test. - * testsuite/23_containers/mdspan/mdspan.cc: New test. - * testsuite/23_containers/mdspan/layout_like.h: Add class - LayoutLike which models a user-defined layout. - * testsuite/23_containers/mdspan/out_of_bounds_neg.cc: New file. - -2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (__mdspan::__size): New function. - -2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - * testsuite/23_containers/mdspan/extents/custom_integer.cc: - Delete IntLike and include "int_like.h". - * testsuite/23_containers/mdspan/extents/int_like.h: Add - IntLike. - -2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (extents): Check prerequisite of the ctor that - static_extent(i) == dynamic_extent || extent(i) == other.extent(i). - * testsuite/23_containers/mdspan/extents/class_mandates_neg.cc: - Test the implemented prerequisite. - * testsuite/23_containers/mdspan/extents/extents_mismatch_neg.cc: New file. - -2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan: Check prerequisites of - layout_*::operator() with _GLIBCXX_DEBUG_ASSERTs. - * testsuite/23_containers/mdspan/layouts/debug/out_of_bounds_neg.cc: - Add tests for prerequisites. - -2025-07-08 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/std/queue (formatter<queue<_Tp, _Container>, _CharT>) - (formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>): - Add _GLIBCXX_RESOLVE_LIB_DEFECTS comments. - -2025-07-08 François Dumont <frs.dumont@gmail.com> - - PR c++/116369 - * config/abi/pre/gnu-versioned-namespace.ver: Use new const qualified symbols. - * config/abi/pre/gnu.ver: Add new const qualified symbols. - * include/debug/safe_base.h - (_Safe_iterator_base::_M_sequence): Declare as pointer-to-const. - (_Safe_iterator_base::_M_attach, _M_attach_single): New, take pointer-to-const - _Safe_sequence_base. - (_Safe_sequence_base::_M_detach_all, _M_detach_singular, _M_revalidate_singular) - (_M_swap, _M_get_mutex): New, const qualified. - (_Safe_sequence_base::_M_attach, _M_attach_single, _M_detach, _M_detach_single): - const qualify. - * include/debug/safe_container.h (_Safe_container<>::_M_cont): Add const qualifier. - (_Safe_container<>::_M_swap_base): New. - (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): - Adapt to use latter. - (_Safe_container<>::operator=(_Safe_container&&)): Likewise. - (_Safe_container<>::_M_swap): Likewise and take parameter as const reference. - * include/debug/safe_unordered_base.h - (_Safe_local_iterator_base::_M_safe_container): New. - (_Safe_local_iterator_base::_Safe_local_iterator_base): Take - _Safe_unordered_container_base as pointer-to-const. - (_Safe_unordered_container_base::_M_attach, _M_attach_single): New, take - container as _Safe_unordered_container_base pointer-to-const. - (_Safe_unordered_container_base::_M_local_iterators, _M_const_local_iterators): - Add mutable. - (_Safe_unordered_container_base::_M_detach_all, _M_swap): New, const qualify. - (_Safe_unordered_container_base::_M_attach_local, _M_attach_local_single) - (_M_detach_local, _M_detach_local_single): Add const qualifier. - * include/debug/safe_unordered_container.h (_Safe_unordered_container::_M_self()): New. - * include/debug/safe_unordered_container.tcc - (_Safe_unordered_container::_M_invalidate_if, _M_invalidated_local_if): Use latter. - * include/debug/safe_iterator.h (_Safe_iterator<>::_M_attach, _M_attach_single): - Take _Safe_sequence_base as pointer-to-const. - (_Safe_iterator<>::_M_get_sequence): Add const_cast and comment about it. - * include/debug/safe_local_iterator.h (_Safe_local_iterator<>): Replace usages - of _M_sequence member by _M_safe_container(). - (_Safe_local_iterator<>::_M_attach, _M_attach_single): Take - _Safe_unordered_container_base as pointer-to-const. - (_Safe_local_iterator<>::_M_get_sequence): Rename into... - (_Safe_local_iterator<>::_M_get_ucontainer): ...this. Add necessary const_cast and - comment to explain it. - (_Safe_local_iterator<>::_M_is_begin, _M_is_end): Adapt. - * include/debug/safe_local_iterator.tcc: Adapt. - * include/debug/safe_sequence.h - (_Safe_sequence<>::_M_invalidate_if, _M_transfer_from_if): Add const qualifier. - * include/debug/safe_sequence.tcc: Adapt. - * include/debug/deque (std::__debug::deque::erase): Adapt to use new const - qualified methods. - * include/debug/formatter.h: Adapt. - * include/debug/forward_list (_Safe_forward_list::_M_this): Add const - qualification and return pointer for consistency with 'this' keyword. - (_Safe_forward_list::_M_swap_aux): Rename into... - (_Safe_forward_list::_S_swap_aux): ...this and take sequence as const reference. - (forward_list<>::resize): Adapt to use const methods. - * include/debug/list (list<>::resize): Likewise. - * src/c++11/debug.cc: Adapt to const qualification. - * testsuite/util/testsuite_containers.h - (forward_members_unordered::forward_members_unordered): Add check on local_iterator - conversion to const_local_iterator. - (forward_members::forward_members): Add check on iterator conversion to - const_iterator. - * testsuite/23_containers/unordered_map/const_container.cc: New test case. - * testsuite/23_containers/unordered_multimap/const_container.cc: New test case. - * testsuite/23_containers/unordered_multiset/const_container.cc: New test case. - * testsuite/23_containers/unordered_set/const_container.cc: New test case. - * testsuite/23_containers/vector/debug/mutex_association.cc: Adapt. - -2025-07-07 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120949 - * include/bits/stl_iterator.h (__normal_iterator): Fix order of - always_inline and nodiscard attributes for Clang compatibility. - -2025-07-07 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/util/testsuite_hooks.h (VERIFY): Define as variadic - macro. - * testsuite/ext/verify_neg.cc: New test. - -2025-07-07 Jonathan Wakely <jwakely@redhat.com> - - * include/std/mdspan (__mapping_of): Add template keyword. - -2025-07-07 XU Kailiang <xu2k3l4@outlook.com> - Tomasz Kaminski <tkaminsk@redhat.com> - - PR libstdc++/117214 - * include/bits/chrono_io.h (_ChronoSpec::_M_time_only): Remove. - (_ChronoSpec::_M_time_point): Define. - (__formatter_chrono::_M_parse): Use __parts to determine - interpretation of j. - (__formatter_chrono::_M_check_ok): Define. - (__formatter_chrono::_M_format_to): Invoke _M_check_ok. - (__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B): Move - exception throwing to _M_check_ok. - (__formatter_chrono::_M_j): Use _M_needs to define interpretation. - (__formatter_duration::_S_spec_for): Set _M_time_point. - * testsuite/std/time/format/format.cc: Test for exception for !ok() - months/weekday. - * testsuite/std/time/format/pr117214_custom_timeput.cc: New - test. - -2025-07-07 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/120976 - * include/std/format (formatter<__float128, _Char_T): Define if - _GLIBCXX_FORMAT_F128 == 2. - -2025-07-06 Patrick Palka <ppalka@redhat.com> - - * include/bits/ranges_algo.h (shift_left, shift_right): Guard - with __glibcxx_shift >= 201806L. - (ranges::__shift_left_fn, ranges::shift_left): Define for C++23. - (ranges::__shift_right_fn, ranges::shift_right): Likewise. - * include/bits/version.def (shift): Update for C++23. - * include/bits/version.h: Regenerate. - * src/c++23/std.cc.in: Add ranges::shift_left/right. - * testsuite/25_algorithms/shift_left/constrained.cc: New test, - based off of 1.cc. - * testsuite/25_algorithms/shift_right/constrained.cc: New test, - based off of 1.cc. - -2025-07-04 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/chrono_io.h (__formatter_duration::_S_spec_for): - Add default case to switch and use __builtin_unreachable. - -2025-07-04 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_algobase.h (__size_to_integer): Move - misplaced unsigned keyword on __size_to_integer overloads for - __GLIBCXX_TYPE_INT_N_3 integer type. - -2025-07-03 Nathan Myers <ncm@cantrip.org> - - * include/bits/version.def: Fix typo. - * include/bits/version.h: Rebuilt. - -2025-07-03 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/120934 - * include/std/ranges (concat_view::end): Refine condition - for returning an iterator instead of default_sentinel as - per the updated P/R for LWG 4166. - * testsuite/std/ranges/concat/1.cc (test05): New test. - -2025-07-03 Nathan Myers <ncm@cantrip.org> - - PR libstdc++/119742 - * include/bits/version.def: Add preprocessor symbol. - * include/bits/version.h: Add preprocessor symbol. - * include/std/bitset: Add constructor. - * testsuite/20_util/bitset/cons/1.cc: Fix. - * testsuite/20_util/bitset/cons/6282.cc: Fix. - * testsuite/20_util/bitset/cons/string_view.cc: Test new ctor. - * testsuite/20_util/bitset/cons/string_view_wide.cc: Test new ctor. - -2025-07-03 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120931 - * include/bits/stl_uninitialized.h (__uninitialized_fill<true>): - Fix typo resulting in call to __do_uninit_copy instead of - __do_uninit_fill. - * testsuite/20_util/specialized_algorithms/uninitialized_fill/120931.cc: - New test. - -2025-07-02 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_iterator.h (__normal_iterator): Make all - non-member operators hidden friends, except ... - (operator<=>(__normal_iterator<I,C>, __normal_iterator<I,C>)): - Remove. - * src/c++11/string-inst.cc: Remove explicit instantiations of - operators that are no longer templates. - * src/c++23/std.cc.in (__gnu_cxx): Do not export operators for - __normal_iterator. - -2025-07-02 Nathan Myers <ncm@cantrip.org> - - PR libstdc++/119744 - * include/std/ranges: View ctors become explicit. - -2025-07-01 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/120789 - * include/bits/ranges_algo.h (__remove_if_fn::operator()): Use - ranges::iter_move(iter) instead of std::move(*iter). - * testsuite/25_algorithms/remove_if/120789.cc: New test. - -2025-07-01 Patrick Palka <ppalka@redhat.com> +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. - PR libstdc++/120789 - * include/bits/ranges_algo.h (__unique_fn::operator()): Use - ranges::iter_move(iter) instead of std::move(*iter). - * testsuite/25_algorithms/unique/120789.cc: New test. +2026-01-28 Jonathan Wakely <jwakely@redhat.com> -2025-07-01 Luc Grosheintz <luc.grosheintz@gmail.com> + * src/experimental/contract26.cc: Use #error if built without + contracts support enabled. + * include/std/source_location: Remove stray whitespace. - * include/std/mdspan (default_accessor): New class. - * src/c++23/std.cc.in: Register default_accessor. - * testsuite/23_containers/mdspan/accessors/default.cc: New test. - * testsuite/23_containers/mdspan/accessors/default_neg.cc: New test. +2026-01-28 Jonathan Wakely <jwakely@redhat.com> -2025-06-27 Patrick Palka <ppalka@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. - PR libstdc++/100795 - * include/bits/ranges_algo.h (shuffle_fn::operator()): - Reimplement directly, based on the stl_algo.h implementation. - * testsuite/25_algorithms/shuffle/constrained.cc (test02): - New test. +2026-01-28 Jonathan Wakely <jwakely@redhat.com> -2025-06-27 Patrick Palka <ppalka@redhat.com> + * config/locale/gnu/ctype_members.cc (use_table): New function. + (ctype<wchar_t>::do_narrow): Use use_table. - PR libstdc++/100795 - * include/bits/ranges_algo.h (__sample_fn::operator()): - Reimplement the forward_iterator branch directly, based - on the stl_algo.h implementation. Add explicit cast to - _Out's difference_type in the !forward_iterator branch. - * testsuite/25_algorithms/sample/constrained.cc (test02): - New test. +2026-01-28 Soumya AR <soumyaa@nvidia.com> -2025-06-27 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/100795 - * include/bits/ranges_algo.h (__detail::__introselect): New, - based on the stl_algo.h implementation. - (nth_element_fn::operator()): Reimplement in terms of the above. - * testsuite/25_algorithms/nth_element/constrained.cc: - -2025-06-27 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/100795 - * include/bits/ranges_algo.h (__detail::__find_if_not_n): New, - based on the stl_algo.h implementation. - (__detail::__stable_partition_adaptive): Likewise. - (__stable_partition_fn::operator()): Reimplement in terms of - the above. - * testsuite/25_algorithms/stable_partition/constrained.cc - (test03): New test. - -2025-06-27 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/100795 - * include/bits/ranges_algo.h (__detail::__move_merge): New, - based on the stl_algo.h implementation. - (__detail::__merge_sort_loop): Likewise. - (__detail::__chunk_insertion_sort): Likewise. - (__detail::__merge_sort_with_buffer): Likewise. - (__detail::__stable_sort_adaptive): Likewise. - (__detail::__stable_sort_adaptive_resize): Likewise. - (__detail::__inplace_stable_sort): Likewise. - (__stable_sort_fn::operator()): Reimplement in terms of the above. - * testsuite/25_algorithms/stable_sort/constrained.cc: - -2025-06-27 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/100795 - * include/bits/ranges_algo.h (__detail::__move_merge_adaptive): - New, based on the stl_algo.h implementation. - (__detail::__move_merge_adaptive_backward): Likewise. - (__detail::__rotate_adaptive): Likewise. - (__detail::__merge_adaptive): Likewise. - (__detail::__merge_adaptive_resize): Likewise. - (__detail::__merge_without_buffer): Likewise. - (__inplace_merge_fn::operator()): Reimplement in terms of the - above. - * testsuite/25_algorithms/inplace_merge/constrained.cc (test03): + * 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. -2025-06-27 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/100795 - PR libstdc++/118209 - * include/bits/max_size_type.h (__bit_width): New explicit - specialization for __max_size_type. - * include/bits/ranges_algo.h (__detail::__move_median_to_first): - New, based on the stl_algo.h implementation. - (__detail::__unguarded_liner_insert): Likewise. - (__detail::__insertion_sort): Likewise. - (__detail::__sort_threshold): Likewise. - (__detail::__unguarded_insertion_sort): Likewise. - (__detail::__final_insertion_sort): Likewise. - (__detail::__unguarded_partition): Likewise. - (__detail::__unguarded_partition_pivot): Likewise. - (__detail::__heap_select): Likewise. - (__detail::__partial_sort): Likewise. - (__detail::__introsort_loop): Likewise. - (__sort_fn::operator()): Reimplement in terms of the above. - * testsuite/25_algorithms/sort/118209.cc: New test. - * testsuite/25_algorithms/sort/constrained.cc (test03): New test. - -2025-06-27 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/100795 - * include/bits/ranges_algo.h (__detail::__push_heap): New, - based on the stl_heap.h implementation. - (__push_heap_fn::operator()): Reimplement in terms of the above. - (__detail::__adjust_heap): New, based on the stl_heap.h - implementation. - (__deatil::__pop_heap): Likewise. - (__pop_heap_fn::operator()): Reimplement in terms of the above. - (__make_heap_fn::operator()): Likewise. - (__sort_heap_fn::operator()): Likewise. - * testsuite/25_algorithms/heap/constrained.cc (test03): New - test. - -2025-06-27 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/110739 - * include/bits/chrono_io.h (__formatter_chrono::_S_empty_fs): Define. - (__formatter_chrono::_S_str_d2): Use _S_str_d3 for 3+ digits and - place allways_inline attribute after comment. - (__formatter_chrono::_S_str_d3): Extracted from _S_str_d2. - (__formatter_chrono::_M_H_I, __formatter_chrono::_M_R_X): Replace - _S_empty_spec with _S_empty_fs(). - (__formatter_chrono::_M_j): Likewise and use _S_str_d3 in common - case. - (__format::operator-(_ChronoParts, _ChronoParts)) - (__format::operator-=(_ChronoParts, _ChronoParts)) - (__formatter_chrono::_S_fill_two_digits) - (__formatter_chrono::_S_str_d1): Place always_inline attribute - after comment. - -2025-06-27 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/110739 - * include/bits/chrono_io.h (__formatter_chrono::_M_format_to): - Rename _Out to _OutIter for consistency, and update calls - to specifier functions. - (__formatter_chrono::_M_wi, __formatter_chrono::_M_C_y_Y) - (__formatter_chrono::_M_D_x, __formatter_chrono::_M_d_e) - (__formatter_chrono::_M_F, __formatter_chrono::_M_g_G) - (__formatter_chrono::_M_H_I, __formatter_chrono::_M_j) - (__formatter_chrono::_M_m, __formatter_chrono::_M_M) - (__formatter_chrono::_M_q, __formatter_chrono::_M_R_X) - (__formatter_chrono::_M_u_w, __formatter_chrono::_M_U_V_W) - (__formatter_chrono::_M_z, __formatter_chrono::_M_z): - Remove _FormatContext parameter, and introduce _OutIter - for __out type. - (__formatter_chrono::_M_a_A, __formatter_chrono::_M_B_b) - (__formatter_chrono::_M_p, __formatter_chrono::_M_Q) - (__formatter_chrono::_M_r, __formatter_chrono::_M_S) - (__formatter_chrono::_M_subsecs, __formatter_chrono::_M_T): - Introduce separate _OutIter template parameter for __out. - (__formatter_chrono::_M_c, __formatter_chrono::_M_T): - Likewise, and adjust calls to specifiers functions. - * testsuite/std/time/format/empty_spec.cc: Make underlying - type for Rep configurable. - -2025-06-27 Iain Sandoe <iain@sandoe.co.uk> - - * config/abi/pre/gnu.ver: Keep the closing brace of the - CXXABI_1.3.17 symbol group together with the identifier - for the inherited group. - -2025-06-26 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/110739 - * include/bits/chrono_io.h (__formatter_chrono::_M_use_locale_fmt): - Define. - (__formatter_chrono::_M_locale_fmt): Moved to front of the class. - (__formatter_chrono::_M_format_to): Construct and initialize - struct tm and call _M_locale_fmt if needed. - (__formatter_chrono::_M_c_r_x_X): Split into separate methods. - (__formatter_chrono::_M_c, __formatter_chrono::_M_r): Define. - (__formatter_chrono::_M_D): Renamed to _M_D_x. - (__formatter_chrono::_M_D_x): Renamed from _M_D. - (__formatter_chrono::_M_R_T): Split into _M_R_X and _M_T. - (__formatter_chrono::_M_R_X): Extracted from _M_R_T. - (__formatter_chrono::_M_T): Define in terms of _M_R_X and _M_subsecs. - (__formatter_chrono::_M_subsecs): Extracted from _M_S. - (__formatter_chrono::_M_S): Replaced __mod with __subs argument, - removed _M_locale_fmt call, and delegate to _M_subsecs. - (__formatter_chrono::_M_C_y_Y, __formatter_chrono::_M_d_e) - (__formatter_chrono::_M_H_I, __formatter_chrono::_M_m) - (__formatter_chrono::_M_u_w, __formatter_chrono::_M_U_V_W): Remove - __mod argument and call to _M_locale_fmt. - -2025-06-26 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/110739 - * include/bits/chrono_io.h (__format::__no_timezone_available): - Removed, replaced with separate throws in formatter for - __local_time_fmt - (__format::_ChronoParts): Defined additional enumertors and - declared as enum class. - (__format::operator&(_ChronoParts, _ChronoParts)) - (__format::operator&=(_ChronoParts&, _ChronoParts)) - (__format::operator-(_ChronoParts, _ChronoParts)) - (__format::operator-=(_ChronoParts&, _ChronoParts)) - (__format::operator==(_ChronoParts, decltype(nullptr))) - (_ChronoSpec::_M_time_only, _ChronoSpec::_M_floating_point_rep) - (_ChronoSpec::_M_custom_rep, _ChronoSpec::_M_needed) - (_ChronoSpec::_M_needs, __format::_ChronoData): Define. - (__format::__formatter_chrono): Redefine to accept _ChronoData. - (__formatter_chrono::_M_format_to_ostream): Moved to - __formatter_duration. - (__format::__formatter_duration): Define. - (__formatter_chrono_info::format): Pass value-constructed - _ChronoData. - (std::formatter<chrono::day, _CharT>) - (std::formatter<chrono::month, _CharT>) - (std::formatter<chrono::year, _CharT>) - (std::formatter<chrono::weekday, _CharT>) - (std::formatter<chrono::weekday_indexed, _CharT>) - (std::formatter<chrono::weekday_last, _CharT>) - (std::formatter<chrono::month_day, _CharT>) - (std::formatter<chrono::month_day_last, _CharT>) - (std::formatter<chrono::month_weekday, _CharT>) - (std::formatter<chrono::month_weekday_indexed, _CharT>) - (std::formatter<chrono::month_weekday_last, _CharT>) - (std::formatter<chrono::year_month, _CharT>) - (std::formatter<chrono::year_month_day, _CharT>) - (std::formatter<chrono::year_month_day_last, _CharT>) - (std::formatter<chrono::year_month_weekday, _CharT>) - (std::formatter<chrono::year_month_weekday_indexed, _CharT>) - (std::formatter<chrono::year_month_weekday_last, _CharT>): - Construct _ChronoData in format, and configure _M_needed in - _ChronoSpec. - (std::formatter<chrono::duration<_Rep, _Period>, _CharT>) - (std::formatter<chrono::hh_mm_ss<_Duration>, _CharT>) - (std::formatter<chrono::sys_time<_Duration>, _CharT>) - (std::formatter<chrono::utc_time<_Duration>, _CharT>) - (std::formatter<chrono::tai_time<_Duration>, _CharT>) - (std::formatter<chrono::gps_time<_Duration>, _CharT>) - (std::formatter<chrono::file_time<_Duration>, _CharT>) - (std::formatter<chrono::local_time<_Duration>, _CharT>) - (std::formatter<chrono::_detail::__local_time_fmt<_Duration>, _CharT>): - Reworked in terms of __formatter_duration and _ChronoData. - (std::formatter<chrono::_detail::__utc_leap_second<_Duration>, _CharT>): - Removed. - (_Parser<_Duration>::operator()): Adjusted for _ChronoParts - being enum class. - * include/std/chrono (__detail::__utc_leap_second): Removed, - replaced with simply bumping _M_seconds in _ChronoData. - * testsuite/std/time/format/empty_spec.cc: Updated %S integral - ouput. - -2025-06-26 Jakub Jelinek <jakub@redhat.com> - - * include/bits/version.def (exception_ptr_cast): Add. - * include/bits/version.h: Regenerate. - * libsupc++/exception: Define __glibcxx_want_exception_ptr_cast before - including bits/version.h. - * libsupc++/exception_ptr.h (std::exception_ptr_cast): Define. - (std::__exception_ptr::exception_ptr::_M_exception_ptr_cast): Declare. - * libsupc++/eh_ptr.cc - (std::__exception_ptr::exception_ptr::_M_exception_ptr_cast): Define. - * src/c++23/std.cc.in (std::exception_ptr_cast): Export. - * config/abi/pre/gnu.ver: Export - _ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info - at CXXABI_1.3.17. - * testsuite/util/testsuite_abi.cc (check_version): Allow CXXABI_1.3.17. - * testsuite/18_support/exception_ptr/exception_ptr_cast.cc: New test. - -2025-06-26 Jakub Jelinek <jakub@redhat.com> - - * include/bits/version.def (type_order): New. - * include/bits/version.h: Regenerate. - * libsupc++/compare: Define __glibcxx_want_type_order before - including bits/version.h. - (std::type_order, std::type_order_v): New trait and template variable. - * src/c++23/std.cc.in (std::type_order, std::type_order_v): Export. - * testsuite/18_support/comparisons/type_order/1.cc: New test. - -2025-06-25 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/time/format/precision.cc: New tests. +2026-01-28 Nina Ranns <dinka.ranns@gmail.com> + Iain Sandoe <iain@sandoe.co.uk> + Ville Voutilainen <ville.voutilainen@gmail.com> -2025-06-25 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/120650 - * include/bits/chrono_io.h - (formatter<chrono::month_day_last,_CharT>::parse): Call _M_parse with - only Month being available. - * testsuite/std/time/format/data_not_present_neg.cc: New test. + * 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. -2025-06-24 Patrick Palka <ppalka@redhat.com> - Jonathan Wakely <jwakely@redhat.com> +2026-01-23 Tomasz Kamiński <tkaminsk@redhat.com> - PR libstdc++/120717 - * include/std/type_traits (__maybe_complete_object_type): New - helper trait, factored out from ... - (__is_complete_or_unbounded): ... here. Only check sizeof on a - __maybe_complete_object_type type. Fix formatting. - * testsuite/20_util/is_complete_or_unbounded/120717.cc: New test. + PR libstdc++/123758 + * include/bits/funcwrap.h (_Cpy_base(_Cpy_base const&)): + Explicitly call _Mo_base() in initializer list. -2025-06-16 Jason Merrill <jason@redhat.com> +2026-01-22 Frank Scheiner <frank.scheiner@web.de> - * testsuite/20_util/is_complete_or_unbounded/memoization.cc - * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc: - Expect -Wsfinae-incomplete. + * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: + Regenerate. -2025-06-13 Jonathan Wakely <jwakely@redhat.com> +2026-01-20 Jakub Jelinek <jakub@redhat.com> - PR libstdc++/120397 - * include/bits/stl_uninitialized.h (_UninitDestroyGuard<I,void>): - Add new member function _S_destroy and call it from the - destructor (for C++17 only). - * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/120397.cc: - New test. - * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/120397.cc: - New test. - -2025-06-13 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/120648 - * include/bits/chrono_io.h (__formatter_chrono::_M_format_to): - Handle %c, %r, %x and %X by passing them to _M_c_r_x_X. - (__formatter_chrono::_M_c_r_x_X): Reworked from _M_c. - (__formatter_chrono::_M_c): Renamed into above. - (__formatter_chrono::_M_r, __formatter_chrono::_M_x) - (__formatter_chrono::_M_X): Removed. - * testsuite/std/time/format/pr117214.cc: New tests for %r, %x, - %X with date, time and durations. - -2025-06-13 Patrick Palka <ppalka@redhat.com> - - * include/bits/ranges_algo.h (__detail::__by_ref_or_value_fn): New. - (__detail::_Comp_proj): New. - (__detail::__make_comp_proj): Use it instead. - (__detail::_Pred_proj): New. - (__detail::__make_pred_proj): Use it instead. - -2025-06-13 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - PR c++/120644 - * include/std/optional (format_kind): Do not use `auto`. - -2025-06-13 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/23_containers/vector/bool/format.cc: Replaced _CharT - with CharT. - * testsuite/std/format/debug.cc: Likewise. - * testsuite/std/format/ranges/adaptors.cc: Likewise. - * testsuite/std/format/ranges/formatter.cc: Likewise. - * testsuite/std/format/ranges/map.cc: Likewise. - * testsuite/std/format/ranges/sequence.cc: Likewise. - * testsuite/std/format/ranges/string.cc: Likewise. - * testsuite/std/format/tuple.cc: Likewise. - * testsuite/std/time/format/empty_spec.cc: Likewise. - * testsuite/std/time/format/pr120114.cc: Likewise. - * testsuite/std/time/format/pr120481.cc: Likewise. - * testsuite/std/time/format/precision.cc: Likewise. - -2025-06-13 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/chrono_io.h (__formatter_chrono::_M_format): - Remove handling of empty _M_chrono_specs. - (__formatter_chrono::_M_format_to_ostream): Changed to accept - only chrono::duration and made public. - (std::formatter<chrono::duration<_Rep, _Period>, _CharT>): - Configure __defSpec and handle empty chrono-spec locally. - -2025-06-13 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/chrono_io.h (__format::__formatter_chrono_info) - [_GLIBCXX_USE_CXX11_ABI || ! _GLIBCXX_USE_DUAL_ABI]: Define. - (std::formatter<chrono::sys_info, _CharT>) - (std::formatter<chrono::local_inf, _CharT>): Delegate to - __format::__formatter_chrono_info. - (std::operator<<(basic_ostream<_CharT, _Traits>& const sys_info&)): - Use format on sys_info with empty format spec. - -2025-06-13 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/time/format/whitespace.cc: New test. - -2025-06-12 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - PR libstdc++/119496 - * include/bits/stl_algo.h: Adjust calls to requested_size. - * include/bits/stl_tempbuf.h (requested_size): Rename with - an _M_ prefix. - * testsuite/17_intro/names.cc: Add a #define for - requested_size. - -2025-06-12 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/formatfwd.h (format_kind): Move the definition - (and some supporting code) from <format>. - * include/std/format (format_kind): Likewise. - * include/bits/version.def (optional_range_support): Add - the feature-testing macro. + * include/bits/version.def (reflection): Add cxx11abi = yes;. * include/bits/version.h: Regenerate. - * include/std/optional (iterator, const_iterator, begin, end): - Add range support. - (enable_view): Specialize for std::optional. - (format_kind): Specialize for std::optional. - * testsuite/20_util/optional/range.cc: New test. - * testsuite/20_util/optional/version.cc: Test the new - feature-testing macro. - -2025-06-12 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/chrono_io.h (_ChronoFormats::_S_ftz) - (_ChronoFormats::_S_ft, _ChronoFormats::_S_t): Define. - (__formatter_chrono::_M_format_to_ostream): Remove handling for - time_points. - (std::formatter<chrono::hh_mm_ss<_Dur>, _CharT>) - (std::formatter<chrono::sys_time<_Dur>, _CharT>) - (std::formatter<chrono::utc_time<_Dur>, _CharT>) - (std::formatter<chrono::tai_time<_Dur>, _CharT>) - (std::formatter<chrono::gps_time<_Dur>, _CharT>) - (std::formatter<chrono::file_time<_Dur>, _CharT>) - (std::formatter<chrono::local_time<_Dur>, _CharT>) - (std::formatter<chrono::__detail::__local_time_fmt<_Dur>, _CharT>) - (std::formatter<chrono::zoned_time<_Dur>, _CharT>): - Define __defSpec, and pass it as argument to _M_prase and - constructor of __formatter_chrono. - -2025-06-12 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/chrono_io.h (__format::_ChronoFormats): Define. - (__formatter_chrono::__formatter_chrono()) - (__formatter_chrono::__formatter_chrono(_ChronoSpec<_CharT>)): Define. - (__formatter_chrono::_M_parse): Add parameter with default spec, - and merge it with new values. Handle '%\0' as weekday index - specifier. - (__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B) - (__formatter_chrono::_M_C_y_Y, __formatter_chrono::_M_d_e) - (__formatter_chrono::_M_F): Support _M_debug flag. - (__formatter_chrono::_M_wi, __formatter_chrono::_S_weekday_index): - Define. - (std::formatter<chrono::day, _CharT>) - (std::formatter<chrono::month, _CharT>) - (std::formatter<chrono::year, _CharT>) - (std::formatter<chrono::weekday, _CharT>) - (std::formatter<chrono::weekday_indexed, _CharT>) - (std::formatter<chrono::weekday_last, _CharT>) - (std::formatter<chrono::month_day, _CharT>) - (std::formatter<chrono::month_day_last, _CharT>) - (std::formatter<chrono::month_weekday, _CharT>) - (std::formatter<chrono::month_weekday_last, _CharT>) - (std::formatter<chrono::year_month, _CharT>) - (std::formatter<chrono::year_month_day, _CharT>) - (std::formatter<chrono::year_month_day_last, _CharT>) - (std::formatter<chrono::year_month_weekday, _CharT>) - (std::formatter<chrono::year_month_weekday_last, _CharT>): - Define __defSpec, and pass it as argument to _M_parse and - constructor of __formatter_chrono. - -2025-06-12 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/std/mdspan (__mdspan::__mapping_alike): Rename template - parameter from M to _M_p. - (layout_right::mapping): Replace class with typename in template - head. - (layout_stride::mapping): Fix typo in comment. - * testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc: - Changed B to function. - -2025-06-12 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (layout_left): Strengthen the exception - guarantees of layout_left::mapping(layout_stride::mapping). - * testsuite/23_containers/mdspan/layouts/ctors.cc: - Simplify tests to reflect the change. - -2025-06-12 Luc Grosheintz <luc.grosheintz@gmail.com> - - * testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc: Add - tests for layout_stride. - * testsuite/23_containers/mdspan/layouts/ctors.cc: Add test for - layout_stride and the interaction with other layouts. - * testsuite/23_containers/mdspan/layouts/empty.cc: Ditto. - * testsuite/23_containers/mdspan/layouts/mapping.cc: Ditto. - * testsuite/23_containers/mdspan/layouts/stride.cc: New test. - -2025-06-12 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (layout_stride): New class. - * src/c++23/std.cc.in: Add layout_stride. - -2025-06-12 Luc Grosheintz <luc.grosheintz@gmail.com> - - * testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc: Add - tests for layout_right. - * testsuite/23_containers/mdspan/layouts/ctors.cc: Add tests for - layout_right and the interaction with layout_left. - * testsuite/23_containers/mdspan/layouts/empty.cc: ditto. - * testsuite/23_containers/mdspan/layouts/mapping.cc: ditto. - -2025-06-12 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (layout_right): New class. - * src/c++23/std.cc.in: Add layout_right. - -2025-06-12 Luc Grosheintz <luc.grosheintz@gmail.com> - - * testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc: New test. - * testsuite/23_containers/mdspan/layouts/ctors.cc: New test. - * testsuite/23_containers/mdspan/layouts/empty.cc: New test. - * testsuite/23_containers/mdspan/layouts/mapping.cc: New test. - -2025-06-12 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan (layout_left): New class. - * src/c++23/std.cc.in: Add layout_left. - -2025-06-12 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan(__mdspan::_ExtentsStorage): Change name - of private member _M_dynamic_extens to _M_dyn_exts. - (extents): Change name of private member from _M_dynamic_extents - to _M_exts. - Fix two instances of whitespace errors. - * testsuite/23_containers/mdspan/extents/ctor_default.cc: Fix - integer comparison with cmp_equal. - -2025-06-12 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/manual/test.xml: Improve discussion of copyright - notices in new test cases. - * doc/html/manual/test.html: Regenerate. - -2025-06-12 Jonathan Wakely <jwakely@redhat.com> - - * scripts/create_testsuite_files: Remove incorrect comment about - filtering out wchar_t tests. - -2025-06-12 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120625 - * include/std/format (__format::__disabled): Remove. - (__formatter_disabled): New type. - (formatter<char*, wchar_t>, formatter<const char*, wchar_t>) - (formatter<char[N], wchar_t>, formatter<string, wchar_t>) - (formatter<string_view, wchar_t>): Use __formatter_disabled as - base class instead of formatter<__disabled, wchar_t>. - * testsuite/std/format/formatter/120625.cc: New test. - -2025-06-11 Jonathan Wakely <jwakely@redhat.com> - - * doc/doxygen/user.cfg.in (PREDEFINED): Remove -D prefixes from - some macros. Define _GLIBCXX_USE_BUILTIN_TRAIT and - _GLIBCXX_HAVE_ICONV macros. - -2025-06-11 Jonathan Wakely <jwakely@redhat.com> - - * libsupc++/exception: Remove redundant parentheses and adjust - whitespace. - -2025-06-11 Jonathan Wakely <jwakely@redhat.com> - - * include/std/type_traits: Restore @cond and @endcond balance. - -2025-06-11 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/time/format/empty_spec.cc: New tests. - * testsuite/std/time/format/precision.cc: New test. - -2025-06-11 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_construct.h: Replace std::__addressof with - std::addressof in code that doesn't need to compile as C++98. - Replace std::__is_constant_evaluated with - std::is_constant_evaluated in code that doesn't need to compile - as C++17 or earlier. - * include/bits/stl_uninitialized.h: Likewise for __addressof. - -2025-06-11 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/manual/test.xml: Remove note about unused 'test' - variables for old definition of VERIFY. - * doc/html/manual/test.html: Regenerate. - * testsuite/experimental/net/buffer/arithmetic.cc: Remove unused - variable. - * testsuite/experimental/net/buffer/const.cc: Likewise. - * testsuite/experimental/net/buffer/mutable.cc: Likewise. - * testsuite/experimental/net/buffer/size.cc: Likewise. - * testsuite/experimental/net/timer/waitable/cons.cc: Likewise. - * testsuite/experimental/net/timer/waitable/dest.cc: Likewise. - * testsuite/experimental/net/timer/waitable/ops.cc: Likewise. - * testsuite/ext/special_functions/airy_ai/check_value.cc: - Likewise. - * testsuite/ext/special_functions/airy_bi/check_value.cc: - Likewise. - * testsuite/ext/special_functions/conf_hyperg/check_value.cc: - Likewise. - * testsuite/ext/special_functions/hyperg/check_value.cc: - Likewise. - * testsuite/special_functions/01_assoc_laguerre/check_value.cc: - Likewise. - * testsuite/special_functions/02_assoc_legendre/check_value.cc: - Likewise. - * testsuite/special_functions/02_assoc_legendre/pr86655.cc: - Likewise. - * testsuite/special_functions/03_beta/check_value.cc: Likewise. - * testsuite/special_functions/04_comp_ellint_1/check_value.cc: - Likewise. - * testsuite/special_functions/05_comp_ellint_2/check_value.cc: - Likewise. - * testsuite/special_functions/06_comp_ellint_3/check_value.cc: - Likewise. - * testsuite/special_functions/07_cyl_bessel_i/check_value.cc: - Likewise. - * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: - Likewise. - * testsuite/special_functions/09_cyl_bessel_k/check_value.cc: - Likewise. - * testsuite/special_functions/10_cyl_neumann/check_value.cc: - Likewise. - * testsuite/special_functions/11_ellint_1/check_value.cc: - Likewise. - * testsuite/special_functions/12_ellint_2/check_value.cc: - Likewise. - * testsuite/special_functions/13_ellint_3/check_value.cc: - Likewise. - * testsuite/special_functions/14_expint/check_value.cc: - Likewise. - * testsuite/special_functions/15_hermite/check_value.cc: - Likewise. - * testsuite/special_functions/16_laguerre/check_value.cc: - Likewise. - * testsuite/special_functions/17_legendre/check_value.cc: - Likewise. - * testsuite/special_functions/18_riemann_zeta/check_value.cc: - Likewise. - * testsuite/special_functions/19_sph_bessel/check_value.cc: - Likewise. - * testsuite/special_functions/20_sph_legendre/check_value.cc: - Likewise. - * testsuite/special_functions/20_sph_legendre/pr86655.cc: - Likewise. - * testsuite/special_functions/21_sph_neumann/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/02_assoc_legendre/pr86655.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/03_beta/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/04_comp_ellint_1/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/05_comp_ellint_2/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/06_comp_ellint_3/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/08_cyl_bessel_i/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/09_cyl_bessel_j/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/10_cyl_bessel_k/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/11_cyl_neumann/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/12_ellint_1/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/13_ellint_2/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/14_ellint_3/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/check_value_neg.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/18_laguerre/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/19_legendre/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/20_riemann_zeta/check_value_neg.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/21_sph_bessel/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_value.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/22_sph_legendre/pr86655.cc: - Likewise. - * testsuite/tr1/5_numerical_facilities/special_functions/23_sph_neumann/check_value.cc: - Likewise. -2025-06-11 Jonathan Wakely <jwakely@redhat.com> - - * include/std/sstream: Adjust whitespace. - -2025-06-11 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120390 - * include/bits/stl_construct.h (_Destroy_aux::__destroy_n): New - static member function. - (_Destroy_aux<true>::__destroy_n): Likewise. - (_Destroy_n_aux): Remove. - (_Destroy(ForwardIterator, ForwardIterator)): Remove - static_assert. Use is_trivially_destructible instead of - __has_trivial_destructor. - (_Destroy_n): Likewise. Use _Destroy_aux::__destroy_n instead of - _Destroy_n_aux::__destroy_n. - * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: - Adjust dg-error strings. Move destroy_n tests to ... - * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc: - New test. - * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: - Adjust dg-error strings. - * testsuite/23_containers/vector/cons/destructible_neg.cc: - Likewise. - -2025-06-11 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/27_io/basic_istringstream/cons/char/string_view.cc: - Only check get_allocator() for new string ABI. - * testsuite/27_io/basic_ostringstream/cons/char/string_view.cc: - Likewise. - * testsuite/27_io/basic_stringbuf/cons/char/string_view.cc: - Likewise. - * testsuite/27_io/basic_stringstream/cons/char/string_view.cc: - Likewise. - -2025-06-10 Patrick Palka <ppalka@redhat.com> - - * include/bits/max_size_type.h (__max_size_type::_M_val): Make - public instead of private. - (__max_size_type::_M_msb): Likewise. - (__max_diff_type::_M_rep): Likewise. - * testsuite/std/ranges/iota/max_size_type.cc: Verify - __max_diff_type and __max_size_type are structural. - -2025-06-10 Yihan Wang <yronglin777@gmail.com> - Jonathan Wakely <jwakely@redhat.com> - - * include/std/tuple (__can_make_from_tuple): New variable - template. - (__make_from_tuple_impl): Add static_assert. - (make_from_tuple): Constrain using __can_make_from_tuple. - * testsuite/20_util/tuple/dr3528.cc: New test. - -2025-06-09 Nathan Myers <ncm@cantrip.org> - - PR libstdc++/119741 - * include/std/sstream: full implementation, really just - decls, requires clause and plumbing. - * include/bits/version.def, include/bits/version.h: - new preprocessor symbol - __cpp_lib_sstream_from_string_view. - * testsuite/27_io/basic_stringbuf/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_istringstream/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_ostringstream/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_stringstream/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_stringbuf/cons/wchar_t/string_view.cc: - New tests. - * testsuite/27_io/basic_istringstream/cons/wchar_t/string_view.cc: - New tests. - * testsuite/27_io/basic_ostringstream/cons/wchar_t/string_view.cc: - New tests. - * testsuite/27_io/basic_stringstream/cons/wchar_t/string_view.cc: - New tests. - -2025-06-08 John David Anglin <danglin@gcc.gnu.org> - - * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update. - -2025-06-06 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/30_threads/semaphore/1.cc: Check type properties and - max() values. - * testsuite/30_threads/semaphore/3.cc: New test. - * testsuite/30_threads/semaphore/cons_neg.cc: New test. - -2025-06-06 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/semaphore_base.h (_Select_semaphore_impl): Rename - to _Semaphore_impl and use std::conditional_t instead of an - immediately invoked lambda expression. - * include/std/semaphore (counting_semaphore): Adjust to use new - name. - -2025-06-06 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/30_threads/barrier/1.cc: Require hosted. Only - require gthreads for non-linux targets. - * testsuite/30_threads/barrier/2.cc: Likewise. - * testsuite/30_threads/semaphore/1.cc: Likewise. - * testsuite/30_threads/semaphore/2.cc: Likewise. - * testsuite/30_threads/semaphore/cons.cc: Likewise. - * testsuite/30_threads/semaphore/least_max_value_neg.cc: - Likewise. - * testsuite/30_threads/semaphore/try_acquire.cc: Likewise. - -2025-06-06 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/120432 - * include/std/flat_map (flat_map::operator[]): Make the - non-template overloads call try_emplace directly. Remove - non-standard same_as constraint on the template overload. - * testsuite/23_containers/flat_map/1.cc (test08): New test. - -2025-06-06 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_timed_wait.h (__atomic_wait_address_until_v): - Add assertion to prevent use with proxy waits. - (__atomic_wait_address_for_v): Likewise. - * include/bits/atomic_wait.h (__atomic_wait_address_v): - Likewise. +2026-01-19 Tomasz Kamiński <tkaminsk@redhat.com> -2025-06-06 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_wait.h (__atomic_wait_address_v): Add bare - wait flag. - * include/bits/semaphore_base.h (__semaphore_base): Rename to - __semaphore_impl. Replace local variable and predicate lambdas - with _Available struct. - (__platform_semaphore_impl): New class template. - (__semaphore_impl): Remove alias template. - (_Select_semaphore_impl): New alias template. - * include/std/semaphore (counting_semaphore): Use - _Select_semaphore_impl. - -2025-06-06 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/120565 - * include/bits/chrono_io.h - (operator<<(basic_ostream<_CharT, _Traits>&, const sys_info&)) - (operator<<(basic_ostream<_CharT, _Traits>&, const local_info&)): - Support wchar_t as _CharT. - * testsuite/std/time/format/empty_spec.cc: Instantiated test_infos for - wchar_t and increase timeout. - -2025-06-06 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/time/format/empty_spec.cc: New tests and increased - timeout. - -2025-06-05 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120548 - * include/std/format (__formatter_fp::_M_localize): Do not - include a leading sign character in the string to be grouped. - * testsuite/std/format/functions/format.cc: Check grouping when - sign is present in the output. - -2025-06-05 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119152 - * src/c++23/std.cc.in (std::indirect, pmr::indirect) - [__cpp_lib_indirect] - (std::polymorphic, pmr::polymorphic) [__cpp_lib_polymorphic]: Export. - -2025-06-05 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/120481 - * include/bits/chrono_io.h (__format::_S_chars): Reorder so it - contains "-{}". - (__format::_S_colon, __format::_S_slash, __format::_S_space) - (__format::_S_plus_minus): Updated starting indicies. - (__format::_S_minus_empty_spec): Define. - (__formatter_chrono::_M_C_y_Y, __formatter_chrono::_M_R_T): - Rework implementation. - (__formatter_chrono::_M_d_e, __formatter_chrono::_M_F) - (__formatter_chrono::_M_m, __formatter_chrono::_M_u_w) - (__formatter_chrono::_M_H_I, __formatter_chrono::_M_p): - Handle multi digits values. - (__formatter_chrono::_S_digit): Return string view. - (__formatter_chrono::_S_str_d1, __formatter_chrono::_S_str_d2) - (__formatter_chrono::_S_fill_two_digits): Define. - * testsuite/std/time/format/empty_spec.cc: Update test for - year_month_day, that uses '%F'. - * testsuite/std/time/format/pr120481.cc: New test. - -2025-06-05 Nathan Myers <ncm@cantrip.org> - - Revert: - 2025-06-04 Nathan Myers <ncm@cantrip.org> - - PR libstdc++/119741 - * include/std/sstream: full implementation, really just - decls, requires clause and plumbing. - * include/bits/version.def, include/bits/version.h: - new preprocessor symbol - __cpp_lib_sstream_from_string_view. - * testsuite/27_io/basic_stringbuf/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_istringstream/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_ostringstream/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_stringstream/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_stringbuf/cons/wchar_t/string_view.cc: - New tests. - * testsuite/27_io/basic_istringstream/cons/wchar_t/string_view.cc: - New tests. - * testsuite/27_io/basic_ostringstream/cons/wchar_t/string_view.cc: - New tests. - * testsuite/27_io/basic_stringstream/cons/wchar_t/string_view.cc: - New tests. - -2025-06-04 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/std/time/format/empty_spec.cc: Only test time zones - for cxx11 string ABI. - -2025-06-04 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/99832 - * include/bits/chrono.h (system_clock::to_time_t): Add - always_inline attribute to be agnostic to the underlying type of - time_t. - (system_clock::from_time_t): Add always_inline for consistency - with to_time_t. - * testsuite/20_util/system_clock/99832.cc: New test. - -2025-06-04 Nathan Myers <ncm@cantrip.org> - - PR libstdc++/119741 - * include/std/sstream: full implementation, really just - decls, requires clause and plumbing. - * include/bits/version.def, include/bits/version.h: - new preprocessor symbol - __cpp_lib_sstream_from_string_view. - * testsuite/27_io/basic_stringbuf/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_istringstream/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_ostringstream/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_stringstream/cons/char/string_view.cc: - New tests. - * testsuite/27_io/basic_stringbuf/cons/wchar_t/string_view.cc: - New tests. - * testsuite/27_io/basic_istringstream/cons/wchar_t/string_view.cc: - New tests. - * testsuite/27_io/basic_ostringstream/cons/wchar_t/string_view.cc: - New tests. - * testsuite/27_io/basic_stringstream/cons/wchar_t/string_view.cc: - New tests. - -2025-06-04 Patrick Palka <ppalka@redhat.com> - - * include/bits/c++config (_GLIBCXX_AUTO_CAST): Define. - * include/bits/iterator_concepts.h (_Decay_copy, __decay_copy): + 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. - (__member_begin, __adl_begin): Use _GLIBCXX_AUTO_CAST instead of - __decay_copy as per P0849R8. - * include/bits/ranges_base.h (_Begin): Likewise. - (__member_end, __adl_end, _End): Likewise. - (__member_rbegin, __adl_rbegin, _RBegin): Likewise. - (__member_rend, __adl_rend, _Rend): Likewise. - (__member_size, __adl_size, _Size): Likewise. - (_Data): Likewise. - -2025-06-04 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/time/format/empty_spec.cc: New tests. - -2025-06-04 Patrick Palka <ppalka@redhat.com> - - * include/bits/ranges_algo.h (__starts_with_fn, starts_with): - Define. - (__ends_with_fn, ends_with): Define. - * include/bits/version.def (ranges_starts_ends_with): Define. - * include/bits/version.h: Regenerate. - * include/std/algorithm: Provide __cpp_lib_ranges_starts_ends_with. - * src/c++23/std.cc.in (ranges::starts_with): Export. - (ranges::ends_with): Export. - * testsuite/25_algorithms/ends_with/1.cc: New test. - * testsuite/25_algorithms/starts_with/1.cc: New test. - -2025-06-04 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/semaphore_base.h (_S_get_current): Replace with - non-static _M_get_current. - (_S_do_try_acquire): Replace with non-static _M_do_try_acquire. - -2025-06-04 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/104928 - * include/bits/semaphore_base.h (_S_do_try_acquire): Take old - value by reference. - (_M_acquire): Move _S_do_try_acquire call out of the predicate - and loop on its result. Make the predicate capture and update - the local copy of the value. - (_M_try_acquire_until, _M_try_acquire_for): Likewise. - (_M_try_acquire): Just call _M_try_acquire_for. - * testsuite/30_threads/semaphore/104928-2.cc: New test. - * testsuite/30_threads/semaphore/104928.cc: New test. - -2025-06-04 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/chrono_io.h (__formatter_chrono:_M_s): Add missing - __out argument to format_to call. - * testsuite/std/time/format/empty_spec.cc: New test. - -2025-06-03 Jonathan Wakely <jwakely@redhat.com> - - * include/std/stop_token: Check __glibcxx_jthread instead of - __cplusplus. - -2025-06-03 Jonathan Wakely <jwakely@redhat.com> - - * include/std/type_traits (is_destructible, is_destructible_v): - Define using new built-in. - (is_nothrow_destructible, is_nothrow_destructible_v): Likewise. - (is_trivially_destructible, is_trivially_destructible_v): - Likewise. - -2025-06-03 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_timed_wait.h (__detail::__wait_until): - Remove incorrect comment. - (__atomic_wait_address_until_v): Do not take address of __args in - call to __detail::__wait_until. Fix return statement to refer to - member of __wait_result_type. - (__atomic_wait_address_for_v): Change parameter type from - time_point to duration. - * src/c++20/atomic.cc (__spin_until_impl): Fix incorrect - return value. Reuse result of first call to clock. - -2025-06-03 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_vector.h (~_Vector_base): Add unreachable - hint for negative capacity and cast to size_t explicitly. - * include/bits/vector.tcc (vector::_M_realloc_append): Use - size() instead of end() - begin(). - -2025-06-03 Jonathan Wakely <jwakely@redhat.com> - - * include/std/bit (__rotl, __rotr): Use static_cast for - conversion from int to unsigned. - -2025-06-03 Jonathan Wakely <jwakely@redhat.com> - - * src/c++23/std.cc.in: Remove redundant checks for feature test - macros that are always true. - -2025-06-02 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/basic_string.h (basic_string::size): Remove space - before parameter list. - (basic_string::capacity): Likewise. - * include/bits/stl_deque.h (deque::size): Likewise. - * include/bits/stl_vector.h (vector::size, vector::capacity): - Likewise. - * include/bits/vector.tcc (vector::_M_realloc_insert): Likewise. - (vector::_M_realloc_append): Likewise. - -2025-06-02 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120386 - * include/bits/ranges_algo.h (__unique_copy_fn): Reorder - arguments for third case to match the first two cases. - * include/bits/stl_algo.h (__unique_copy): Replace three - overloads with two, depending only on the iterator category of - the input range. Dispatch to __unique_copy_1 for the - non-forward case. - (__unique_copy_1): New overloads for the case where the input - range uses non-forward iterators. - (unique_copy): Only pass the input range category to - __unique_copy. - * testsuite/25_algorithms/unique_copy/lwg2439.cc: New test. - -2025-06-02 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/funcwrap.h (__polyfunc::__pass_by_rref): Define. - (__polyfunc::__param_t): Update to use __pass_by_rref. - * include/bits/cpyfunc_impl.h:: Assert that are parameters type - are complete. - * include/bits/funcref_impl.h: Likewise. - * include/bits/mofunc_impl.h: Likewise. - * testsuite/20_util/copyable_function/call.cc: New test. - * testsuite/20_util/function_ref/call.cc: New test. - * testsuite/20_util/move_only_function/call.cc: New test. - * testsuite/20_util/copyable_function/conv.cc: New test. - * testsuite/20_util/function_ref/conv.cc: New test. - * testsuite/20_util/move_only_function/conv.cc: New test. - * testsuite/20_util/copyable_function/incomplete_neg.cc: New test. - * testsuite/20_util/function_ref/incomplete_neg.cc: New test. - * testsuite/20_util/move_only_function/incomplete_neg.cc: New test. - -2025-06-02 Jonathan Wakely <jwakely@redhat.com> - Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119152 - * include/bits/indirect.h (std::polymorphic, pmr::polymorphic) - [__glibcxx_polymorphic]: Define. - * include/bits/version.def (polymorphic): Define. - * include/bits/version.h: Regenerate. - * include/std/memory: Define __cpp_lib_polymorphic. - * testsuite/std/memory/polymorphic/copy.cc: New test. - * testsuite/std/memory/polymorphic/copy_alloc.cc: New test. - * testsuite/std/memory/polymorphic/ctor.cc: New test. - * testsuite/std/memory/polymorphic/ctor_poly.cc: New test. - * testsuite/std/memory/polymorphic/incomplete.cc: New test. - * testsuite/std/memory/polymorphic/invalid_neg.cc: New test. - * testsuite/std/memory/polymorphic/move.cc: New test. - * testsuite/std/memory/polymorphic/move_alloc.cc: New test. - -2025-05-30 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/time/format/empty_spec.cc: New test. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_timed_wait.h: Use __wait_result_type. - * include/bits/atomic_wait.h (__wait_result_type): New struct. - (__wait_args::_M_prep_for_wait_on): Rename to _M_setup_wait, use - __wait_result_type. - (__atomic_wait_address): Adjust to call _M_setup_wait. - * src/c++20/atomic.cc (__spin_impl): Use __wait_result_type. - (__wait_impl): Likewise. - (__spin_until_impl): Likewise. - (__wait_until_impl): Likewise. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118494 - PR libstdc++/110854 - PR libstdc++/98749 - * acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Remove checks for - sem_timedwait. Do not define _GLIBCXX_HAVE_POSIX_SEMAPHORE. - * config.h.in: Regenerate. - * configure: Regenerate. - * include/bits/semaphore_base.h (__platform_semaphore): Remove. - (__atomic_semaphore): Replace with __semaphore_base<bool> and - make type of _M_count depend on template parameter. Fix _S_max - constant to use correct type. - (__semaphore_base::_M_try_acquire): Qualify to avoid ADL. - (__semaphore_base::_M_release): Return old value. Remove FIXME - comment. - (__semaphore_impl): Replace typedef with alias template. - * include/bits/version.def (semaphore): Do not depend on - _GLIBCXX_HAVE_POSIX_SEMAPHORE. - * include/bits/version.h: Regenerate. - * include/std/semaphore (semaphore): Adjust type of _M_sem - member. Add constexpr to constructor. Add assertions to - (semaphore::semaphore(ptrdiff_t)): Add constexpr. Add assertion - for precondition. - (semaphore::release): Add assertion using value returned from - _M_release. - * testsuite/30_threads/semaphore/100806.cc: Increase template - argument for std::counting_semaphore, so constructor - precondition is met. - * testsuite/30_threads/semaphore/cons.cc: New test. - * testsuite/30_threads/semaphore/try_acquire_posix.cc: Remove. - * testsuite/30_threads/semaphore/platform_try_acquire_for.cc: - Removed. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * include/std/barrier (__tree_barrier_base): New class. - (__tree_barrier): Move non-dependent code into - __tree_barrier_base and derive from it. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118395 - PR libstdc++/108974 - PR libstdc++/98749 - * include/std/barrier (__tree_barrier): Use default - member-initializers. Change _M_state member from - unique_ptr<__state_t[]> to atomic<__state_t*>. Add - no_unique_address attribute to _M_completion. - (__tree_barrier::_M_arrive): Load value from _M_state. - (__tree_barrier::_M_invoke_completion): New member function to - ensure a throwing completion function will terminate, as - proposed in LWG 3898. - (__tree_barrier::max): Reduce by one to avoid overflow. - (__tree_barrier::__tree_barrier): Add constexpr. Qualify call to - std::move. Remove mem-initializers made unnecessary by default - member-initializers. Add precondition check. Only allocate state - array if not constant evaluated. - (__tree_barrier::arrive): Add precondition check. Do deferred - initialization of _M_state if needed. - (barrier): Add static_assert, as proposed in LWG 3898. - (barrier::barrier): Add constexpr. - * testsuite/30_threads/barrier/cons.cc: New test. - * testsuite/30_threads/barrier/lwg3898.cc: New test. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * include/std/latch (latch::arrive_and_wait): Optimise. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * config/abi/pre/gnu.ver: Add new symbol version and exports. - * include/bits/atomic_timed_wait.h (__platform_wait_until): Move - to atomic.cc. - (__cond_wait_until, __spin_until_impl): Likewise. - (__wait_until_impl): Likewise. Change __wait_args_base parameter - to non-const reference and change third parameter to - __wait_clock_t::duration. - (__wait_until): Change __wait_args_base parameter to non-const - reference. Change Call time_since_epoch() to get duration from - time_point. - (__wait_for): Change __wait_args_base parameter to non-const - reference. - (__atomic_wait_address_until): Call _M_prep_for_wait_on on args. - (__atomic_wait_address_for): Likewise. - (__atomic_wait_address_until_v): Qualify call to avoid ADL. Do - not forward __vfn. - * include/bits/atomic_wait.h (__platform_wait_uses_type): Use - alignof(T) not alignof(T*). - (__futex_wait_flags, __platform_wait, __platform_notify) - (__waitable_state, __spin_impl, __notify_impl): Move to - atomic.cc. - (__wait_impl): Likewise. Change __wait_args_base parameter to - non-const reference. - (__wait_args_base::_M_wait_state): New data member. - (__wait_args_base::_M_prep_for_wait_on): New member function. - (__wait_args_base::_M_load_proxy_wait_val): New member - function. - (__wait_args_base::_S_memory_order_for): Remove member function. - (__atomic_wait_address): Call _M_prep_for_wait_on on args. - (__atomic_wait_address_v): Qualify call to avoid ADL. - * src/c++20/Makefile.am: Add new file. - * src/c++20/Makefile.in: Regenerate. - * src/c++20/atomic.cc: New file. - * testsuite/17_intro/headers/c++1998/49745.cc: Remove XFAIL for - C++20 and later. - * testsuite/29_atomics/atomic/wait_notify/100334.cc: Remove use - of internal implementation details. - * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.35 version. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_timed_wait.h (__wait_until_impl): Adjust - to use new naming. - * include/bits/atomic_wait.h (__waiter_pool_impl): Rename to - __waitable_state. - (__waiter_pool_impl::_S_wait): Rename to _M_waiters. - (__waiter_pool_impl::_S_impl_for): Rename to _S_state_for. - (__waiter_pool_impl::_S_track): Adjust to use new naming. - (__wait_impl, __notify_impl): Likewise. - * testsuite/29_atomics/atomic/wait_notify/100334.cc: Adjust to - use new naming. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_timed_wait.h - (__atomic_wait_address_until_v): Replace __atomic_compare with - __atomic_eq. - (__atomic_wait_address_for_v): Likewise. - * include/bits/atomic_wait.h (__atomic_compare): Rename to - __atomic_eq. - (__atomic_wait_address_v): Replace __atomic_compare with - __atomic_eq. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_timed_wait.h (__wait_until_impl): Change - first parameter to const void* and then static_cast to const - __platform_wait_t* when not using proxied wait. - (__wait_until): Change first parameter to const void*. - (__wait_for): Likewise. - (__atomic_wait_address_until): Remove reinterpret_cast and allow - address to implicitly convert to const void* instead. - (__atomic_wait_address_for): Likewise. - * include/bits/atomic_wait.h: (__wait_impl, __notify_impl): - Change first parameter to const void* and then static_cast to - const __platform_wait_t* when not using proxied wait. - (__atomic_wait_address, __atomic_notify_address) Remove - reinterpret_cast and allow address to implicitly convert to - const void* instead. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_wait.h (__platform_wait): Change function - template to a normal function. The parameter is always - __platform_wait_t* which is just int* for this implementation of - the function. - (__platform_notify): Likewise. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_timed_wait.h (__to_wait_clock): Do not use - chrono::ceil if clock and duration are already correct type. - (__wait_until): Always call __to_wait_clock. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_wait.h (__notify_impl): Increment the - proxy value before returning early for the uncontended case. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_timed_wait.h (__cond_wait_impl): Add - missing inline keyword. - (__spin_until_impl): Change parameter from pointer to reference. - Replace make_pair with list-initialization. Initialize variable - for return value. - (__wait_until_impl): Likewise. Remove some preprocessor - conditional logic. Use _S_track for contention tracking. - Avoid unnecessary const_cast. - (__wait_until): Change parameter from pointer to reference. - Replace make_pair with list-initialization. - (__wait_for): Change parameter from pointer to reference. Add - __do_spin flag to args. - * include/bits/atomic_wait.h (__waiter_pool_impl::_S_track): New - function returning an RAII object for contention tracking. - (__wait_flags): Do not set the __do_spin flag in the __spin_only - enumerator. Comment out the unused __abi_version_mask - enumerator. Define operator| and operator|= overloads. - (__wait_args_base::operator&): Define. - (__wait_args::operator&, __wait_args::_S_default_flags): Remove. - (__wait_args::operator|, __wait_args::operator|=): Remove. - (__spin_impl): Change parameter from pointer to reference. - Replace make_pair call with list-initialization. - (__wait_impl): Likewise. Remove some preprocessor conditional - logic. Always store old value in __args._M_old. Avoid - unnecessary const_cast. Use _S_track. - (__notify_impl): Change parameter to reference. Remove some - preprocessor conditional logic. - (__atomic_wait_address): Add comment. Update __args._M_old on - each iteration. - (__atomic_wait_address_v): Add comment. - * include/std/latch (latch::wait): Adjust predicates for new - logic. - * testsuite/29_atomics/atomic_integral/wait_notify.cc: Improve - test. - -2025-05-30 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_timed_wait.h: Whitespace fixes. - * include/bits/atomic_wait.h: Likewise. - -2025-05-30 Thomas Rodgers <trodgers@redhat.com> - - * include/bits/atomic_timed_wait.h (__spin_until_impl): Accept - __wait_args as const __wait_args_base*. - (__wait_until_impl): Likewise. - (__wait_until): Likewise. - (__wait_for): Likewise. - (__atomic_wait_address_until): Pass __wait_args by address. - (__atomic_wait_address_for): Likewise. - * include/bits/atomic_wait.h (__wait_args_base): New struct. - (__wait_args): Derive from __wait_args_base. - (__wait_args::__wait_args()): Adjust ctors to call call base ctor. - (__wait_args::__wait_args(const __wait_args_base&)): New ctor. - (__wait_args::operator|=): New method. - (__wait_args::_S_flags_for): Change return type to - __wait_flags. - (__spin_impl): Accept __wait_args as const __wait_args_base*. - (__wait_impl): Likewise. - (__notify_impl): Likewise. - (__atomic_wait_address): Pass __wait_args by address. - (__atomic_wait_address_v): Likewise. - (__atomic_notify_address): Likewise. - -2025-05-30 Thomas Rodgers <trodgers@redhat.com> - - * include/bits/atomic_timed_wait.h: - (__detail::__platform_wait_until_impl): Rename to - __platform_wait_until. - (__detail::__platform_wait_until): Remove previous - definition. - (__detail::__cond_wait_until_impl): Rename to - __cond_wait_until. - (__detail::__cond_wait_until): Remove previous - definition. - (__detail::__spin_until_impl): New function. - (__detail::__wait_until_impl): New function. - (__detail::__wait_until): New function. - (__detail::__wait_for): New function. - (__detail::__timed_waiter_pool): Remove type. - (__detail::__timed_backoff_spin_policy): Remove type. - (__detail::__timed_waiter): Remove type. - (__detail::__enters_timed_wait): Remove type alias. - (__detail::__bare_timed_wait): Remove type alias. - (__atomic_wait_address_until): Adjust to new implementation - detail. - (__atomic_wait_address_until_v): Likewise. - (__atomic_wait_address_bare): Remove. - (__atomic_wait_address_for): Adjust to new implementation - detail. - (__atomic_wait_address_for_v): Likewise. - (__atomic_wait_address_for_bare): Remove. - * include/bits/atomic_wait.h: Include bits/stl_pair.h. - (__detail::__default_spin_policy): Remove type. - (__detail::__atomic_spin): Remove function. - (__detail::__waiter_pool_base): Rename to __waiter_pool_impl. - Remove _M_notify. Rename _S_for to _S_impl_for. - (__detail::__waiter_base): Remove type. - (__detail::__waiter_pool): Remove type. - (__detail::__waiter): Remove type. - (__detail::__enters_wait): Remove type alias. - (__detail::__bare_wait): Remove type alias. - (__detail::__wait_flags): New enum. - (__detail::__wait_args): New struct. - (__detail::__wait_result_type): New type alias. - (__detail::__spin_impl): New function. - (__detail::__wait_impl): New function. - (__atomic_wait_address): Adjust to new implementation detail. - (__atomic_wait_address_v): Likewise. - (__atomic_notify_address): Likewise. - (__atomic_wait_address_bare): Delete. - (__atomic_notify_address_bare): Likewise. - * include/bits/semaphore_base.h: Adjust implementation to - use new __atomic_wait_address_v contract. - * include/std/barrier: Adjust implementation to use new - __atomic_wait contract. - * include/std/latch: Adjust implementation to use new - __atomic_wait contract. - * testsuite/29_atomics/atomic/wait_notify/100334.cc (main): - Adjust to for __detail::__waiter_pool_base renaming. - -2025-05-29 Patrick Palka <ppalka@redhat.com> - - * include/std/flat_map (_Flat_map_impl::operator==): Compare - keys and values separately. - -2025-05-29 Patrick Palka <ppalka@redhat.com> - Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120465 - * include/std/flat_map (_Flat_map_impl::_M_erase_if): Use a - projection with ranges::remove_if to pass a pair instead of - a tuple to the predicate. - * testsuite/23_containers/flat_map/1.cc (test07): Strengthen - to expect the argument passed to the predicate is a pair. - * testsuite/23_containers/flat_multimap/1.cc (test07): Likewise. - -2025-05-29 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/17_intro/names.cc [_AIX] (a): Undefine. - * testsuite/experimental/names.cc [_AIX] (ptr): Undefine. - -2025-05-29 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/22_locale/num_put/put/char/lwg4084.cc [_AIX]: Adjust - expected output for NaN and infinity. - -2025-05-29 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/23_containers/deque/capacity/shrink_to_fit.cc: - Remove dg-xfail-run-if for AIX. - * testsuite/23_containers/unordered_map/96088.cc: Replace - dg-xfail-run-if with dg-require-effective-target c++20. - * testsuite/23_containers/unordered_multimap/96088.cc: Likewise. - * testsuite/23_containers/unordered_multiset/96088.cc: Likewise. - * testsuite/23_containers/unordered_set/96088.cc: Likewise. - -2025-05-29 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/boost_concept_check.h: Disable -Wlong-long - warnings. - * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error - line number. - -2025-05-29 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/manual/test.xml: Remove outdated documentation on - testing with -std options in --target_board. - * doc/html/manual/test.html: Regenerate. - -2025-05-27 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/17_intro/names.cc [_AIX] (n): Undefine. - * testsuite/experimental/names.cc [_AIX] (ptr): Undefine. - -2025-05-27 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/std/format/debug.cc: Disable for targets with 16-bit - wchar_t. - * testsuite/std/format/functions/format.cc: Use -DUNICODE for - targets with 32-bit wchar_t. - (test_unicode) [UNICODE]: Only run checks when UNICODE is - defined. - -2025-05-27 Jonathan Wakely <jwakely@redhat.com> - - * include/Makefile.in: Regenerate. - -2025-05-27 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/96710 - * include/bits/std_abs.h [__SIZEOF_INT128__] (abs(__int128)): + (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. - [_GLIBCXX_USE_FLOAT128] (abs(__float128)): Enable definition for - strict modes. - * testsuite/26_numerics/headers/cmath/82644.cc: Use strict_std - instead of defining __STRICT_ANSI__. - * testsuite/26_numerics/headers/cstdlib/abs128.cc: New test. - -2025-05-27 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan: Value initialize the array storing the - dynamic extents. - * testsuite/23_containers/mdspan/extents/ctor_default.cc: New - test. - -2025-05-26 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119152 - * testsuite/std/memory/indirect/ctor.cc: Run test_inplace_ctor. - -2025-05-26 Jonathan Wakely <jwakely@redhat.com> - Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119152 - * doc/doxygen/stdheader.cc: Added indirect.h file. - * include/Makefile.am: Add new header. + * 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/indirect.h: New file. - * include/bits/version.def (indirect): Define. - * include/bits/version.h: Regenerate. - * include/std/memory: Include new header. - * testsuite/std/memory/indirect/copy.cc - * testsuite/std/memory/indirect/copy_alloc.cc - * testsuite/std/memory/indirect/ctor.cc - * testsuite/std/memory/indirect/incomplete.cc - * testsuite/std/memory/indirect/invalid_neg.cc - * testsuite/std/memory/indirect/move.cc - * testsuite/std/memory/indirect/move_alloc.cc - * testsuite/std/memory/indirect/relops.cc - -2025-05-26 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119126 - * doc/doxygen/stdheader.cc: Added funcref_impl.h file. - * include/Makefile.am: Added funcref_impl.h file. - * include/Makefile.in: Added funcref_impl.h file. - * include/bits/funcref_impl.h: New file. - * include/bits/funcwrap.h: (_Ptrs::_M_obj): Const-qualify. - (_Storage::_M_ptr, _Storage::_M_ref): Remove. - (__polyfunc::__cast_to) Define. - (_Base_invoker::_S_ptrs, _Base_invoker::_S_nttp) - (_Base_invoker::_S_bind_ptrs, _Base_invoker::_S_bind_ref) - (_Base_invoker::_S_call_ptrs): Define. - (_Base_invoker::_S_call_storage): Foward to _S_call_ptrs. - (_Manager::_S_local, _Manager::_S_ptr): Adjust for _M_obj being - const qualified. - (__polyfunc::_Manager, __polyfunc::_Mo_base): Guard with - __glibcxx_move_only_function || __glibcxx_copyable_function. - (__polyfunc::__skip_first_arg, __polyfunc::__deduce_funcref) - (std::function_ref) [__glibcxx_function_ref]: Define. - * include/bits/utility.h (std::nontype_t, std::nontype) - (__is_nontype_v) [__glibcxx_function_ref]: Define. - * include/bits/version.def: Define function_ref. - * include/bits/version.h: Regenerate. - * include/std/functional: Define __cpp_lib_function_ref. - * src/c++23/std.cc.in (std::nontype_t, std::nontype) - (std::function_ref) [__cpp_lib_function_ref]: Export. - * testsuite/20_util/function_ref/assign.cc: New test. - * testsuite/20_util/function_ref/call.cc: New test. - * testsuite/20_util/function_ref/cons.cc: New test. - * testsuite/20_util/function_ref/cons_neg.cc: New test. - * testsuite/20_util/function_ref/conv.cc: New test. - * testsuite/20_util/function_ref/deduction.cc: New test. - * testsuite/20_util/function_ref/mutation.cc: New test. - -2025-05-23 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120384 - * include/bits/stl_algo.h (__unique_copy): Remove all - _BinaryPredicateConcept concept checks. - (unique_copy): Check _BinaryPredicateConcept in overload that - takes a predicate. - * testsuite/25_algorithms/unique_copy/120384.cc: New test. - -2025-05-23 Jonathan Wakely <jwakely@redhat.com> - - * include/std/type_traits (is_constant_evaluated): Add - always_inline attribute. - -2025-05-23 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/17_intro/names.cc [__sun__] (a, i, n): Undefine. - -2025-05-23 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> - - * testsuite/std/format/parse_ctx.cc: Fix typo for bfloat16 guard. - -2025-05-22 Jonathan Wakely <jwakely@redhat.com> - Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/allocated_ptr.h (_Scoped_allocation): New class - template. - -2025-05-22 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/util/pstl/test_utils.h (ForwardIterator::operator++): - Fix return type. - (BidirectionalIterator::operator++): Likewise. - (BidirectionalIterator::operator--): Likewise. - -2025-05-22 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120367 - * include/bits/stl_vector.h (_M_range_initialize): Initialize - _M_impl._M_finish. - * testsuite/23_containers/vector/cons/from_range.cc: Check with - a type that throws on construction. - exceptions during construction. - -2025-05-21 Alexandre Oliva <oliva@adacore.com> - - * testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc: - Guard non-wide stold calls with conditions for it to be - defined. - * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc: - Likewise. - -2025-05-21 Xℹ Ruoyao <xry111@mengyan1223.wang> - - PR libstdc++/81806 - * include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp - (split_finish): Use maintained size, instead of calling - std::distance. - -2025-05-21 Xℹ Ruoyao <xry111@mengyan1223.wang> - - * include/ext/pb_ds/detail/rb_tree_map_/node.hpp - (rb_tree_node_::size_type): New typedef. - (rb_tree_node_::m_subtree_size): New field. - * include/ext/pb_ds/detail/splay_tree_/node.hpp - (splay_tree_node_::size_type): New typedef. - (splay_tree_node_::m_subtree_size): New field. - * include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp - (PB_DS_BIN_TREE_NAME::update_subtree_size): Declare new member - function. - * include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp - (update_subtree_size): Define. - (apply_update, update_to_top): Call update_subtree_size. - -2025-05-21 Xℹ Ruoyao <xry111@mengyan1223.wang> - - * include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp - (insert_leaf_new, insert_imp_empty): remove redundant statements. - -2025-05-20 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/chrono_io.h (_ChronoSpec::_M_locale_specific): - Declare as bit fiekd in tail-padding.. - * include/bits/formatfwd.h (__format::_Align): Defined as enum - class and add using enum. - * include/std/format (__format::_Pres_type, __format::_Sign) - (__format::_WidthPrec, __format::_Arg_t): Defined as enum class - and add using enum. - (_Pres_type::_Pres_esc): Replace with _Pres_max. - (_Pres_type::_Pres_seq, _Pres_type::_Pres_str): Remove. - (__format::_Pres_type): Updated values of enumerators as described - above. - (__format::_Spec): Rearranged members to have 8 bits of tail-padding. - (_Spec::_M_debug): Defined. - (_Spec::_M_reserved): Extended to 8 bits and moved at the end. - (_Spec::_M_reserved2): Removed. - (_Spec::_M_parse_fill_and_align, _Spec::_M_parse_sign) - (__format::__write_padded_as_spec): Adjusted default value checks. - (__format::_Term_char): Add using enum and adjust enumertors. - (__Escapes::_S_term): Adjusted for _Term_char values. - (__format::__should_escape_ascii): Adjusted _Term_char uses. - (__format::__write_escaped): Adjusted for _Term_char. - (__formatter_str::parse): Set _Pres_s if specifed and _M_debug - instead of _Pres_esc. - (__formatter_str::set_debug_format): Set _M_debug instead of - _Pres_esc. - (__formatter_str::format, __formatter_str::_M_format_range): - Check _M_debug instead of _Prec_esc. - (__formatter_str::_M_format_escaped): Adjusted _Term_char uses. - (__formatter_int::__formatter_int(_Spec<_CharT>)): Set _Pres_d if - default presentation type is not set. - (__formatter_int::_M_parse): Adjusted default value checks. - (__formatter_int::_M_do_parse): Set _M_debug instead of _Pres_esc. - (__formatter_int::_M_format_character): Handle escaped presentation. - (__formatter_int::_M_format_character_escaped) - (__formatter_int::_S_character_width): Merged into - _M_format_character. - (__formatter_ptr::__formatter_ptr(_Spec<_CharT>)): Set _Pres_p if - default presentation type is not set. - (__formatter_ptr::parse): Add default __type parameter, store _Pres_p, - and handle _M_alt to be consistent with meaning for integers. - (__foramtter_ptr<_CharT>::_M_set_default): Define. - (__format::__pack_arg_types, std::basic_format_args): Add necessary - casts. - (formatter<_CharT, _CharT>::set_debug_format) - (formatter<char, wchar_t>::set_debug_format): Set _M_debug instead of - _Pres_esc. - (formatter<_CharT, _CharT>::format, formatter<char, wchar_t>::format): - Simplify calls to _M_format_character. - (range_formatter<_Rg, _CharT>::parse): Replace _Pres_str with - _Pres_s and set _M_debug instead of _Pres_esc. - (range_formatter<_Rg, _CharT>::format): Replace _Pres_str with - _Pres_s. - -2025-05-20 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/faq.xml: Update URL for archived SGI STL docs. - * doc/xml/manual/containers.xml: Likewise. - * doc/xml/manual/extensions.xml: Likewise. - * doc/xml/manual/using.xml: Likewise. - * doc/xml/manual/utilities.xml: Likewise. - * doc/html/*: Regenerate. - -2025-05-19 Jonathan Wakely <jwakely@redhat.com> - - * include/std/ranges (_ZipTransform::operator()): Remove name of - unused parameter. - (chunk_view::_Iterator, stride_view::_Iterator): Likewise. - (join_with_view): Declare _Iterator and _Sentinel as class - instead of struct. - (repeat_view): Declare _Iterator as class instead of struct. - -2025-05-19 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120293 - * include/bits/chrono_io.h (_M_format_to_ostream): Add special - case for local_time convertible to local_days. - * testsuite/std/time/clock/local/io.cc: Check formatting of - chrono::local_days. - -2025-05-16 Patrick Palka <ppalka@redhat.com> - - * include/std/type_traits (__is_invocable): Define in terms of - corresponding builtin if available. - (__is_nothrow_invocable): Likewise. - (is_invocable_v): Likewise. - (is_nothrow_invocable_v): Likewise. - -2025-05-16 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/65909 - * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): - Change name of formal argument to locale. - -2025-05-15 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/std/mdspan: Implement the mandate for extents as - signed or unsigned integer and not any interal type. Remove - leading underscores from names in static_assert message. - * testsuite/23_containers/mdspan/extents/class_mandates_neg.cc: - Check that extents<char,...> and extents<bool,...> are invalid. - Adjust dg-prune-output pattern. - * testsuite/23_containers/mdspan/extents/misc.cc: Update - tests to avoid `char` and `bool` as IndexType. - -2025-05-15 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120190 - * include/std/format (format_kind): Adjust primary template to - not depend on itself. - * testsuite/std/format/ranges/format_kind_neg.cc: Adjust - expected errors. Check more invalid specializations. - -2025-05-15 Jonathan Wakely <jwakely@redhat.com> - - * include/std/complex (arg(T)): Use __builtin_signbit instead of - std::signbit. - -2025-05-15 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120235 - * doc/html/*: Regenerate. - * doc/xml/manual/evolution.xml: Document deprecation. - * include/std/complex: Replace references to TR1 subclauses with - corresponding C++11 subclauses. - (fabs): Add deprecated attribute. - * testsuite/26_numerics/complex/fabs_neg.cc: New test. - -2025-05-15 Jason Merrill <jason@redhat.com> - - * testsuite/lib/libstdc++.exp: Add -Wabi. - -2025-05-15 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119246 - * include/std/format: Updated check for _GLIBCXX_FORMAT_F128. - -2025-05-14 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119125 - * include/bits/move_only_function.h: Move to... - * include/bits/funcwrap.h: ...here. - * doc/doxygen/stdheader.cc (init_map): Replaced move_only_function.h - with funcwrap.h, and changed include guard to use feature test macro. - Move bits/version.h include before others. - * include/Makefile.am: Likewise. - * include/Makefile.in: Likewise. - * include/std/functional: Likewise. - -2025-05-14 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119125 - * doc/doxygen/stdheader.cc: Addded cpyfunc_impl.h header. - * include/Makefile.am: Add bits cpyfunc_impl.h. - * include/Makefile.in: Add bits cpyfunc_impl.h. - * include/bits/cpyfunc_impl.h: New file. - * include/bits/mofunc_impl.h: Mention LWG 4255. - * include/bits/move_only_function.h: Update header description - and change guard to also check __glibcxx_copyable_function. - (_Manager::_Func): Remove noexcept. - (std::__is_polymorphic_function_v<move_only_function<_Tp>>) - (__variant::_Never_valueless_alt<std::move_only_function<_Signature...>>) - (move_only_function) [__glibcxx_move_only_function]: Adjust guard. - (std::__is_polymorphic_function_v<copyable_function<_Tp>>) - (__variant::_Never_valueless_alt<std::copyable_function<_Signature...>>) - (__polyfunc::_Cpy_base, std::copyable_function) - [__glibcxx_copyable_function]: Define. - * include/bits/version.def: Define copyable_function. - * include/bits/version.h: Regenerate. - * include/std/functional: Define __cpp_lib_copyable_function. - * src/c++23/std.cc.in (copyable_function) - [__cpp_lib_copyable_function]: Export. - * testsuite/20_util/copyable_function/call.cc: New test based on - move_only_function tests. - * testsuite/20_util/copyable_function/cons.cc: New test based on - move_only_function tests. - * testsuite/20_util/copyable_function/conv.cc: New test based on - move_only_function tests. - * testsuite/20_util/copyable_function/copy.cc: New test. - * testsuite/20_util/copyable_function/move.cc: New test based on - move_only_function tests. - -2025-05-14 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119125 - * include/bits/mofunc_impl.h: (std::move_only_function): Adjusted for - changes in bits/move_only_function.h - (move_only_function::move_only_function(_Fn&&)): Special case - move_only_functions with same invoker. - (move_only_function::operator=(move_only_function&&)): Handle self - assigment. - * include/bits/move_only_function.h (__polyfunc::_Ptrs) - (__polyfunc::_Storage): Refactored from _Mo_func::_Storage. - (__polyfunc::__param_t): Moved from move_only_function::__param_t. - (__polyfunc::_Base_invoker, __polyfunc::_Invoke): Refactored from - move_only_function::_S_invoke. - (__polyfunc::_Manager): Refactored from _Mo_func::_S_manager. - (std::_Mofunc_base): Moved into __polyfunc::_Mo_base with parts - extracted to __polyfunc::_Storage and __polyfunc::_Manager. - (__polyfunc::__deref_as, __polyfunc::__invoker_of) - (__polyfunc::__base_of, __polyfunc::__is_invoker_convertible): Define. - (std::__is_move_only_function_v): Renamed to - __is_polymorphic_function_v. - (std::__is_polymorphic_function_v): Renamed from - __is_move_only_function_v. - * testsuite/20_util/move_only_function/call.cc: Test for - functions pointers. - * testsuite/20_util/move_only_function/conv.cc: New test. - * testsuite/20_util/move_only_function/move.cc: Tests for - self assigment. - -2025-05-14 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119246 - * include/std/format (__format::__bflt16_t): Define. - (_GLIBCXX_FORMAT_F128): Separate value for cases where _Float128 - is used. - (__format::__float128_t): Renamed to __format::__flt128_t. - (std::formatter<_Float128, _CharT>): Define always if there is - formattable 128bit float. - (std::formatter<__float128, _CharT>): Define. - (_Arg_type::_Arg_f128): Rename to _Arg_float128 and adjust value. - (_Arg_type::_Arg_ibm128): Change value to _Arg_ldbl. - (_Arg_type::_Arg_ieee128): Define as alias to _Arg_float128. - (_Arg_value::_M_f128): Replaced with _M_ieee128 and _M_float128. - (_Arg_value::_M_ieee128, _Arg_value::_M_float128) - (_Arg_value::_M_bf16, _Arg_value::_M_f16, _Arg_value::_M_f32) - (_Arg_value::_M_f64): Define. - (_Arg_value::_S_get, basic_format_arg::_S_to_enum): Handle __bflt16, - _Float16, _Float32, _Float64, and __float128 types. - (basic_format_arg::_S_to_arg_type): Preserve _bflt16, _Float16, - _Float32, _Float64 and __float128 types. - (basic_format_arg::_M_visit): Handle _Arg_float128, _Arg_ieee128, - _Arg_b16, _Arg_f16, _Arg_f32, _Arg_f64. - * testsuite/std/format/arguments/args.cc: Updated to illustrate - that extended floating point types use handles now. Added test - for __float128. - * testsuite/std/format/parse_ctx.cc: Extended test to cover class - to check_dynamic_spec with floating point types and handles. - -2025-05-14 Ville Voutilainen <ville.voutilainen@gmail.com> - - * include/std/utility (to_underlying): Add the __always_inline__ attribute. - -2025-05-12 Thomas Schwinge <tschwinge@baylibre.com> - - PR target/119645 - * configure.host [GCN, nvptx] (atomicity_dir): Don't set. - -2025-05-12 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/119714 - PR libstdc++/112490 - * include/std/expected (expected::operator==): Replace - non-dependent std::expected function parameter with a dependent - one of type expected<_Vp, _Er> where _Vp matches _Tp. - * testsuite/20_util/expected/119714.cc: New test. - -2025-05-12 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120187 - * include/c_global/ciso646: Only give deprecated warning for - C++20 and later. - * include/c_global/ccomplex: Add @since to Doxygen comment. - * include/c_global/cstdalign: Likewise. - * include/c_global/cstdbool: Likewise. - * include/c_global/ctgmath: Likewise. - * testsuite/18_support/headers/ciso646/macros.cc: Remove - dg-warning for c++17_only effective target. - * testsuite/18_support/headers/ciso646/macros-2.cc: New test. - -2025-05-12 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/manual/status_cxx2023.xml: Update status of proposals - implemented after GCC 14.2 release. - * doc/html/manual/status.html: Regenerate. - -2025-05-12 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120198 - * include/bits/version.def (scoped_lock): Do not depend on - gthreads or hosted. + * include/bits/iterator_concepts.h (std::ranges::__access::__begin): Add + constexpr. + * include/bits/version.def (reflection): New. * include/bits/version.h: Regenerate. - * include/std/mutex (scoped_lock): Update comment. - * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: - Remove dg-require-gthreads and use custom lockable type instead - of std::mutex. Check that typedef is only present for a single - template argument. - -2025-05-12 Thomas Schwinge <tschwinge@baylibre.com> - - PR libstdc++/70560 - PR libstdc++/119667 - * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Use '__SIZE_TYPE__' - instead of 'size_t'. - * configure: 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. -2025-05-12 Jonathan Wakely <jwakely@redhat.com> +2026-01-14 Tomasz Kamiński <tkaminsk@redhat.com> - PR libstdc++/118260 - * python/hook.in: Suppress output from gdb.execute calls to - register skips. + * testsuite/util/testsuite_iterators.h: Modify comment. -2025-05-12 Jonathan Wakely <jwakely@redhat.com> +2026-01-13 Tomasz Kamiński <tkaminsk@redhat.com> - * doc/xml/manual/status_cxx2017.xml: Update status for - std::to_chars and std::from_chars. - * doc/html/manual/*: Regenerate. + * 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. -2025-05-12 Jonathan Wakely <jwakely@redhat.com> +2026-01-12 Jakub Jelinek <jakub@redhat.com> - PR libstdc++/65909 - * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): - Hardcode the locale name instead of passing it to the - executable. Do not hardcode buffer size for string. + * 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_. -2025-05-10 Alexandre Oliva <oliva@adacore.com> +2026-01-12 Jonathan Wakely <jwakely@redhat.com> - * src/c++23/print.cc [__VXWORKS__]: Include ioLib.h. + * src/c++20/atomic.cc (__detail::__spin_impl): Do not use + reserved names for variables. -2025-05-09 Tomasz Kamiński <tkaminsk@redhat.com> +2026-01-12 Jonathan Wakely <jwakely@redhat.com> - * include/bits/chrono_io.h (__formatter_chrono::_M_format_to): - Extracted from _M_format. - (__formatter_chrono::_M_format): Use _Padding_sink and delegate - to _M_format_to. + * include/bits/atomic_wait.h (__wait_args): Improve comments. + * src/c++20/atomic.cc (__wait_args::_M_setup_proxy_wait): + Improve comment. -2025-05-09 Tomasz Kamiński <tkaminsk@redhat.com> +2026-01-12 Tomasz Kamiński <tkaminsk@redhat.com> - * include/std/format (__Sink_iter<_CharT>::_M_discarding) - (__Sink<_CharT>::_M_discarding, _Iter_sink<_CharT, _OutIter>::_M_discarding) - (_Padding_sinl<_CharT, _Out>::_M_padwidth) - (_Padding_sink<_CharT, _Out>::_M_maxwidth): Remove const. - (_Padding_sink<_CharT, _Out>::_M_sync_discarding) - (_Padding_sink<_CharT, _Out>::_M_discarding): Define. - (_Padding_sink<_CharT, _Out>::_Padding_sink(_Out, size_t, size_t)) - (_Padding_sink<_CharT, _Out>::_M_force_update): - (_Padding_sink<_CharT, _Out>::_M_flush): Call _M_sync_discarding. - (_Padding_sink<_CharT, _Out>::_Padding_sink(_Out, size_t)): Delegate. + * testsuite/26_numerics/random/uniform_real_distribution/operators/gencanon.cc: + Updated test. -2025-05-07 Jonathan Wakely <jwakely@redhat.com> +2026-01-10 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> - PR libstdc++/120159 - * src/c++23/std.cc.in (is_layout_compatible_v): Export. + * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Add + names {,P,K}DF16. -2025-05-07 Jonathan Wakely <jwakely@redhat.com> +2026-01-10 Wang Jinghao <zheng.xianyuwang@gmail.com> - * src/c++23/std.cc.in: Fix export for std::extents. + * 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. -2025-05-07 Luc Grosheintz <luc.grosheintz@gmail.com> +2026-01-10 Yuao Ma <c8ef@outlook.com> - * testsuite/23_containers/mdspan/extents/class_mandates_neg.cc: New test. - * testsuite/23_containers/mdspan/extents/ctor_copy.cc: New test. - * testsuite/23_containers/mdspan/extents/ctor_ints.cc: New test. - * testsuite/23_containers/mdspan/extents/ctor_shape.cc: New test. - * testsuite/23_containers/mdspan/extents/custom_integer.cc: New test. - * testsuite/23_containers/mdspan/extents/misc.cc: New test. - -2025-05-07 Luc Grosheintz <luc.grosheintz@gmail.com> - - PR libstdc++/107761 - * include/std/mdspan (extents): New class. - * src/c++23/std.cc.in: Add 'using std::extents'. - -2025-05-07 Luc Grosheintz <luc.grosheintz@gmail.com> - - * doc/doxygen/user.cfg.in: Add <mdspan>. - * include/Makefile.am: Ditto. - * include/Makefile.in: Ditto. - * include/precompiled/stdc++.h: Ditto. - * include/std/mdspan: New file. - -2025-05-07 Luc Grosheintz <luc.grosheintz@gmail.com> - - * include/bits/version.def: Add internal feature testing macro - __glibcxx_mdspan. + * 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. -2025-05-07 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/120114 - * include/bits/chrono_io.h (__formatter_chrono::_M_format): Use __field_width. - * testsuite/std/time/format/pr120114.cc: New test. +2026-01-09 Jonathan Wakely <jwakely@redhat.com> -2025-05-07 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120147 - * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Restore use of - AC_LANG_CPLUSPLUS. - * configure: Regenerate. - -2025-05-06 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/70560 - PR libstdc++/119667 - * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Only check for - __atomic_fetch_add on _Atomic_word. Define new macro - _GLIBCXX_ATOMIC_WORD_BUILTINS and stop defining macro - _GLIBCXX_ATOMIC_BUILTINS. - (GLIBCXX_ENABLE_BACKTRACE): Check for __atomic_load_n and - __atomic_store_n on int, void* and size_t. - * config.h.in: Regenerate. - * configure: Regenerate. - * configure.host: Fix typo in comment. - * include/ext/atomicity.h (__exchange_and_add, __atomic_add): - Depend on _GLIBCXX_ATOMIC_WORD_BUILTINS macro instead of old - _GLIBCXX_ATOMIC_BUILTINS macro. - -2025-05-06 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/117905 - * include/pstl/glue_numeric_impl.h (reduce, transform_reduce) - (transform_reduce, inclusive_scan, transform_exclusive_scan) - (transform_inclusive_scan): Use std::move for __init parameter. - * include/pstl/numeric_impl.h (__brick_transform_reduce) - (__pattern_transform_reduce, __brick_transform_scan) - (__pattern_transform_scan): Likewise. - * include/std/numeric (inclusive_scan, transform_exclusive_scan): - Use std::move to create local copy of the first element. - * testsuite/26_numerics/pstl/numeric_ops/108236.cc: Move test - using move-only type to ... - * testsuite/26_numerics/pstl/numeric_ops/move_only.cc: New test. - -2025-05-06 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/120029 - * src/c++17/fs_path.cc (path::operator+=(const path&)): Handle - parameters that alias the path or one of its components. - * testsuite/27_io/filesystem/path/concat/120029.cc: New test. - * testsuite/experimental/filesystem/path/concat/120029.cc: New - test. - -2025-05-06 Jonathan Wakely <jwakely@redhat.com> - - PR c++/120112 - * include/bits/ptr_traits.h (_Safe_iterator_base): Use class - keyword in class-head of declaration. - * include/debug/debug.h (_Safe_iterator): Likewise. - -2025-05-06 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_iterator.h (counted_iterator): Add noexcept - to friend operators which only access the _M_length member. - -2025-05-02 Dhruv Chawla <dhruvc@nvidia.com> - - * include/std/memory: Define __glibcxx_want_addressof_constexpr. - * testsuite/20_util/headers/memory/version.cc: Test for macro - value. - -2025-05-02 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/23_containers/vector/allocator/default_init.cc: - Add a check using constant evaluation. - * testsuite/23_containers/vector/bool/allocator/default_init.cc: - Likewise. - * testsuite/util/testsuite_allocator.h (default_init_allocator): - Make all member functions and equality ops constexpr. - -2025-05-02 Jonathan Wakely <jwakely@redhat.com> - - * src/c++11/Makefile.am: Simplify existing prerequisites for wchar and - dual-abi targets that are built from other sources. Add similar - prerequisites for more wchar and dual-abi files. - * src/c++11/Makefile.in: Regenerate. - * src/c++17/Makefile.am [ENABLE_DUAL_ABI]: Add prerequisites for - dual-abi targets that are built from other sources. - * src/c++17/Makefile.in: Regenerate. - -2025-04-30 François Dumont <frs.dumont@gmail.com> - Jonathan Wakely <jwakely@redhat.com> - - * testsuite/lib/libstdc++.exp (v3_target_compile): Strip version namespace - from compiler output. - * testsuite/20_util/aligned_storage/value.cc [_GLIBCXX_INLINE_VERSION]: - Avoid align_msa check. - * testsuite/20_util/function/cons/70692.cc: Remove now useless __8 namespace - pattern. - * testsuite/23_containers/map/48101_neg.cc: Likewise. - * testsuite/23_containers/multimap/48101_neg.cc: Likewise. - -2025-04-30 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/109162 - * include/std/format (_Padding_sink::_M_update): Fixed condition for - calling _M_force_update. - * testsuite/std/format/debug.cc: Add test that reproduces this issue - on 64bit architecture. - * testsuite/std/format/ranges/sequence.cc: Another edge value test. - -2025-04-29 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/version.def (make_obj_using_allocator): Use - no_stdname. - * include/bits/version.h: Regenerate. - -2025-04-29 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/regex_compiler.h: Replace _GLIBCXX17_CONSTEXPR - with constexpr and disable diagnostics with pragmas. - (_AnyMatcher::operator()): Use constexpr-if instead of tag - dispatching. Postpone calls to _M_translate until after checking - result of earlier calls. - (_AnyMatcher::_M_apply): Remove both overloads. - (_BracketMatcher::operator(), _BracketMatcher::_M_ready): - Replace tag dispatching with 'if constexpr'. - (_BracketMatcher::_M_apply(_CharT, true_type)): Remove. - (_BracketMatcher::_M_apply(_CharT, false_type)): Remove second + * src/c++20/atomic.cc (use_proxy_wait): Remove unused second parameter. - (_BracketMatcher::_M_make_cache): Remove both overloads. - * include/bits/regex_compiler.tcc (_BracketMatcher::_M_apply): - Remove second parameter. - * include/bits/regex_executor.tcc: Replace _GLIBCXX17_CONSTEXPR - with constexpr and disable diagnostics with pragmas. - (_Executor::_M_handle_backref): Replace __glibcxx_assert with - static_assert. - (_Executor::_M_handle_accept): Mark _S_opcode_backref case as - unreachable for non-DFS mode and do not instantiate - _M_handle_backref for that case. - -2025-04-29 Barnabás Pőcze <pobrn@protonmail.com> - - PR libstdc++/112934 - * include/bits/stl_map.h (map::erase): Use _M_erase_unique. - * include/bits/stl_set.h (set::erase): Likewise. - * include/bits/stl_tree.h (_Rb_tree::_M_erase_unique): Add. - -2025-04-29 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/119427 - * include/std/flat_map (_Flat_map_impl::erase_if): Replace - this hidden friend with ... - (_Flat_map_impl::_M_erase_if): ... this member function. - (flat_map): Export _Flat_map_impl::_M_erase_if. - (erase_if(flat_map)): Define. - (flat_multimap): Export _Flat_map_impl::_M_erase_if. - (erase_if(flat_multimap)): Define. - * include/std/flat_set (_Flat_set_impl::erase_if): Replace - with ... - (_Flat_set_impl::_M_erase_if): ... this member function. - (flat_set): Export _Flat_set_impl::_M_erase_if. - (erase_if(flat_set)): Define. - (flat_multiset): Export _Flat_set_impl::_M_erase_if. - (erase_if(flat_multiset)): Define. - * testsuite/23_containers/flat_map/1.cc (test07): New test. - * testsuite/23_containers/flat_multimap/1.cc (test07): New test. - * testsuite/23_containers/flat_multiset/1.cc (test09): New test. - * testsuite/23_containers/flat_set/1.cc (test09): New test. - -2025-04-29 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/char_traits.h (char_traits::assign): Use - constexpr-if unconditionally for C++11 and C++14. - * include/bits/locale_conv.h (__do_str_codecvt): Likewise. - * include/bits/ostream.h (basic_ostream::_S_cast_flt): Likewise. - * include/bits/random.tcc (shuffle_order_engine::operator()) - (seed_seq::seed_seq(Iter, Iter)): Likewise. - * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release): - Likewise. - * include/bits/stl_tree.h (_Rb_tree::_M_move_data): Likewise. - * include/bits/uniform_int_dist.h - (uniform_int_distribution::operator()): Likewise. - * include/bits/valarray_array.h (__valarray_default_construct) - (__valarray_fill_construct, __valarray_copy_construct) - (__valarray_copy_construct, __valarray_destroy_elements): - Likewise. - * include/experimental/numeric (lcm): Likewise. - * include/std/bit (__rotl, __rotr, __countl_zero, __countr_zero) - (__popcount, __bit_ceil) Likewise.: - * include/std/bitset (operator>>): Likewise. - * include/std/charconv (__to_chars_8, __to_chars_i) - (__from_chars_alnum_to_val, from_chars): Likewise. - * include/tr2/dynamic_bitset (__dynamic_bitset_base): Likewise. - * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error - line number. - -2025-04-29 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/std_function.h (_Target_handler): Remove. - (function::target): Use constexpr-if for C++11 and - C++14, with diagnostic pragmas to suppress warnings. - -2025-04-29 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_vector.h (_S_do_relocate): Remove. - (_S_relocate): Remove tag dispatching path. - * include/bits/vector.tcc (reserve, _M_realloc_insert) - (_M_realloc_append, _M_default_append): Add diagnostic pragmas - and use 'if constexpr' in C++11 and C++14. Call - std::__relocate_a directly instead of _S_relocate. - -2025-04-29 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/basic_string.h (operator+(string&&, string&&)): - Do not assume that COW strings have equal allocators. Use - constexpr-if unconditionally. - * testsuite/21_strings/basic_string/allocator/char/operator_plus.cc: - Remove cxx11_abi effective-target check. - * testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc: - Likewise. - -2025-04-28 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * testsuite/20_util/shared_ptr/requirements/1.cc: Test both - shared_ptr and weak_ptr. - Add more tests. - * testsuite/20_util/weak_ptr/requirements/1.cc: Removed as - superseded by the other test. - -2025-04-28 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119970 - * include/std/ostream (vprint_unicode) [_WIN32 && !__CYGWIN__]: Call - _Str_sink::_M_span instead of view. - * include/std/print (vprint_unicode) [_WIN32 && !__CYGWIN__]: Call - _Str_sink::_M_span instead of view. - -2025-04-28 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/ranges_base.h (__detail::__range_key_type): - Replace remove_const_t with remove_cvref_t. - (__detail::__range_mapped_type): Apply remove_cvref_t. - * include/bits/stl_iterator.h: (__detail::__iter_key_t): - Replace remove_const_t with __remove_cvref_t. - (__detail::__iter_val_t): Apply __remove_cvref_t. - * testsuite/23_containers/flat_map/1.cc: New tests. - * testsuite/23_containers/flat_multimap/1.cc: New tests. - * testsuite/23_containers/map/cons/deduction.cc: New tests. - * testsuite/23_containers/map/cons/from_range.cc: New tests. - * testsuite/23_containers/multimap/cons/deduction.cc: New tests. - * testsuite/23_containers/multimap/cons/from_range.cc: New tests. - * testsuite/23_containers/unordered_map/cons/deduction.cc: New tests. - * testsuite/23_containers/unordered_map/cons/from_range.cc: New tests. - * testsuite/23_containers/unordered_multimap/cons/deduction.cc: - New tests. - * testsuite/23_containers/unordered_multimap/cons/from_range.cc: - New tests. - -2025-04-28 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/unordered_map.h (unordered_map): - Define constructors accepting: - (_InputIterator, _InputIterator, const allocator_type&), - (initializer_list<value_type>, const allocator_type&), - (unordered_multimap): Likewise. - * include/debug/unordered_map (unordered_map): Likewise. - (unordered_multimap): Likewise. - * include/bits/unordered_set.h (unordered_set): - Define constructors and deduction guide accepting: - (_InputIterator, _InputIterator, const allocator_type&), - (initializer_list<value_type>, const allocator_type&), - (unordered_multiset): Likewise. - * include/debug/unordered_set (unordered_set): Likewise. - (unordered_multiset): Likewise. - * testsuite/23_containers/unordered_map/cons/66055.cc: New tests. - * testsuite/23_containers/unordered_map/cons/deduction.cc: New tests. - * testsuite/23_containers/unordered_multimap/cons/66055.cc: New tests. - * testsuite/23_containers/unordered_multimap/cons/deduction.cc: New - tests. - * testsuite/23_containers/unordered_multiset/cons/66055.cc: New tests. - * testsuite/23_containers/unordered_multiset/cons/deduction.cc: New - tests. - * testsuite/23_containers/unordered_set/cons/66055.cc: New tests. - * testsuite/23_containers/unordered_set/cons/deduction.cc: New tests. - -2025-04-25 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/ptr_traits.h (to_address): Use markdown for - formatting in Doxygen comments. - -2025-04-25 Jonathan Wakely <jwakely@redhat.com> - - * src/c++11/Makefile.am: Add prerequisites for targets that - depend on string-inst.cc. - * src/c++11/Makefile.in: Regenerate. - -2025-04-25 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/move.h (addressof): Use __builtin_addressof - directly. - -2025-04-25 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: - Remove dg-error directives for additional c++26 errors. - -2025-04-25 Jonathan Wakely <jwakely@redhat.com> - - * include/std/latch (latch::_M_a): Rename to _M_counter. - -2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/109162 - * include/bits/formatfwd.h (__simply_formattable_range): Moved from - std/format. - * include/std/format (__formatter_str::_format): Extracted escaped - string handling to separate method... - (__formatter_str::_M_format_escaped): Use __Padding_sink. - (__formatter_str::_M_format): Adjusted implementation. - (__formatter_str::_S_trunc): Extracted as namespace function... - (__format::_truncate): Extracted from __formatter_str::_S_trunc. - (__format::_Seq_sink): Removed forward declarations, made members - protected and non-final. - (_Seq_sink::_M_trim): Define. - (_Seq_sink::_M_span): Renamed from view. - (_Seq_sink::view): Returns string_view instead of span. - (__format::_Str_sink): Moved after _Seq_sink. - (__format::__format_padded): Use _Padding_sink. - * testsuite/std/format/debug.cc: Add timeout and new tests. - * testsuite/std/format/ranges/sequence.cc: Specify unicode as - encoding and new tests. - * testsuite/std/format/ranges/string.cc: Likewise. - * testsuite/std/format/tuple.cc: Likewise. - -2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/format/ranges/adaptors.cc: Updated test. - -2025-04-25 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/22_locale/ctype/is/string/89728_neg.cc: Remove - dg-error for c++98_only effective target. - -2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119918 - * include/bits/formatfwd.h (__format::_Align): Moved from std/format. - (std::__throw_format_error, __format::__formatter_str) - (__format::__formatter_ptr): Declare. - * include/std/format (__format::_Align): Moved to bits/formatfwd.h. - (__formatter_int::__formatter_int): Define. - (__format::__formatter_ptr): Extracted from formatter for const void*. - (std::formatter<const void*, _CharT>, formatter<void*, _CharT>) - (std::formatter<nullptr_t, _CharT>): Delegate to __formatter_ptr<_CharT>. - * include/std/thread (std::formatter<thread::id, _CharT>): Constrain - _CharT template parameter. - (formatter<thread::id, _CharT>::parse): Specify default aligment, and - qualify __throw_format_error to disable ADL. - (formatter<thread::id, _CharT>::format): Use formatters to write directly - to output. - * testsuite/30_threads/thread/id/output.cc: Tests for formatting thread::id - representing not-a-thread with padding and formattable concept. - -2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/109162 - * include/bits/version.def (format_ranges): Remove no_stdname and - update value. - * include/bits/version.h: Regenerate. - * src/c++23/std.cc.in: Replace __glibcxx_format_ranges with - __cpp_lib_format_ranges. - * testsuite/std/format/formatter/lwg3944.cc: Likewise. - * testsuite/std/format/parse_ctx.cc: Likewise. - * testsuite/std/format/string.cc: Likewise. - * testsuite/std/format/ranges/feature_test.cc: New test. - -2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/109162 - * include/bits/formatfwd.h (__format::__parsable_with) - (__format::__formattable_with, __format::__formattable_impl) - (__format::__has_debug_format, __format::__const_formattable_range) - (__format::__maybe_const_range, __format::__maybe_const) - (std::formattable): Moved from std/format. - (__format::Iter_for, std::range_formatter): Forward declare. - * include/bits/stl_queue.h (std::formatter): Forward declare. - (std::queue, std::priority_queue): Befriend formatter specializations. - * include/bits/stl_stack.h (std::formatter): Forward declare. - (std::stack): Befriend formatter specializations. - * include/std/format (__format::_Iter_for): Define as struct with - (__format::__parsable_with, __format::__formattable_with) - (__format::__formattable_impl, __format::__has_debug_format) - (_format::__const_formattable_range, __format::__maybe_const_range) - (__format::__maybe_const, std::formattable): Moved to bits/formatfwd.h. - (std::range_formatter): Remove default argument specified in declaration - in bits/formatfwd.h. - * include/std/queue: Include bits/version.h before bits/stl_queue.h. - (formatter<queue<_Tp, _Container, _Compare>, _CharT>) - (formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>): Define. - * include/std/stack: Include bits/version.h before bits/stl_stack.h - (formatter<stack<_Tp, _Container, _Compare>, _CharT>): Define. - * testsuite/std/format/ranges/adaptors.cc: New test. - -2025-04-25 Jonathan Wakely <jwakely@redhat.com> - - * include/std/future (__future_base::_Task_state): Check - invocable requirement here. - (__future_base::_Task_state::_S_create): New static member - function. - (__future_base::_Task_state::_M_reset): Use _S_create. - (__create_task_state): Remove. - (packaged_task): Use _Task_state::_S_create instead of - __create_task_state. - * testsuite/30_threads/packaged_task/cons/dangling_ref.cc: - Adjust dg-error patterns. - * testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc: - Likewise. - -2025-04-25 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_tree.h (_Rb_tree::_M_key_compare): New member - function to invoke comparison function. - (_Rb_tree): Use new member function instead of accessing the - comparison function directly. - -2025-04-24 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/23_containers/forward_list/48101_neg.cc: Remove - dg-prune-output that doesn't match anything. - * testsuite/23_containers/list/48101_neg.cc: Likewise. - * testsuite/23_containers/multiset/48101_neg.cc: Likewise. - * testsuite/23_containers/set/48101_neg.cc: Likewise. - -2025-04-24 Jonathan Wakely <jwakely@redhat.com> - - * include/std/generator (generator::yield_value): Add overload - taking lvalue element_of view, as per LWG 3899. - * testsuite/24_iterators/range_generators/lwg3899.cc: New test. - -2025-04-24 François Dumont <frs.dumont@gmail.com> - - * testsuite/util/replacement_memory_operators.h: Adapt for -fno-exceptions - context. - * testsuite/23_containers/deque/capacity/shrink_to_fit.cc: Adapt test - to check std::deque shrink_to_fit method. - -2025-04-23 Andreas Schwab <schwab@linux-m68k.org> - - * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. - * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. - * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. - -2025-04-23 ZENG Hao <c@cyano.cn> - - * src/c++23/std.cc.in (atomic_signed_lock_free): Guard with - preprocessor check for __cpp_lib_atomic_lock_free_type_aliases. - (atomic_unsigned_lock_free): Likewise. - -2025-04-22 Patrick Palka <ppalka@redhat.com> - - Revert: - 2024-08-22 Patrick Palka <ppalka@redhat.com> - - * include/bits/iterator_concepts.h (__detail::__projected): Define - an optimized partial specialization for when the projection is - std::identity. - * testsuite/24_iterators/indirect_callable/projected.cc: Verify the - optimization. - -2025-04-22 Andreas Schwab <schwab@linux-m68k.org> - - * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. - -2025-04-22 Andreas Schwab <schwab@linux-m68k.org> - - * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. - -2025-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> - - * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Regenerate. - * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise. - -2025-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> - - * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. - * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: - Likewise. - * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. - * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: - Likewise. - -2025-04-22 Jakub Jelinek <jakub@redhat.com> - - * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. - * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. - * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. - * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. - * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. - * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update. - -2025-04-22 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/23_containers/flat_map/1.cc: Add dg-timeout-factor 2. - * testsuite/23_containers/flat_multimap/1.cc: Likewise. - * testsuite/std/format/ranges/map.cc: Likewise. - * testsuite/std/format/ranges/sequence.cc: Likewise. - * testsuite/std/format/ranges/string.cc: Likewise. - -2025-04-22 Andreas Schwab <schwab@linux-m68k.org> - - * testsuite/util/testsuite_abi.cc (check_version): Update latestp - to use GLIBCXX_3.4.35 and CXXABI_1.3.17. - -2025-04-18 François Dumont <frs.dumont@gmail.com> - - * testsuite/util/debug/unordered_checks.h (fill_container): New helper method. - (use_erased_local_iterator, invalid_local_iterator_pre_increment) - (invalid_local_iterator_post_increment, invalid_local_iterator_compare) - (invalid_local_iterator_range): Use latter. - (fill_and_get_local_iterator): New, use fill_container. - (use_invalid_local_iterator): Use latter. - (invalid_local_iterator_arrow_operator): New test function. - (invalid_local_iterator_copy_instantiation): New test function. - (invalid_local_iterator_move_instantiation): New test function. - (invalid_local_iterator_copy_assignment): New test function. - (invalid_local_iterator_move_assignment): New test function. - (invalid_local_iterator_const_conversion): New test function. - * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_arrow_operator_neg.cc: - New test case. - * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_const_conversion_neg.cc: - New test case. - * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_copy_assignment_neg.cc: - New test case. - * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_copy_construction_neg.cc: - New test case. - * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_move_assignment_neg.cc: - New test case. - * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_move_construction_neg.cc: - New test case. - * testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc: Test unordered_map. - * testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc: Test unordered_multimap. - * testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc: Likewise. - * testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc: Likewise. - * testsuite/23_containers/unordered_multimap/debug/cend_neg.cc: Likewise. - * testsuite/23_containers/unordered_multimap/debug/end1_neg.cc: Likewise. - * testsuite/23_containers/unordered_multimap/debug/end2_neg.cc: Likewise. - * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_arrow_operator_neg.cc: - New test case. - * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_const_conversion_neg.cc: - New test case. - * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_copy_assignment_neg.cc: - New test case. - * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_copy_construction_neg.cc: - New test case. - * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_move_assignment_neg.cc: - New test case. - * testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_move_construction_neg.cc: - New test case. - * testsuite/23_containers/unordered_multimap/debug/max_load_factor_neg.cc: - Test unordered_multimap. - * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_arrow_operator_neg.cc: - New test case. - * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_const_conversion_neg.cc: - New test case. - * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_copy_assignment_neg.cc: - New test case. - * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_copy_construction_neg.cc: - New test case. - * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_move_assignment_neg.cc: - New test case. - * testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_move_construction_neg.cc: - New test case. - * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_arrow_operator_neg.cc: - New test case. - * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_const_conversion_neg.cc: - New test case. - * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_copy_assignment_neg.cc: - New test case. - * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_copy_construction_neg.cc: - New test case. - * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_move_assignment_neg.cc: - New test case. - * testsuite/23_containers/unordered_set/debug/invalid_local_iterator_move_construction_neg.cc: - New test case. - -2025-04-18 Tomasz Kamiński <tkaminsk@redhat.com> - - * doc/xml/manual/appendix_contributing.xml: Add 'and functions'. - -2025-04-17 Jason Merrill <jason@redhat.com> - - * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust - diagnostic. - -2025-04-17 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119840 - * include/std/format (_M_parse_fill_and_align): Cast elements of - __not_fill to _CharT. - -2025-04-17 Jonathan Wakely <jwakely@redhat.com> - - * include/std/format (format_kind): Do not use 'not' - alternative token to make the primary template ill-formed. Use - the undeclared identifier __primary_template_not_defined and a - comment that will appear in diagnostics. - * testsuite/std/format/ranges/format_kind_neg.cc: New test. - -2025-04-17 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/109162 - * include/std/format (__format::__simply_formattable_range): Define. - (range_formatter::format): Do not instantiate _M_format for mutable - _Rg if const _Rg can be used. - -2025-04-16 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/109162 - * include/std/format (range_formatter::format): Format const range, - only if reference type is not changed. - * testsuite/std/format/ranges/formatter.cc: New tests. - -2025-04-16 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/109162 - * include/std/format (__formatter_int::_M_format_character_escaped) - (__formatter_str::format): Use __sink.out() to produce _Sink_iter. - (__format::__const_formattable_range): Moved closer to range_formatter. - (__format::__maybe_const_range): Use `__conditional_t` and moved closer - to range_formatter. - (__format::__format_padded, __format::maybe_const) - (__format::__indexed_formatter_storage, __format::__tuple_formatter) - (std::formatter<pair<_Fp, _Sp>, _CharT>>) - (std::formatter<tuple<_Tps...>, _CharT): Define. - (std::formatter<_Rg, _CharT>::format): Cast incoming range to - __format::__maybe_const_range<_Rg, _CharT>&. - (std::formatter<_Rg, _CharT>::_M_format): Extracted from format, - and use __format_padded. - (std::formatter<_Rg, _CharT>::_M_format_no_padding): Rename... - (std::formatter<_Rg, _CharT>::_M_format_elems): ...to this. - (std::formatter<_Rg, _CharT>::_M_format_with_padding): Extracted as - __format_padded. - * testsuite/util/testsuite_iterators.h (test_input_range_nocopy): - Define. - * testsuite/std/format/ranges/formatter.cc: Tests for `m` specifier. - * testsuite/std/format/ranges/sequence.cc: Tests for array and subrange. - * testsuite/std/format/ranges/map.cc: New test. - * testsuite/std/format/tuple.cc: New test. - -2025-04-15 Jonathan Wakely <jwakely@redhat.com> - - * include/std/ranges (__glibcxx_want_ranges_iota): Do not - define. - -2025-04-15 Jonathan Wakely <jwakely@redhat.com> - - * include/std/numeric (ranges): Only declare namespace for C++23 - and later. - (ranges::iota_result): Fix indentation. - * testsuite/17_intro/names.cc: Check ranges is not used as an - identifier before C++20. - -2025-04-15 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/109162 - * include/std/format (__format::__has_debug_format, _Pres_type::_Pres_seq) - (_Pres_type::_Pres_str, __format::__Stackbuf_size): Define. - (_Separators::_S_squares, _Separators::_S_parens, _Separators::_S_comma) - (_Separators::_S_colon): Define additional constants. - (_Spec::_M_parse_fill_and_align): Define overload accepting - list of excluded characters for fill, and forward existing overload. - (__formatter_str::_M_format_range): Define. - (__format::_Buf_sink) Use __Stackbuf_size for size of array. - (__format::__is_map_formattable, std::range_formatter) - (std::formatter<_Rg, _CharT>): Define. - * src/c++23/std.cc.in (std::format_kind, std::range_format) - (std::range_formatter): Export. - * testsuite/std/format/formatter/lwg3944.cc: Guarded tests with - __glibcxx_format_ranges. - * testsuite/std/format/formatter/requirements.cc: Adjusted for standard - behavior. - * testsuite/23_containers/vector/bool/format.cc: Test vector<bool> formatting. - * testsuite/std/format/ranges/format_kind.cc: New test. - * testsuite/std/format/ranges/formatter.cc: New test. - * testsuite/std/format/ranges/sequence.cc: New test. - * testsuite/std/format/ranges/string.cc: New test. - -2025-04-15 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/119748 - * include/bits/basic_string.h (_S_copy_chars): Only optimize for - contiguous iterators that are convertible to const charT*. Use - explicit conversion to charT after dereferencing iterator. - (_S_copy_range): Likewise for contiguous ranges. - * include/bits/basic_string.tcc (_M_construct): Use explicit - conversion to charT after dereferencing iterator. - * include/bits/cow_string.h (_S_copy_chars): Likewise. - (basic_string(from_range_t, R&&, const Allocator&)): Likewise. - Only optimize for contiguous iterators that are convertible to - const charT*. - * testsuite/21_strings/basic_string/cons/char/119748.cc: New - test. - * testsuite/21_strings/basic_string/cons/wchar_t/119748.cc: - New test. - -2025-04-15 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/util/testsuite_iterators.h (test_container): Define - array constructor for C++98 as well. - -2025-04-14 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/21334 - * doc/xml/manual/using.xml: Document that container data race - avoidance rules do not apply to COW std::string. - * doc/html/*: Regenerate. - -2025-04-14 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119725 - * testsuite/std/format/debug.cc: Updated dg-options. - * testsuite/std/format/debug_nonunicode.cc: Updated dg-options. - -2025-04-11 Jonathan Wakely <jwakely@redhat.com> - - * src/c++17/fast_float/LOCAL_PATCHES: Update. - -2025-04-11 Evgeny Karpov <Evgeny.Karpov@microsoft.com> - - * src/c++17/fast_float/fast_float.h (full_multiplication): - Support aarch64-w64-mingw32 target. - -2025-04-11 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/basic_string.h (_S_copy_chars): Replace overloads - with constexpr-if and extend optimization to all contiguous - iterators. - * src/c++11/string-inst.cc: Extend comment. + (__wait_args::_M_setup_proxy_wait): Remove second argument. + (__notify_impl): Likewise. -2025-04-11 Tomasz Kamiński <tkaminsk@redhat.com> +2026-01-09 Jonathan Wakely <jwakely@redhat.com> - PR libstdc++/111055 - * include/bits/version.def (containers_ranges): Define. - * include/bits/version.h: Regenerate. - * include/bits/ranges_base.h (__detail::__container_compatible_range) - (__detail::__range_to_alloc_type, __detail::__range_mapped_type) - (__detail::__range_key_type): Depend on __glibcxx_containers_ranges - instead of __glibcxx_ranges_to_container. - * include/bits/basic_string.h: Replace __glibcxx_ranges_to_container with - __glibcxx_containers_ranges. - * include/bits/cow_string.h: Likewise. - * include/bits/deque.tcc: Likewise. - * include/bits/forward_list.h: Likewise. - * include/bits/stl_bvector.h: Likewise. - * include/bits/stl_deque.h: Likewise. - * include/bits/stl_list.h: Likewise. - * include/bits/stl_map.h: Likewise. - * include/bits/stl_multimap.h: Likewise. - * include/bits/stl_multiset.h: Likewise. - * include/bits/stl_queue.h: Likewise. - * include/bits/stl_set.h: Likewise. - * include/bits/stl_stack.h: Likewise. - * include/bits/stl_vector.h: Likewise. - * include/bits/unordered_map.h: Likewise. - * include/bits/unordered_set.h: Likewise. - * include/bits/vector.tcc: Likewise. - * include/debug/deque: Likewise. - * include/debug/forward_list: Likewise. - * include/debug/list: Likewise. - * include/debug/map.h: Likewise. - * include/debug/multimap.h: Likewise. - * include/debug/multiset.h: Likewise. - * include/debug/set.h: Likewise. - * include/debug/unordered_map: Likewise. - * include/debug/unordered_set: Likewise. - * include/debug/vector: Likewise. - * include/std/deque: Provide __cpp_lib_containers_ranges. - * include/std/forward_list: Likewise. - * include/std/list: Likewise. - * include/std/map: Likewise. - * include/std/queue: Likewise. - * include/std/set: Likewise. - * include/std/stack: Likewise. - * include/std/string: Likewise. - * include/std/unordered_map: Likewise. - * include/std/unordered_set: Likewise. - * include/std/vector: Likewise. - * testsuite/21_strings/basic_string/cons/from_range.cc: Test for value - __cpp_lib_containers_ranges. - * testsuite/23_containers/deque/cons/from_range.cc: Likewise. - * testsuite/23_containers/forward_list/cons/from_range.cc: Likewise. - * testsuite/23_containers/list/cons/from_range.cc: Likewise. - * testsuite/23_containers/map/cons/from_range.cc: Likewise. - * testsuite/23_containers/multimap/cons/from_range.cc: Likewise. - * testsuite/23_containers/multiset/cons/from_range.cc: Likewise. - * testsuite/23_containers/priority_queue/cons_from_range.cc: Likewise. - * testsuite/23_containers/queue/cons_from_range.cc: Likewise. - * testsuite/23_containers/set/cons/from_range.cc: Likewise. - * testsuite/23_containers/stack/cons_from_range.cc: Likewise. - * testsuite/23_containers/unordered_map/cons/from_range.cc: Likewise. - * testsuite/23_containers/unordered_multimap/cons/from_range.cc: Likewise. - * testsuite/23_containers/unordered_multiset/cons/from_range.cc: Likewise. - * testsuite/23_containers/unordered_set/cons/from_range.cc: Likewise. - * testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise. - * testsuite/23_containers/vector/cons/from_range.cc: Likewise. - -2025-04-11 Jonathan Wakely <jwakely@redhat.com> + * 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++/111055 - * include/bits/basic_string.h (_S_copy_range): New function. - (basic_string(from_range_t, R%%, const Alloc&)): New - constructor. - (append_range, assign_range, insert_range, replace_with_range): - New functions. - * include/bits/cow_string.h: Likewise. - * testsuite/21_strings/basic_string/cons/from_range.cc: New - test. - * testsuite/21_strings/basic_string/modifiers/append/append_range.cc: - New test. - * testsuite/21_strings/basic_string/modifiers/assign/assign_range.cc: - New test. - * testsuite/21_strings/basic_string/modifiers/insert/insert_range.cc: - New test. - * testsuite/21_strings/basic_string/modifiers/replace/replace_with_range.cc: - New test. - -2025-04-11 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/109162 - * include/bits/chrono_io.h (__detail::_Widen): Moved to std/format file. - * include/bits/unicode-data.h: Regnerate. - * include/bits/unicode.h (__unicode::_Utf_iterator::_M_units) - (__unicode::__should_escape_category): Define. - * include/std/format (_GLIBCXX_WIDEN_, _GLIBCXX_WIDEN): Copied from - include/bits/chrono_io.h. - (__format::_Widen): Moved from include/bits/chrono_io.h. - (__format::_Term_char, __format::_Escapes, __format::_Separators) - (__format::__should_escape_ascii, __format::__should_escape_unicode) - (__format::__write_escape_seq, __format::__write_escaped_char) - (__format::__write_escaped_acii, __format::__write_escaped_unicode) - (__format::__write_escaped): Define. - (__formatter_str::_S_trunc): Extracted truncation of character - sequences. - (__formatter_str::format): Handle _Pres_esc. - (__formatter_int::_M_do_parse) [__glibcxx_format_ranges]: Parse '?'. - (__formatter_int::_M_format_character_escaped): Define. - (formatter<_CharT, _CharT>::format, formatter<char, wchar_t>::format): - Handle _Pres_esc. - (__formatter_str::set_debug_format, formatter<...>::set_debug_format) - Guard with __glibcxx_format_ranges. - (__format::_Fixedbuf_sink): Define. - * testsuite/23_containers/vector/bool/format.cc: Use __format::_Widen - and remove unnecessary <chrono> include. - * testsuite/std/format/debug.cc: New test. - * testsuite/std/format/debug_nonunicode.cc: New test. - * testsuite/std/format/parse_ctx.cc (escaped_strings_supported): Define - to true if __glibcxx_format_ranges is defined. - * testsuite/std/format/string.cc (escaped_strings_supported): Define to - true if __glibcxx_format_ranges is defined. - -2025-04-10 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/version.def (constrained_equality): Only define - as 202411 for C++23 and later, use 202403 for C++20. - * include/bits/version.h: Regenerate. - * testsuite/20_util/expected/equality_constrained.cc: Remove - TODO comment. - -2025-04-10 John David Anglin <danglin@gcc.gnu.org> - - * config/os/hpux/os_defines.h: Remove _GLIBCXX_USE_LONG_LONG - define. - -2025-04-09 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/115046 - PR libstdc++/112490 - * include/bits/stl_iterator.h (basic_const_iterator::operator-): - Replace non-dependent basic_const_iterator function parameter with - a dependent one of type basic_const_iterator<_It2> where _It2 - matches _It. - * testsuite/std/ranges/adaptors/as_const/1.cc (test04): New test. - -2025-04-08 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/119671 - * include/std/format (__formatter_fp::format): Do not invalidate - __wstr unless _M_localized returns a valid string. - * testsuite/std/format/functions/format.cc: Check wide string - formatting of floating-point types with classic locale. - -2025-04-07 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/119642 - * include/bits/formatfwd.h: Remove stray pragma. - -2025-04-07 Jonathan Wakely <jwakely@redhat.com> - - * include/precompiled/stdc++.h: Include <stdbit.h> and - <stdckdint.h>. Include <stacktrace> unconditionally. - -2025-04-07 Jonathan Wakely <jwakely@redhat.com> - - * doc/doxygen/user.cfg.in (INPUT): Add flat_map, flat_set, - text_encoding, stdbit.h and stdckdint.h. - -2025-04-07 Thomas Schwinge <tschwinge@baylibre.com> - - PR target/119645 - * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY) [GCN, nvptx]: - Hard-code results. - * configure: Regenerate. - * configure.host [GCN, nvptx] (atomicity_dir): Set to - 'cpu/generic/atomicity_builtins'. - -2025-04-04 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/119620 - * include/std/flat_set (_Flat_set_impl::_M_try_emplace): Split - out into two overloads, one taking at least one argument and one - taking zero arguments. Turn __k into an auto&& reference bound - to __arg if it's already a value_type and otherwise bound to a - lifetime-extended value_type temporary. - * testsuite/23_containers/flat_multiset/1.cc (test08): New test. - * testsuite/23_containers/flat_set/1.cc (test08): New test. - -2025-04-04 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/101587 - * include/bits/ranges_uninitialized.h (__detail::__mindist): - Remove. - (ranges::uninitialized_copy, ranges::uninitialized_copy_n) - (ranges::uninitialized_move, ranges::uninitialized_move_n): Use - comparison and assignment instead of __mindist. - * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc: - Check with ranges that use integer-like class type for - difference type. - * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc: - Likewise. - -2025-04-04 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/109162 - * include/Makefile.am: Add bits/formatfwd.h. - * include/Makefile.in: Add bits/formatfwd.h. - * include/bits/version.def: Define __glibcxx_format_ranges without - corresponding std name. - * include/bits/version.h: Regenerate. - * include/std/format (basic_format_context, __format::__char): - Move declartions to bits/formatfwd.h. - (formatter<_Tp, _CharT>): Remove default argument for _CharT - parameter, now specified in forward declaration in bits/formatfwd.h. - * include/std/vector (formatter<_Bit_reference, _CharT>): Define. - * include/bits/formatfwd.h: New file with forward declarations - for bits of std/format. - * testsuite/23_containers/vector/bool/format.cc: New test. - -2025-04-04 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/basic_string.h: Check __glibcxx_string_view and - __glibcxx_variant instead of __cplusplus >= 2017L. - * include/bits/cow_string.h: Likewise. - -2025-04-04 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/basic_string.tcc: Fix whitespace. - -2025-04-04 Arsen Arsenović <arsen@aarsen.me> - - * include/bits/version.tpl: Implement no_stdname. - * include/bits/version.def: Document no_stdname. - -2025-04-03 Thomas Schwinge <tschwinge@baylibre.com> - - * config/cpu/nvptx/t-nvptx: Remove. - * configure.host [nvptx]: Adjust. - -2025-04-03 Thomas Schwinge <tschwinge@baylibre.com> - - PR target/119573 - * config/cpu/nvptx/t-nvptx (AM_MAKEFLAGS): Don't amend. - -2025-04-03 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/std/format/functions/format.cc: Restored line. - -2025-04-03 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119593 - * include/bits/unicode.h - (__unicode::__literal_encoding_is_unicode<_CharT>): - Corrected handing for UTF-16 and UTF-32 with "LE" or "BE" suffix. - * include/std/format (__formatter_str::_S_character_width): - Define. - (__formatter_str::_S_character_width): Updated passed char - length. - * testsuite/std/format/functions/format.cc: Test for wchar_t. - -2025-04-02 John David Anglin <danglin@gcc.gnu.org> - - * config/os/hpux/os_defines.h: Only use long long when - __cplusplus >= 201103L. - -2025-04-02 Iain Sandoe <iain@sandoe.co.uk> - - * testsuite/lib/prune.exp: Prune ld warning about duplicatei - rpaths. - -2025-04-01 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/114945 - * include/bits/vector.tcc (vector::_M_default_append): Add - unreachable condition so the compiler knows that _M_finish is - not null. - * testsuite/23_containers/vector/capacity/114945.cc: New test. - -2025-04-01 Thomas Schwinge <tschwinge@baylibre.com> - - PR target/119369 - * config/cpu/gcn/cpu_defines.h: New. - * configure.host [GCN] (cpu_defines_dir): Point to it. - -2025-03-31 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/110498 - * include/bits/vector.tcc (vector<bool, A>::_M_reallocate): - Hoist loads of begin() and end() before allocation and use them - to state an unreachable condition. - * testsuite/23_containers/vector/bool/capacity/110498.cc: New - test. - -2025-03-31 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/114758 - * include/bits/vector.tcc (vector<bool, A>::_M_fill_insert): - Hoist loads of begin() and end() before allocation. - * testsuite/23_containers/vector/bool/capacity/114758.cc: New - test. - -2025-03-31 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/119550 - * acinclude.m4 (GLIBCXX_STRUCT_TM_TM_ZONE): New macro. - * config.h.in: Regenerate. - * configure: Regenerate. - * configure.ac: Use GLIBCXX_STRUCT_TM_TM_ZONE. - * include/bits/chrono_io.h (__formatter_chrono::_M_c): Check - _GLIBCXX_USE_STRUCT_TM_TM_ZONE instead of - _GLIBCXX_HAVE_STRUCT_TM_TM_ZONE. - -2025-03-31 Jonathan Wakely <jwakely@redhat.com> - - * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Make - std::basic_string::_M_construct patterns more precise. - -2025-03-31 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/119545 - * include/std/tuple (operator==): Convert comparison results to - bool. - * testsuite/20_util/tuple/comparison_operators/119545.cc: New - test. - -2025-03-31 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119517 - * include/bits/chrono_io.h (formatter): - Add __format::__char for _CharT and adjust parse and format - method signatures. - * testsuite/std/time/format/pr119517.cc: New test. - -2025-03-31 Jakub Jelinek <jakub@redhat.com> - - PR tree-optimization/103827 - PR tree-optimization/80331 - PR tree-optimization/87502 - * config/abi/pre/gnu.ver (GLIBCXX_3.4.34): Use [jmy] rather than m - in pattern for _M_construct<bool>(char const*, size_t). - -2025-03-30 Jan Hubicka <hubicka@ucw.cz> - - PR tree-optimization/103827 - PR tree-optimization/80331 - PR tree-optimization/87502 - * config/abi/pre/gnu.ver: Add version for _M_construct<bool> - * include/bits/basic_string.h: (basic_string::_M_construct<bool>): Declare. - (basic_string constructors): Use it. - * include/bits/basic_string.tcc: (basic_string::_M_construct<bool>): New template. - * src/c++11/string-inst.cc: Instantated S::_M_construct<bool>. - -2025-03-28 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/117983 - * testsuite/23_containers/vector/modifiers/insert/117983.cc: New - test. - -2025-03-28 David Malcolm <dmalcolm@redhat.com> - - * testsuite/17_intro/shared_with_static_deps.cc: Fix malformed - dg-require-static-libstdcxx directive. - * testsuite/17_intro/static.cc: Likewise. - * testsuite/18_support/type_info/110572.cc: Likewise. - * testsuite/20_util/to_chars/4.cc: Likewise. - * testsuite/std/time/tzdb_list/pr118811.cc: Likewise. - -2025-03-27 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/101587 - * include/bits/ranges_uninitialized.h (__detail::__mindist): - New function object. - (ranges::uninitialized_copy, ranges::uninitialized_copy_n) - (ranges::uninitialized_move, ranges::uninitialized_move_n): Use - __mindist instead of std::min. - * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc: - Check ranges with difference difference types. - * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc: - Likewise. - -2025-03-27 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/chrono_io.h (__formatter_chrono::_M_c): Use - const_cast when setting tm.tm_zone. - -2025-03-27 Jonathan Wakely <jwakely@redhat.com> - - * src/c++20/tzdata.zi: Import new file from 2025b release. - -2025-03-27 Sam James <sam@gentoo.org> - - * testsuite/std/format/string_neg.cc: Add missing brace for dg-error. - -2025-03-27 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - PR libstdc++/119488 - * include/bits/version.def (constexpr_algorithms): Bump - the feature-testing macro. - * include/bits/version.h: Regenerate. - * testsuite/25_algorithms/cpp_lib_constexpr.cc: Test the - bumped value for the feature-testing macro. - -2025-03-27 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/algorithmfwd.h (stable_partition): Mark it - as constexpr for C++26. - * include/bits/ranges_algo.h (__stable_partition_fn): Likewise. - * include/bits/stl_algo.h (stable_partition): Mark it as - constexpr for C++26; during constant evaluation use a new - codepath where a temporary buffer of 1 element is used. - * testsuite/25_algorithms/headers/algorithm/synopsis.cc - (stable_partition): Add constexpr. - * testsuite/25_algorithms/stable_partition/constexpr.cc: New test. - -2025-03-27 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/algorithmfwd.h (inplace_merge): Mark it as - constexpr for C++26. - * include/bits/ranges_algo.h (__inplace_merge_fn): Likewise. - * include/bits/stl_algo.h (inplace_merge): Mark it as constexpr; - during constant evaluation, dispatch to the non-allocating - codepath. - * testsuite/25_algorithms/headers/algorithm/synopsis.cc - (inplace_merge): Add constexpr. - * testsuite/25_algorithms/inplace_merge/constexpr.cc: New test. - -2025-03-27 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/119469 - * include/bits/iterator_concepts.h (_IterMove::__result): Use - decltype-specifier instead of an explicit type. - * testsuite/24_iterators/customization_points/iter_move.cc: - Check results for function references. - -2025-03-26 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/version.def (constexpr_algorithms): Change - the value of the feature-testing macro. - * include/bits/version.h: Regenerate. - * testsuite/25_algorithms/cpp_lib_constexpr.cc: Amend the - check of the feature-testing macro. - -2025-03-26 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119415 - * include/std/flat_set (_Flat_set_impl:insert_range): - Replace __detail::__cpp17_input_iterator with __has_input_iter_cat. - * testsuite/23_containers/flat_multiset/1.cc: New tests - * testsuite/23_containers/flat_set/1.cc: New tests - -2025-03-26 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/111055 - * include/bits/deque.tcc (deque::prepend_range, deque::append_range) - (deque::insert_range, __advance_dist): Define. - (deque::_M_range_prepend, deque::_M_range_append): - Extract from _M_range_insert_aux for _ForwardIterator(s). - * include/bits/stl_deque.h (deque::assign_range): Define. - (deque::prepend_range, deque::append_range, deque::insert_range): - Declare. - (deque(from_range_t, _Rg&&, const allocator_type&)): Define constructor - and deduction guide. - * include/debug/deque (deque::prepend_range, deque::append_range) - (deque::assign_range): Define. - (deque(from_range_t, _Rg&&, const allocator_type&)): Define constructor - and deduction guide. - * testsuite/23_containers/deque/cons/from_range.cc: New test. - * testsuite/23_containers/deque/modifiers/append_range.cc: New test. - * testsuite/23_containers/deque/modifiers/assign/assign_range.cc: - New test. - * testsuite/23_containers/deque/modifiers/prepend_range.cc: New test. - * testsuite/23_containers/deque/modifiers/insert/insert_range.cc: New file. - -2025-03-25 Jonathan Wakely <jwakely@redhat.com> - - * include/std/ranges (ranges::to): Allow unions as well as - non-union class types. - * testsuite/std/ranges/conv/lwg4229.cc: New test. - -2025-03-25 Jonathan Wakely <jwakely@redhat.com> + PR libstdc++/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. - PR libstdc++/108487 - * include/bits/stl_vector.h (vector(initializer_list)): Call - _M_range_initialize_n instead of _M_range_initialize. - (vector(InputIterator, InputIterator)): Use _M_range_initialize_n - for C++20 sized sentinels and forward iterators. - (vector(from_range_t, R&&)): Use _M_range_initialize_n for sized - ranges and forward ranges. - (vector::_M_range_initialize(FwIt, FwIt, forward_iterator_tag)): - Likewise. - (vector::_M_range_initialize_n): New function. - * testsuite/23_containers/vector/cons/108487.cc: New test. - -2025-03-25 Jonathan Wakely <jwakely@redhat.com> - - * include/debug/vector (vector::assign_range): Use change in - capacity to detect reallocation. - (vector::insert_range, vector::append_range): Likewise. Remove - unused variables. - -2025-03-25 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_bvector.h (vector::assign_range): More - efficient implementation for forward/sized ranges. - (vector::append_range): Handle potentially overlapping range. - * include/bits/stl_vector.h (vector(from_range_t, R&&, Alloc)): - Do not use append_range for non-sized input range case. - (vector::append_range): Handle potentially overlapping range. - * include/bits/vector.tcc (vector::insert_range): Forward range - instead of moving it. - * testsuite/23_containers/vector/bool/modifiers/insert/append_range.cc: - Test overlapping ranges. - * testsuite/23_containers/vector/modifiers/append_range.cc: - Likewise. - -2025-03-25 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118699 - * testsuite/27_io/filesystem/operations/copy.cc: Check copying a - file to a directory. - -2025-03-25 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/119429 - * include/std/format (__format::_Scanner::_Scanner): Cast - default argument to size_t. - -2025-03-25 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119415 - * include/std/flat_set (_Flat_set_impl:insert_range): - Add __detail::__cpp17_input_iterator check. - * testsuite/23_containers/flat_multiset/1.cc: New tests - * testsuite/23_containers/flat_set/1.cc: New tests - -2025-03-24 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/manual/policy_data_structures_biblio.xml: Fix two - broken links. - * doc/html/manual/policy_data_structures.html: Regenerate. - -2025-03-24 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/101527 - * testsuite/24_iterators/common_iterator/101527.cc: New test. - * testsuite/24_iterators/counted_iterator/101527.cc: New test. - -2025-03-24 Jonathan Wakely <jwakely@redhat.com> +2026-01-09 Keith Packard <keithp@keithp.com> - * include/bits/stl_bvector.h (vector<bool, A>): Enforce the - C++20 requirement that the allocator's value_type matches the - container. - * testsuite/23_containers/vector/bool/cons/from_range.cc: Fix - incorrect allocator type. - -2025-03-21 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/117214 - * configure.ac: Use AC_STRUCT_TIMEZONE. - * config.h.in: Regenerate. + * acinclude.m4 (GLIBCXX_CONFIGURE): Add --with-picolibc. * configure: Regenerate. - * include/bits/chrono_io.h (__formatter_chrono::_M_c): Set - tm_isdst and tm_zone. - * testsuite/std/time/format/pr117214.cc: Check %c formatting of - zoned_time and local time. - -2025-03-21 XU Kailiang <xu2k3l4@outlook.com> - Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/117214 - * include/bits/chrono_io.h (__formatter_chrono::_M_c): Use - _M_locale_fmt to format %c time point. - * testsuite/std/time/format/pr117214.cc: New test. - -2025-03-21 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/chrono_io.h (__formatter_chrono::_M_locale_fmt): - Imbue locale into ostringstream. - * testsuite/std/time/format/localized.cc: Check that correct - locale is used for call to time_put::put. - -2025-03-21 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_vector.h (vector(from_range_t, Alloc)): Use - delegating constructor instead of RAII guards. Use append_range - for unsized input range case. - -2025-03-21 Jonathan Wakely <jwakely@redhat.com> - - * src/c++23/std.compat.cc.in: Only export <stdbit.h> and - <stdckdint.h> contents for C++26 and later. - -2025-03-21 Jonathan Wakely <jwakely@redhat.com> - - * src/c++23/std.cc.in (tuple_element, tuple_element_t) - (tuple_size, tuple_size_v, get): Export. - (ranges::cache_latest_view, views::cache_latest): Export. - (ranges::to_input_view, views::to_input): Export. - (from_range_t, from_range): Export. - -2025-03-20 Tomasz Kamiński <tkaminsk@redhat.com> + * 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. - * include/debug/unordered_map (unordered_map): Add from_range - constructors and deduction guides. - (unordered_multimap): Likewise. - * include/debug/unordered_set (unordered_set): Add from_range - constructors and deduction guides. - (unordered_multiset): Likewise. +2026-01-08 Tomasz Kamiński <tkaminsk@redhat.com> -2025-03-20 Jonathan Wakely <jwakely@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. - * include/debug/map.h (map): Add from_range constructors and - deduction guides. - * include/debug/multimap.h (multimap): Likewise. - * include/debug/multiset.h (multiset): Likewise. - * include/debug/set.h (set): Likewise. +2026-01-07 Jonathan Wakely <jwakely@redhat.com> -2025-03-20 Jakub Jelinek <jakub@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. - * testsuite/18_support/numeric_limits/traps.cc (main): Fix comment - typo. +2026-01-07 Jonathan Wakely <jwakely@redhat.com> -2025-03-19 Jonathan Wakely <jwakely@redhat.com> + * include/bits/atomic_wait.h (__wait_args::_M_setup_wait): + Remove unreachable return statement. - * doc/xml/manual/test.xml: Fix default for -std option. - * doc/html/manual/test.html: Regenerate. +2026-01-07 Jonathan Wakely <jwakely@redhat.com> -2025-03-19 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/locale_facets_nonio.tcc (time_put::do_put): Fix - typo in comment. - -2025-03-19 François Dumont <frs.dumont@gmail.com> - - * testsuite/23_containers/set/requirements/explicit_instantiation/alloc_ptr.cc: - Activate the template member tests involving __cpp_lib_ranges_to_container - support. - -2025-03-19 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/20_util/stdbit/1.cc: Include <climits> instead of - <limits.h>. - -2025-03-19 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/ranges_base.h (__detail::__range_key_type): - Replace RV::first_type with tuple_element_t<0, RV>. - (__detail::__range_mapped_type) Replace RV::second_type - with tuple_element_t<1, RV>. - * testsuite/23_containers/flat_map/1.cc: New tests. - * testsuite/23_containers/flat_multimap/1.cc: New tests. - * testsuite/23_containers/map/cons/from_range.cc: New tests. - * testsuite/23_containers/multimap/cons/from_range.cc: New tests. - * testsuite/23_containers/unordered_map/cons/from_range.cc: New tests. - * testsuite/23_containers/unordered_multimap/cons/from_range.cc: - New tests. - -2025-03-19 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/bits/unordered_map.h - (unordered_map(from_range_t, _Rg&&, const allocator_type&)) - (unordered_multimap(from_range_t, _Rg&&, const allocator_type&)): - Define. - * include/bits/unordered_set.h - (unordered_set(from_range_t, _Rg&&, const allocator_type&)) - (unordered_multiset(from_range_t, _Rg&&, const allocator_type&)): - Define. - * testsuite/23_containers/unordered_map/cons/from_range.cc: New tests. - New tests. - * testsuite/23_containers/unordered_multimap/cons/from_range.cc: - New tests. - * testsuite/23_containers/unordered_multiset/cons/from_range.cc: - New tests. - * testsuite/23_containers/unordered_set/cons/from_range.cc: New tests. - * testsuite/std/ranges/conv/1.cc: New tests. - -2025-03-19 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119358 - * include/bits/unordered_map.h (unordered_multimap::insert_range): - Cast ranges::distance to size_type before passing to _M_rehash_insert. - * include/bits/unordered_set.h (unordered_multiset::insert_range): - Same as unordered_multimap::insert_range. - * testsuite/23_containers/unordered_multimap/cons/from_range.cc: - New tests. - * testsuite/23_containers/unordered_multiset/cons/from_range.cc: - New tests. - -2025-03-18 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/111055 - * include/bits/unordered_map.h (unordered_map): Define from_range - constructors and insert_range member. - (unordered_multimap): Likewise. - * testsuite/23_containers/unordered_multimap/cons/from_range.cc: - New test. - * testsuite/23_containers/unordered_multimap/modifiers/insert_range.cc: - New test. - * testsuite/23_containers/unordered_map/cons/from_range.cc: - New test. - * testsuite/23_containers/unordered_map/modifiers/insert_range.cc: - New test. - -2025-03-18 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/111055 - * include/bits/hashtable.h (_M_rehash_insert) - (_M_insert_range_multi): Extracted rehashing for range insertion - to separate function. - * include/bits/unordered_set.h (unordered_set): Define from_range - constructors and insert_range member. - (unordered_multiset) Likewise. - * testsuite/23_containers/unordered_multiset/cons/from_range.cc: - New test. - * testsuite/23_containers/unordered_multiset/modifiers/insert_range.cc: - New test. - * testsuite/23_containers/unordered_set/cons/from_range.cc: - New test. - * testsuite/23_containers/unordered_set/modifiers/insert_range.cc: - New test. - -2025-03-18 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/111055 - * include/bits/stl_multiset.h: (inser_range) - (multiset(from_range_t, _Rg&&, const _Compare&, const _Alloc&)) - (multiset(from_range_t, _Rg&&, const _Alloc&)): Define. - * include/bits/stl_set.h: (set(from_range_t, _Rg&&, const _Alloc&)) - (set(from_range_t, _Rg&&, const _Compare&, const _Alloc&), insert_range): - Define. - * testsuite/23_containers/multiset/cons/from_range.cc: New test. - * testsuite/23_containers/multiset/modifiers/insert/insert_range.cc: - New test. - * testsuite/23_containers/set/cons/from_range.cc: New test. - * testsuite/23_containers/set/modifiers/insert/insert_range.cc: - New test. - -2025-03-18 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/111055 - * include/bits/ranges_base.h (__detail::__range_to_alloc_type): - Define. - * include/bits/stl_multimap.h: (inser_range) - (multimap(from_range_t, _Rg&&, const _Compare&, const _Alloc&)) - (multimap(from_range_t, _Rg&&, const _Alloc&)): Define. - * include/bits/stl_map.h: (map(from_range_t, _Rg&&, const _Alloc&)) i - (map(from_range_t, _Rg&&, const _Compare&, const _Alloc&), insert_range): - Define. - * testsuite/23_containers/multimap/cons/from_range.cc: New test. - * testsuite/23_containers/multimap/modifiers/insert/insert_range.cc: New test. - * testsuite/23_containers/map/cons/from_range.cc: New test. - * testsuite/23_containers/map/modifiers/insert/insert_range.cc: New test. - -2025-03-14 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/119282 - * include/bits/stl_vector.h (vector::vector(from_range_t)): Add - missing 'constexpr' to local class _Clear. - * testsuite/std/ranges/conv/1.cc (test_pr119282): New test. - -2025-03-14 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/111138 - * include/std/ranges (_ZipTransform::operator()): - Create separate overload for calls with empty range pack, - and add move_constructible, regular_invocable and - is_object_v<invoke_result_t<...>>> constraints. - * testsuite/std/ranges/zip_transform/1.cc: New tests - Jonathan Wakely <jwakely@redhat.com> - -2025-03-14 Thomas Schwinge <tschwinge@baylibre.com> - - PR target/92713 - PR target/101544 - * config/cpu/nvptx/cpu_defines.h: New. - * config/cpu/nvptx/t-nvptx: Likewise. - * configure.host: Handle GCN, nvptx. - -2025-03-14 Tomasz Kamiński <tkaminsk@redhat.com> - - * testsuite/23_containers/priority_queue/cons_from_range.cc: - Add `#include <algorithm>. - * testsuite/23_containers/priority_queue/members/push_range.cc: - Add `#include <algorithm>. - -2025-03-14 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/shared_ptr_base.h (lock): Fixed a compile error - when calling lock() on a weak_ptr<T[]>, by removing an - erroneous usage of element_type from within lock(). - * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc: - Add more tests for array types. - * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc: - Likewise. - * testsuite/20_util/shared_ptr/requirements/1.cc: New test. - * testsuite/20_util/weak_ptr/requirements/1.cc: New test. - -2025-03-13 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/116440 - * include/std/tuple (tuple::tuple(const _Elements&...)) - [C++20]: Turn into a template. - * testsuite/20_util/tuple/116440.C: New test. - -2025-03-13 Jonathan Wakely <jwakely@redhat.com> - Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/111055 - * include/bits/stl_queue.h (queue(from_range_t, _Rg&&)) - (queue(from_range_t, _Rg&&, const _Alloc&), push_range): - Define. - (priority_queue(from_range_t, R&&, const Compare&)) - (push_range): Define. - * include/bits/stl_stack.h (stack(from_range_t, R&&)) - (stack(from_range_t, R&&, const Alloc&), push_range): Define. - * testsuite/util/testsuite_iterators.h (test_range_nocopy): Define. - * testsuite/23_containers/priority_queue/cons_from_range.cc: New test. - * testsuite/23_containers/priority_queue/members/push_range.cc: New test. - * testsuite/23_containers/queue/cons_from_range.cc: New test. - * testsuite/23_containers/queue/members/push_range.cc: New test. - * testsuite/23_containers/stack/cons_from_range.cc: New test. - * testsuite/23_containers/stack/members/push_range.cc: New test. - -2025-03-13 Jonathan Wakely <jwakely@redhat.com> - - * include/Makefile.am: Add stdckdint.h. - * include/Makefile.in: Regenerate. - * src/c++23/std.compat.cc.in: Export <stdckdint.h> functions. - * include/c_compatibility/stdckdint.h: New file. - * testsuite/26_numerics/stdckdint/1.cc: New test. - * testsuite/26_numerics/stdckdint/2_neg.cc: New test. - -2025-03-13 Jonathan Wakely <jwakely@redhat.com> - - * include/Makefile.am: Add stdbit.h. - * include/Makefile.in: Regenerate. - * src/c++23/std.compat.cc.in: Export <stdbit.h> functions. - * include/c_compatibility/stdbit.h: New file. - * testsuite/20_util/stdbit/1.cc: New test. - * testsuite/20_util/stdbit/2_neg.cc: New test. - -2025-03-13 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/119135 - * include/std/ranges: Include <utility>. - (views::__detail::__is_ref_view): Replace with ... - (views::__detail::__is_constable_ref_view): ... this. - (views::_AsConst::operator()): Replace bogus use of element_type - in the ref_view branch. - * testsuite/std/ranges/adaptors/as_const/1.cc (test03): Extend - test. - -2025-03-13 Thomas Schwinge <tschwinge@baylibre.com> - - * acinclude.m4 (GLIBCXX_ENABLE_CXX_FLAGS): Append to - 'EXTRA_CXX_FLAGS' any additional flags. + PR libstdc++/123406 + * acinclude.m4 (GLIBCXX_CHECK_STDIO_LOCKING): Override detection + of flockfile for non-cygwin newlib targets. * configure: Regenerate. - * configure.host: Document 'EXTRA_CFLAGS', 'EXTRA_CXX_FLAGS'. - -2025-03-13 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/108053 - * include/std/format (basic_format_arg::_M_visit_user): - Helper function for wrapping extension types into handle. - (visit_format_arg): Call `_M_visit_user` instead of `_M_visit`. - (basic_format_arg::visit): As above. - (__format::__visit_format_arg): Provides direct access to - values stored in basic_format_arg. - (__format::__int_from_arg): Use __format::__visit_format_arg - instead of std::visit_format_arg. - (_Formatting_scanner::_M_format_arg): As above. - (_Checking_scanner::__do_vformat_to): As above. - * testsuite/std/format/arguments/args.cc: New tests. - * testsuite/std/format/string.cc: Test for using __int128 - as width/precision. - -2025-03-12 Patrick Palka <ppalka@redhat.com> - - * include/bits/version.def (ranges_to_input): Define. - * include/bits/version.h: Regenerate. - * include/std/ranges (ranges::to_input_view): Define for C++26. - (views::__detail::__can_to_input): Likewise. - (views::_ToInput, views::to_input): Likewise. - * testsuite/std/ranges/adaptors/to_input/1.cc: New test. - -2025-03-12 Jonathan Wakely <jwakely@redhat.com> - - * include/std/format: Include <bits/monostate.h> instead of - <variant>. - -2025-03-12 Jonathan Wakely <jwakely@redhat.com> - - * include/std/format (basic_format_parse_context::__once): New - variable template. - (basic_format_parse_context::__valid_types_for_check_dynamic_spec): - New function template for checking argument types. - (basic_format_parse_context::__check_dynamic_spec): New function - template to implement the common check_dynamic_spec logic. - (basic_format_parse_context::check_dynamic_spec_integral): Call - __check_dynamic_spec instead of check_dynamic_spec. - (basic_format_parse_context::check_dynamic_spec_string): - Likewise. Use _CharT instead of char_type consistently. - (basic_format_parse_context::check_dynamic_spec): Use - __valid_types_for_check_dynamic_spec for precondition checks and - call __check_dynamic_spec for checking the arg id. - * testsuite/std/format/parse_ctx_neg.cc: Adjust expected errors. - -2025-03-12 Jonathan Wakely <jwakely@redhat.com> - - * include/std/future (packaged_task::packaged_task(F&&)): Add - static_assert. - * testsuite/30_threads/packaged_task/cons/dangling_ref.cc: Add - dg-error for new static assertion. - * testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc: New - test. - -2025-03-12 Jonathan Wakely <jwakely@redhat.com> - - * include/std/chrono (__detail::__get_leap_second_info): Update - expiry date for leap seconds list. - * src/c++20/tzdata.zi: Import new file from 2025a release. - * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds) - Update expiry date for leap seconds list. - -2025-03-12 Tomasz Kamiński <tkaminsk@redhat.com> - - * include/std/format (formatter<_Float16, _CharT>): Define only if - _GLIBCXX_FLOAT_IS_IEEE_BINARY32 macro is defined. - (formatter<_Float16, _CharT>): As above. - (formatter<__gnu_cxx::__bfloat16_t, _CharT>): As above. - (formatter<_Float64, _CharT>): Define only if - _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 is defined. - (basic_format_arg::_S_to_arg_type): Normalize _Float32 and _Float64 - only to float and double respectivelly. - (basic_format_arg::_S_to_enum): Remove handling of _Float32 and _Float64. - -2025-03-12 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/manual/strings.xml: Tweak formatting. Add example - using lambda. - * doc/html/manual/strings.html: Regenerate. - -2025-03-12 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/unique_ptr.h (unique_ptr::operator*): Add - static_assert to check for dangling reference, as per LWG 4148. - * testsuite/20_util/unique_ptr/lwg4148.cc: New test. - -2025-03-12 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/ranges_util.h (ranges::_detail::__has_arrow): - Require operator->() to be valid on const-qualified type, as per - LWG 4112. - * testsuite/std/ranges/adaptors/lwg4112.cc: New test. - -2025-03-12 Jonathan Wakely <jwakely@redhat.com> - - * include/std/format - (basic_format_parse_context::check_dynamic_spec): Require a - non-empty parameter pack, as per LWG 4142. - * testsuite/std/format/parse_ctx.cc: Remove call of - check_dynamic_spec with empty template argument list. - * testsuite/std/format/parse_ctx_neg.cc: Add dg-error to call of - check_dynamic_spec with empty template argument list. - -2025-03-08 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/version.def (atomic_value_initialization): - Guard the FTM with the language concepts FTM. - * include/bits/version.h: Regenerate. - * include/std/atomic (atomic): When atomic value init is - defined, change the defaulted default constructor to - a non-defaulted one, constraining it as per LWG4169. - Otherwise, keep the existing constructor. - Remove the NSDMI for the _M_i member. - (_GLIBCXX20_INIT): Drop the macro, as it is not needed any more. - * testsuite/29_atomics/atomic/69301.cc: Test that - an atomic wrapping a non-default-constructible type is - always itself non-default-constructible (in all language - modes). - * testsuite/29_atomics/atomic/cons/trivial.cc: New test. - -2025-03-08 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_algobase.h (__nothrow_contiguous_iterator): - Remove. - (__memcpyable_iterators): Simplify. - (__copy_move_a2, __copy_n_a, __copy_move_backward_a2): Call - std::to_address on the iterators after advancing them. - * testsuite/25_algorithms/copy/contiguous.cc: New test. - * testsuite/25_algorithms/copy_backward/contiguous.cc: New test. - * testsuite/25_algorithms/copy_n/contiguous.cc: New test. - -2025-03-07 Jonathan Wakely <jwakely@redhat.com> - - * include/std/forward_list (erase): Change lambda to have - explicit return type and const parameter type. - * include/std/list (erase): Likewise. - * testsuite/23_containers/forward_list/erasure.cc: Check lambda - is correct. - * testsuite/23_containers/list/erasure.cc: Likewise. - -2025-03-07 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/chrono_io.h (chrono::__detail::from_stream): Add - deleted function as poison pill for unqualified lookup. - -2025-03-07 Jonathan Wakely <jwakely@redhat.com> - - * include/std/expected (expected<cv void,E>::value()&&): - Add missing static_assert for LWG 3940. - * testsuite/20_util/expected/lwg3843.cc: New test. - -2025-03-06 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/unique_lock.h (unique_lock::operator=): Fix for - self-move-assignment. - * include/std/shared_mutex (shared_lock::operator=): Add - comment. - * testsuite/30_threads/shared_lock/cons/lwg4172.cc: New test. - * testsuite/30_threads/unique_lock/cons/lwg4172.cc: New test. -2025-03-06 Jonathan Wakely <jwakely@redhat.com> +2026-01-07 Jonathan Wakely <jwakely@redhat.com> - * include/bits/stl_list.h (list::pop_front, list::pop_back): - Add non-empty assertions. + PR libstdc++/123378 + * include/std/barrier (~__tree_barrier_base): Define. -2025-03-06 Jonathan Wakely <jwakely@redhat.com> +2026-01-07 Jakub Jelinek <jakub@redhat.com> - * include/bits/ranges_util.h: Include <bits/stl_pair.h>. - -2025-03-06 Jonathan Wakely <jwakely@redhat.com> - - * include/std/span (span::~span): Remove, as per LWG 3903. - -2025-03-06 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/119144 - * testsuite/26_numerics/complex/tuple_like.cc: Include - <algorithm>, replace std::string with std::string_view, - instantiate tests for long instead of size_t. - -2025-03-06 Jonathan Wakely <jwakely@redhat.com> - Thomas Schwinge <tschwinge@baylibre.com> - - * src/c++20/tzdb.cc [__GTHREADS && !__GTHREADS_CXX0X]: Use - '__gnu_cxx::__mutex'. - -2025-03-06 Thomas Schwinge <tschwinge@baylibre.com> - - * src/c++20/format.cc (conv): Tag 'out' as '[[maybe_unused]]'. - -2025-03-06 Thomas Schwinge <tschwinge@baylibre.com> - - * src/c++17/fs_dir.cc (do_unlink): Tag 'is_directory' as - '[[maybe_unused]]'. - -2025-03-06 Thomas Schwinge <tschwinge@baylibre.com> - - * src/filesystem/dir-common.h (openat): Tag 'nofollow' as - '[[maybe_unused]]'. - -2025-03-06 Thomas Schwinge <tschwinge@baylibre.com> - Jonathan Wakely <jwakely@redhat.com> - - * include/bits/c++config [!__cpp_exceptions] - (_GLIBCXX_THROW_OR_ABORT): Reference '_EXC'. - -2025-03-06 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/20_util/specialized_algorithms/uninitialized_copy/constexpr.cc: - Do not test COW std::string in constexpr contexts. - * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constexpr.cc: - Likewise. - * testsuite/20_util/specialized_algorithms/uninitialized_fill/constexpr.cc: - Likewise. - * testsuite/20_util/specialized_algorithms/uninitialized_move/constexpr.cc: - Likewise. - * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constexpr.cc: + 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. -2025-03-06 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - PR libstdc++/113310 - * include/bits/stl_pair.h (get): Forward-declare std::get for - std::complex. - * include/bits/version.def (tuple_like): Bump the value of - the feature-testing macro in C++26. - * include/bits/version.h: Regenerate. - * include/std/complex: Implement the tuple protocol for - std::complex. - (tuple_size): Specialize for std::complex. - (tuple_element): Ditto. - (__is_tuple_like_v): Ditto. - (complex): Add a private getter to obtain references to the real - and the imaginary part, on the primary class template and on its - specializations. - (get): Add overloads of std::get for std::complex. - * testsuite/20_util/tuple/tuple_like_ftm.cc: New test. - * testsuite/26_numerics/complex/tuple_like.cc: New test. - -2025-03-05 Jonathan Wakely <jwakely@redhat.com> - - * include/std/ranges (enumerate_view::_Iterator::operator-): - Add noexcept, as per LWG 3912. - * testsuite/std/ranges/adaptors/enumerate/1.cc: Check iterator - difference is noexcept. - -2025-03-05 yxj-github-437 <2457369732@qq.com> - - * src/c++23/std-clib.cc.in (timespec): Move within preprocessor - group guarded by _GLIBCXX_HAVE_TIMESPEC_GET. - -2025-03-05 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/119110 - * testsuite/25_algorithms/move/constrained.cc: Move test06 - function to ... - * testsuite/25_algorithms/move/105609.cc: New test. - * testsuite/25_algorithms/move_backward/constrained.cc: Move - test04 function to ... - * testsuite/25_algorithms/move_backward/105609.cc: New test. - -2025-03-05 Patrick Palka <ppalka@redhat.com> - - * include/bits/version.def (ranges_cache_latest): Define. - * include/bits/version.h: Regenerate. - * include/std/ranges (__detail::__non_propagating_cache::_M_reset): - Export from base class _Optional_base. - (cache_latest_view): Define for C++26. - (cache_latest_view::_Iterator): Likewise. - (cache_latest_view::_Sentinel): Likewise. - (views::__detail::__can_cache_latest): Likewise. - (views::_CacheLatest, views::cache_latest): Likewise. - * testsuite/std/ranges/adaptors/cache_latest/1.cc: New test. - -2025-03-05 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/stl_algo.h (__stable_sort): Use if consteval - instead of is_constant_evaluated. - -2025-03-05 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/115215 - PR libstdc++/115218 - * include/std/ranges - (concat_view::iterator::_S_invoke_with_runtime_index): Use - __builtin_unreachable in recursive lambda to certify it always - exits via 'return'. - (concat_view::iterator::iterator): In the const-converting - constructor, direct initialize _M_it. - (views::_Concat::operator()): Adjust constraints in the - single-argument case as per LWG 4082. - * testsuite/std/ranges/concat/1.cc (test01): Call it at runtime - too. - (test04): New test. - -2025-03-05 Tomasz Kamiński <tkaminsk@redhat.com> - - PR libstdc++/119121 - * include/bits/ranges_util.h (__detail::__pair_like_convertible_from): - Use `_Tp` in `is_reference_v` check - * testsuite/std/ranges/subrange/tuple_like.cc: New tests for - pair-like conversion - -2025-03-05 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/ranges_uninitialized.h: Mark the specialized - memory algorithms as constexpr in C++26. Also mark the members - of the _DestroyGuard helper class. - * include/bits/stl_uninitialized.h: Ditto. - * include/bits/stl_construct.h: (_Construct_novalue) Mark it - as constexpr in C++26. - * include/bits/version.def (raw_memory_algorithms): Bump the - feature-testing macro for C++26. - * include/bits/version.h: Regenerate. - * testsuite/20_util/headers/memory/synopsis.cc: Add constexpr to - the uninitialized_* algorithms (when in C++26) in the test. - * testsuite/20_util/specialized_algorithms/feature_test_macro.cc: - New test. - * testsuite/20_util/specialized_algorithms/uninitialized_copy/constexpr.cc: - New test. - * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constexpr.cc: - New test. - * testsuite/20_util/specialized_algorithms/uninitialized_fill/constexpr.cc: - New test. - * testsuite/20_util/specialized_algorithms/uninitialized_move/constexpr.cc: - New test. - * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constexpr.cc: - New test. - -2025-03-04 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/manual/test.xml: Remove stray comma. - * doc/html/manual/test.html: Regenerate. - -2025-02-28 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/106612 - * include/bits/iterator_concepts.h (_IterMove::__iter_ref_t): - New alias template. - (_IterMove::__result): Use __iter_ref_t instead of - std::iter_reference_t. - (_IterMove::__type): Remove incorrect __dereferenceable - constraint. - (_IterMove::operator()): Likewise. Add correct constraints. Use - __iter_ref_t instead of std::iter_reference_t. Forward parameter - as correct value category. - (iter_swap): Add comments. - * testsuite/24_iterators/customization_points/iter_move.cc: Test - that iter_move is found by ADL and that rvalue arguments are - handled correctly. - -2025-02-28 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/105609 - * include/bits/ranges_algobase.h (__detail::__assign_one): New - helper function. - (__copy_or_move, __copy_or_move_backward): Use new function - instead of std::__assign_one. - * testsuite/25_algorithms/move/constrained.cc: Check that - ADL iter_move is used in preference to std::move. - * testsuite/25_algorithms/move_backward/constrained.cc: - Likewise. - -2025-02-28 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/112803 - * include/std/ranges (ranges::to): Add static assertions to - enforce Mandates conditions. - * testsuite/std/ranges/conv/112803.cc: New test. - -2025-02-28 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/104606 - * include/std/optional (operator<=>): Revert r14-9771 change. - Add constraint checking the validity of the return type - compare_three_way_result_t before the three_way_comparable_with - constraint. - -2025-02-28 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/112490 - * include/bits/stl_iterator.h (basic_const_iterator::operator<): - Replace non-dependent basic_const_iterator function parameter with - a dependent one of type basic_const_iterator<_It3> where _It3 - matches _It. - (basic_const_iterator::operator>): Likewise. - (basic_const_iterator::operator<=): Likewise. - (basic_const_iterator::operator>=): Likewise. - * testsuite/24_iterators/const_iterator/112490.cc: New test. - -2025-02-27 Jonathan Wakely <jwakely@redhat.com> - - * include/std/stacktrace (_Impl::_M_allocate): Fix outdated - comment. - -2025-02-26 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/118083 - * include/bits/ranges_base.h - (ranges::__access::__possibly_const_range): Mention LWG 4027. - -2025-02-25 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/algorithmfwd.h (stable_sort): Add constexpr. - * include/bits/ranges_algo.h (__stable_sort_fn): Add constexpr - to the function call operators. - * include/bits/stl_algo.h (__stable_sort): Add constexpr. - During constant evaluation, always use the non-allocating path. - (stable_sort): Add constexpr. - (__inplace_stable_sort): Likewise. - (__merge_without_buffer): Likewise. - * include/bits/version.def (constexpr_algorithms): Bump value - for C++26. - * include/bits/version.h: Regnerate. - * testsuite/25_algorithms/cpp_lib_constexpr.cc: Test the bumped - feature-testing macro. - * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adapt - the test to constexpr stable_sort. - * testsuite/25_algorithms/stable_sort/constexpr.cc: New test. - -2025-02-25 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/c++config (_GLIBCXX26_CONSTEXPR): New macro. - -2025-02-25 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/93059 - * include/bits/stl_algobase.h (__fill_a1): Fix typo in SFINAE - constraint. - -2025-02-25 François Dumont <frs.dumont@gmail.com> - - * include/bits/hashtable_policy.h - (_Hash_code_base::_M_copy_code, _Hash_code_base::_M_store_code): Remove. - * include/bits/hashtable.h (_M_hash_code_ext): New. - (_M_merge_multi(_Hashtable&)): Use latter. - (_M_copy_code): New. - (_M_assign): Use latter. - (_M_bucket_index_ex): New. - (_M_equals): Use latter. - (_M_store_code): New. - (_M_src_hash_code): Remove key_type parameter. - * testsuite/23_containers/unordered_map/modifiers/merge.cc (test10): New - test case. - -2025-02-25 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/118083 - * include/bits/ranges_base.h - (ranges::__access::__possibly_const_range): Adjust logic as per - LWG 4027. Add missing input_range constraint. - * testsuite/std/ranges/access/cbegin.cc (test05): Verify LWG - 4027 testcases. - * testsuite/std/ranges/access/cdata.cc: Adjust, simplify and - consolidate some tests after the above. - * testsuite/std/ranges/access/cend.cc: Likewise. - * testsuite/std/ranges/access/crbegin.cc: Likewise. - * testsuite/std/ranges/access/crend.cc: Likewise. - * testsuite/std/ranges/adaptors/join.cc: Likewise. - * testsuite/std/ranges/adaptors/take_while.cc: Likewise. - * testsuite/std/ranges/adaptors/transform.cc: Likewise. - -2025-02-22 Jonathan Wakely <jwakely@redhat.com> - - PR c++/118981 - * src/c++20/tzdb.cc: Use init_priority(98) instead of - init_priority(99). - -2025-02-22 Thomas Schwinge <tschwinge@baylibre.com> - - * testsuite/lib/prune.exp (proc libstdc++-dg-prune): Turn - 'sorry, unimplemented: dynamic stack allocation not supported' into - UNSUPPORTED. - -2025-02-22 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_base.h (__atomic_base<_ITp>): Remove - misleading comment. - -2025-02-22 Jonathan Wakely <jwakely@redhat.com> - - * src/c++17/floating_from_chars.cc (__floating_from_chars_hex): - Remove redundant cast. - -2025-02-20 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118559 - * include/std/type_traits (rank, rank_v): Do not use - __array_rank for Clang 19 and older. - -2025-02-20 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Add parentheses. - -2025-02-20 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118855 - * include/std/bit (__count_lzero, __count_rzero, __popcount): - Use type-generic built-ins when available. - -2025-02-20 Jonathan Wakely <jwakely@redhat.com> - - * include/experimental/bits/simd.h (__find_next_valid_abi): Cast - __bit_ceil argument to unsigned. - * src/c++17/floating_from_chars.cc (__floating_from_chars_hex): - Cast __bit_ceil argument to unsigned. - * src/c++17/memory_resource.cc (big_block): Cast __bit_width - argument to unsigned. - -2025-02-20 Jonathan Wakely <jwakely@redhat.com> - - * src/c++17/memory_resource.cc (default_res): Define here - instead of including default_resource.h. - * src/c++98/globals_io.cc (__ioinit): Define here instead of - including ios_base_init.h. - * src/c++17/default_resource.h: Removed. - * src/c++98/ios_base_init.h: Removed. - -2025-02-20 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118811 - * src/c++20/tzdb.cc (tzdb_list::_Node): Use init_priority - attribute on static data members. - * testsuite/std/time/tzdb_list/pr118811.cc: New test. - -2025-02-20 Patrick Palka <ppalka@redhat.com> - - * include/std/ranges (concat_view::iterator): Rename to ... - (concat_view::_Iterator): ... this throughout. - -2025-02-20 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/115209 - * include/bits/version.def (ranges_concat): Depend on - __cpp_pack_indexing. - * include/bits/version.h: Regenerate. - * include/std/ranges (__detail::__last_is_common): Remove. - (__detail::__all_but_first_sized): New. - (concat_view::end): Use C++26 pack indexing instead of - __last_is_common as per R8 of P2542. - (concat_view::iterator::operator-): Update constraints on - iter/sent overloads as per R8 of P2542. - -2025-02-15 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/shared_ptr_base.h: Do not include <bit>. - -2025-02-15 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/100612 - * include/std/thread (__pmf_expects_stop_token): Constrain - variable template specialization with concept. Add comment. - -2025-02-15 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/range_access.h (rbegin, rend, crbegin, crend): - Add conditional noexcept, as per P3623R0. - * testsuite/24_iterators/headers/iterator/range_access.cc: Add - noexcept-specifier to rbegin, rend, crbegin and crend - declarations. - -2025-02-15 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: - Removed. - * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: - Removed. - * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: - Removed. - * testsuite/24_iterators/headers/iterator/range_access.cc: - New test. - -2025-02-14 Andrew Pinski <quic_apinski@quicinc.com> - - PR libstdc++/118865 - * include/bits/stl_list.h (_M_initialize_dispatch): Add an - unreachable if the iterator was not empty that the list will - now be not empty. - -2025-02-14 Jonathan Wakely <jwakely@redhat.com> - - * include/parallel/algobase.h (__mismatch_switch): Qualify calls - to make_pair to avoid ADL. - -2025-02-14 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_tree.h (_Rb_tree::_M_equal_range): Replace - unqualified call to make_pair with explicit construction of - std::pair. - * testsuite/23_containers/set/operations/equal_range_adl.cc: - New test. - -2025-02-14 Matthew Malcomson <mmalcomson@nvidia.com> - Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_base.h (__atomic_fetch_addable): Define - new concept. - (__atomic_impl::__fetch_add_flt): Use new concept to make use of - __atomic_fetch_add when available. - (__atomic_fetch_subtractable, __fetch_sub_flt): Likewise. - (__atomic_add_fetchable, __add_fetch_flt): Likewise. - (__atomic_sub_fetchable, __sub_fetch_flt): Likewise. - -2025-02-08 Thomas Schwinge <tschwinge@baylibre.com> - - * testsuite/lib/prune.exp (libstdc++-dg-prune): Turn - 'sorry, unimplemented: exception handling not supported' into - UNSUPPORTED. - -2025-02-08 Thomas Schwinge <tschwinge@baylibre.com> - - * testsuite/lib/prune.exp (libstdc++-dg-prune): Clarify - effective-target 'exceptions_enabled'. - -2025-02-07 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - PR libstdc++/118160 - PR libstdc++/100249 - * include/bits/ranges_algo.h (__is_permutation_fn): Avoid a - dangling reference by storing the result of the iterator - dereference and the result of the projection in two distinct - variables, in order to lifetime-extend each one. - Forward the projected value to the predicate. - * testsuite/25_algorithms/is_permutation/constrained.cc: Add a - test with a range returning prvalues. Test it in a constexpr - context, in order to rely on the compiler to catch UB. - -2025-02-07 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/ostream.h (basic_ostream::_Disable_exceptions): - RAII helper type. - (basic_ostream::sentry::~sentry): Use _Disable_exceptions. Add - try-catch block around call to pubsync. - * testsuite/27_io/basic_ostream/exceptions/char/lwg4188.cc: New - test. - * testsuite/27_io/basic_ostream/exceptions/wchar_t/lwg4188.cc: - New test. - -2025-02-07 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/111050 - * include/bits/hashtable_policy.h (_Hash_node_value_base): Add - comment about always_inline attributes. - -2025-02-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> - Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118701 - * config/abi/pre/gnu.ver (CXXABI_1.3.16): Move __riscv guard - around version. - * scripts/extract_symvers.pl: Allow for weak versions. - * testsuite/util/testsuite_abi.cc (check_version): Wrap - CXXABI_1.3.16 in __riscv. - -2025-01-31 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/118156 - * include/std/flat_map (_Flat_map_impl::_M_insert): Generalized - version of insert taking heterogenous iterator/sentinel pair. - (_Flat_map_impl::insert): Dispatch to _M_insert. - (_Flat_map_impl::insert_range): Likewise. - (flat_map): Export _Flat_map_impl::insert_range. - (flat_multimap): Likewise. - * include/std/flat_set (_Flat_set_impl::insert_range): - Reimplement directly, not in terms of insert. - (flat_set): Export _Flat_set_impl::insert_range. - (flat_multiset): Likewise. - * testsuite/23_containers/flat_map/1.cc (test06): New test. - * testsuite/23_containers/flat_multimap/1.cc (test06): New test. - * testsuite/23_containers/flat_multiset/1.cc (test06): New test. - * testsuite/23_containers/flat_set/1.cc (test06): New test. - -2025-01-31 Patrick Palka <ppalka@redhat.com> - - * include/bits/stl_bvector.h (vector<bool>::insert_range): - Consistently return an iterator pointing to the first element - inserted. - * include/bits/vector.tcc (vector::insert_range): Likewise. - * testsuite/23_containers/vector/bool/modifiers/insert/insert_range.cc: - Verify insert_range return values. - * testsuite/23_containers/vector/modifiers/insert/insert_range.cc: - Likewise. - -2025-01-30 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/98749 - * include/std/latch (latch::max()): Ensure the return value is - representable as the return type. - (latch::latch(ptrdiff_t)): Add assertion. - (latch::count_down): Fix copy & pasted duplicate assertion. Use - std::cmp_equal to compare __platform_wait_t and ptrdiff_t - values. - (latch::_M_a): Use defined constant for alignment. - * testsuite/30_threads/latch/1.cc: Check max(). Check constant - initialization works for values in the valid range. Check - alignment. - -2025-01-29 Patrick Palka <ppalka@redhat.com> - - PR libstdc++/118413 - * include/std/ranges (views::__adaptor::_Partial): Adjust - constraints on the "simple" partial specializations to require - is_trivially_copy_constructible_v instead of - is_trivially_copyable_v. - * testsuite/std/ranges/adaptors/adjacent_transform/1.cc (test04): - Extend P2494R2 test. - * testsuite/std/ranges/adaptors/transform.cc (test09): Likewise. - -2025-01-27 Andreas Schwab <schwab@suse.de> - - PR libstdc++/118563 - * testsuite/util/testsuite_abi.cc (check_version): Add - CXXABI_1.3.16. - * config/abi/pre/gnu.ver (CXXABI_1.3.14) [__riscv]: Exclude - typeinfo for bfloat16_t. - (CXXABI_1.3.16) [__riscv]: Add it here. - -2025-01-23 Jan Hubicka <jh@suse.cz> - - PR target/80813 - * include/bits/stl_bvector.h (vector<bool, _Alloc>::operator []): Do - not use iterators. - -2025-01-20 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - PR libstdc++/118185 - PR libstdc++/100249 - * include/bits/ranges_algo.h (__clamp_fn): Correctly forward the - projected value to the comparator. - * testsuite/25_algorithms/clamp/118185.cc: New test. - -2025-01-16 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/99995 - * include/Makefile.am: Add new header. - * include/Makefile.in: Regenerate. - * include/bits/unique_ptr.h: Include bits/ostream.h instead of - ostream. - * include/std/ostream: Include new header. - * include/bits/ostream.h: New file. - -2025-01-16 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118158 - * src/c++17/fs_ops.cc (fs::equivalent): Remove error reporting - for is_other(s1) && is_other(s2) case, as per LWG 2937. - * testsuite/27_io/filesystem/operations/pr118158.cc: New test. - -2025-01-16 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/stl_map.h: Check __glibcxx_node_extract instead - of __cplusplus. - * include/bits/stl_multimap.h: Likewise. - * include/bits/stl_multiset.h: Likewise. - * include/bits/stl_set.h: Likewise. - * include/bits/stl_tree.h: Likewise. - -2025-01-15 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/27_io/ios_base/types/openmode/case_label.cc: Use - standard feature test macro not internal one. - -2025-01-15 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/23_containers/set/requirements/explicit_instantiation/alloc_ptr.cc: - Guard node extraction checks with feature test macro. Remove - calls to non-existent range members. - * testsuite/23_containers/forward_list/requirements/explicit_instantiation/alloc_ptr.cc: - Use standard macro not internal one. - * testsuite/23_containers/list/requirements/explicit_instantiation/alloc_ptr.cc: - Likewise. - -2025-01-15 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/109849 - * include/bits/vector.tcc (vector::_M_range_insert): Fix - reversed args in length calculation. - -2025-01-15 Jonathan Wakely <jwakely@redhat.com> - - * testsuite/28_regex/traits/char/transform_primary.cc: Fix - subclause numbering in references to the standard. - -2025-01-15 Jakub Jelinek <jakub@redhat.com> - - PR c++/118387 - * testsuite/25_algorithms/default_template_value.cc - (Input::operator<=>): Use auto as return type rather than bool. - -2025-01-12 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> - - * testsuite/27_io/print/1.cc: Allow both LF and CRLF in test. - * testsuite/27_io/print/3.cc: Likewise. - -2025-01-12 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> - - * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc: - Use effective-target libatomic_available. - -2025-01-10 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/atomic_futex.h (__atomic_futex_unsigned): Remove - names of unused parameters in non-futex implementation. - -2025-01-08 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/move.h (__addressof, forward, forward_like, move) - (move_if_noexcept, addressof): Add always_inline attribute. - Replace _GLIBCXX_NODISCARD with [[__nodiscard__]]. - -2025-01-08 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118260 - * python/hook.in: Run 'skip' commands for some simple accessor - functions. - -2025-01-08 Nicolas Werner <nicolas.werner@hotmail.de> - - PR libstdc++/106852 - * src/c++23/std.cc.in (to_underlying): Add. - -2025-01-08 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118177 - * src/c++23/std-clib.cc.in: Use preprocessor conditions for - names which are not always defined. - * src/c++23/std.cc.in: Likewise. - -2025-01-08 Jonathan Wakely <jwakely@redhat.com> - - * include/std/span: Fix indentation. - -2025-01-08 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> - - * include/bits/version.def: Add the new feature-testing macro. - * include/bits/version.h: Regenerate. - * include/std/span: Add constructor from initializer_list. - * testsuite/23_containers/span/init_list_cons.cc: New test. - * testsuite/23_containers/span/init_list_cons_neg.cc: New test. - -2025-01-08 Jonathan Wakely <jwakely@redhat.com> - - * include/std/span (__detail::__extent_storage): Check - precondition in constructor. Add consteval constructor for valid - lengths and deleted constructor for invalid constant lengths. - Make member functions always_inline. - (__detail::__span_ptr): New class template. - (span): Adjust constructors to use a std::integral_constant - value for constant lengths. Declare all specializations of - std::span as friends. - (span::first<C>, span::last<C>, span::subspan<O,C>): Use new - private constructor. - (span(__span_ptr<T>)): New private constructor for constant - lengths. - -2025-01-08 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/85824 - PR libstdc++/94409 - PR libstdc++/98723 - PR libstdc++/118105 - * include/bits/locale_classes.tcc (collate::do_transform): Check - errno after calling _M_transform. Use RAII type to manage the - buffer and to restore errno. - * include/bits/regex.h (regex_traits::transform_primary): Handle - exceptions from std::collate::transform and do not try to use - std::collate for user-defined facets. - -2025-01-08 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/118093 - * include/bits/atomic_futex.h (_M_load_and_test_until_impl): - Return false for times before the epoch. - * src/c++11/futex.cc (_M_futex_wait_until): Extend check for - negative times to check for subsecond times. Add unlikely - attribute. - (_M_futex_wait_until_steady): Likewise. - * testsuite/30_threads/future/members/118093.cc: New test. - -2025-01-08 Jonathan Wakely <jwakely@redhat.com> - - PR libstdc++/90389 - * include/bits/deque.tcc (_M_insert_aux): Rename variadic - overload to _M_emplace_aux. - * include/bits/stl_deque.h (_M_insert_aux): Define inline. - (_M_emplace_aux): Declare. - * testsuite/23_containers/deque/modifiers/emplace/90389.cc: New - test. - -2025-01-08 Jonathan Wakely <jwakely@redhat.com> - - * include/bits/move.h (forward, move, move_if_noexcept, addressof): - Add @since to Doxygen comments. - (forward_like): Add Doxygen comment. - -2025-01-08 Jonathan Wakely <jwakely@redhat.com> - - * doc/xml/manual/evolution.xml: Replace invalid <variable> - elements with <varname>. - * doc/html/*: Regenerate. - -2025-01-01 Gerald Pfeifer <gerald@pfeifer.com> - - * doc/html/manual/profile_mode.html: Delete. - * doc/html/manual/profile_mode_api.html: Ditto. - * doc/html/manual/profile_mode_cost_model.html: Ditto. - * doc/html/manual/profile_mode_design.html: Ditto. - * doc/html/manual/profile_mode_devel.html: Ditto. - * doc/html/manual/profile_mode_impl.html: Ditto. -Copyright (C) 2025 Free Software Foundation, Inc. +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 |
