mirror of git://gcc.gnu.org/git/gcc.git
7451 lines
284 KiB
Plaintext
7451 lines
284 KiB
Plaintext
2025-10-18 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
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.
|
||
|
||
2025-10-14 Mike Crowe <mac@mcrowe.com>
|
||
|
||
PR libstdc++/116586
|
||
* testsuite/30_threads/condition_variable/members/116586.cc: New
|
||
test.
|
||
|
||
2025-10-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/116586
|
||
* testsuite/30_threads/shared_timed_mutex/try_lock_until/116586.cc:
|
||
New test.
|
||
|
||
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>
|
||
|
||
PR libstdc++/121790
|
||
* acinclude.m4 (GLIBCXX_CHECK_STDIO_LOCKING): New macro to check
|
||
for std::print dependencies.
|
||
* config.h.in: Regenerate.
|
||
* 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>
|
||
|
||
* 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.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>
|
||
|
||
PR libstdc++/104874
|
||
* testsuite/24_iterators/random_access/string_vector_iterators.cc:
|
||
Reworked.
|
||
|
||
2025-07-24 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
* testsuite/21_strings/basic_string/cons/from_range.cc: Replace
|
||
test_constexpr with test_ranges inside static_assert.
|
||
* testsuite/21_strings/basic_string/modifiers/append/append_range.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/modifiers/assign/assign_range.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/modifiers/insert/insert_range.cc:
|
||
Likewise.
|
||
* testsuite/21_strings/basic_string/modifiers/replace/replace_with_range.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/vector/bool/modifiers/assign/assign_range.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/vector/bool/modifiers/insert/insert_range.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/vector/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/vector/modifiers/assign/assign_range.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/vector/modifiers/insert/insert_range.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/vector/bool/modifiers/insert/append_range.cc:
|
||
Run full test_ranges instead of span-only in test_constexpr.
|
||
* testsuite/23_containers/vector/modifiers/append_range.cc:
|
||
Replace test_constexpr with calls to test_ranges and test_overlapping.
|
||
* testsuite/util/testsuite_allocator.h (__gnu_test::SimpleAllocator):
|
||
Declared member functions as constexpr.
|
||
|
||
2025-07-23 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
* testsuite/23_containers/mdspan/accessors/default.cc: Delete.
|
||
* testsuite/23_containers/mdspan/accessors/generic.cc: Slightly
|
||
generalize the test code previously in default.cc.
|
||
|
||
2025-07-23 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
* testsuite/23_containers/mdspan/extents/ctor_ints.cc: Remove
|
||
superfluous parens.
|
||
* testsuite/23_containers/mdspan/extents/ctor_shape.cc: Ditto.
|
||
* testsuite/23_containers/mdspan/mdspan.cc: Ditto.
|
||
|
||
2025-07-23 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/119137
|
||
* testsuite/23_containers/inplace_vector/access/elem.cc: Cover
|
||
front and back methods and const calls.
|
||
* testsuite/23_containers/inplace_vector/access/elem_neg.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/inplace_vector/modifiers/erase_neg.cc:
|
||
New test.
|
||
* testsuite/23_containers/inplace_vector/modifiers/single_insert_neg.cc:
|
||
New test.
|
||
|
||
2025-07-22 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/119137
|
||
* testsuite/23_containers/inplace_vector/cons/from_range.cc: Run
|
||
iterators and range test at compile-time.
|
||
* testsuite/23_containers/inplace_vector/modifiers/assign.cc:
|
||
Likewise.
|
||
* testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc:
|
||
Likewise.
|
||
* testsuite/util/testsuite_iterators.h (__gnu_test::BoundsContainer)
|
||
(__gnu_test::OutputContainer, __gnu_test::WritableObject)
|
||
(__gnu_test::output_iterator_wrapper, __gnu_test::input_iterator_wrapper)
|
||
(__gnu_test::forward_iterator_wrapper)
|
||
(__gnu_test::bidirectional_iterator_wrapper)
|
||
(__gnu_test::random_access_iterator_wrapper)
|
||
(__gnu_test::test_container): Add appropriate _GLIBCXXNN_CONSTEXPR
|
||
macros to member functions.
|
||
(__gnu_test::contiguous_iterator_wrapper)
|
||
(__gnu_test::input_iterator_wrapper_rval)
|
||
(__gnu_test::test_range, __gnu_test::test_range_nocopy)
|
||
(__gnu_test::test_sized_range_sized_sent)
|
||
(__gnu_test::test_sized_range): Add constexpr specifier to member
|
||
functions.
|
||
|
||
2025-07-22 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/119137
|
||
* include/std/inplace_vector (inplace_vector::assign_range):
|
||
Replace _Nm with _M_size in the assigment loop.
|
||
|
||
2025-07-21 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
* include/std/mdspan (mdspan::mdspan): Make default ctor
|
||
conditionally noexcept.
|
||
* testsuite/23_containers/mdspan/mdspan.cc: Add tests.
|
||
|
||
2025-07-21 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
* include/std/mdspan (mdspan::is_always_unique): Make
|
||
conditionally noexcept.
|
||
(mdspan::is_always_exhaustive): Ditto.
|
||
(mdspan::is_always_strided): Ditto.
|
||
(mdspan::is_unique): Ditto.
|
||
(mdspan::is_exhaustive): Ditto.
|
||
(mdspan::is_strided): Ditto.
|
||
* testsuite/23_containers/mdspan/layout_like.h: Make noexcept
|
||
configurable. Add ThrowingLayout.
|
||
* testsuite/23_containers/mdspan/mdspan.cc: Add tests for
|
||
noexcept.
|
||
|
||
2025-07-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libstdc++/121174
|
||
* src/c++23/std.cc.in (std::dextents): Export. Add to FIXME comments
|
||
other not yet implemented nor exported <mdspan> entities.
|
||
|
||
2025-07-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/stl_iterator_base_types.h (__any_input_iterator):
|
||
Only define when __cpp_lib_concepts is defined.
|
||
|
||
2025-07-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/appendix_contributing.xml: Remove Paolo from
|
||
list of maintainers to contact about contributing.
|
||
* doc/html/manual/appendix_contributing.html: Regenerate.
|
||
|
||
2025-07-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/build_hacking.xml: Document that
|
||
windows_zones-map.h is a generated file.
|
||
* doc/html/manual/appendix_porting.html: Regenerate.
|
||
|
||
2025-07-18 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/119137
|
||
* include/std/inplace_vector (inplace_vector::operator=):
|
||
Qualify call to std::addressof.
|
||
|
||
2025-07-18 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/121154
|
||
* include/bits/chrono_io.h (_ChronoSpec::_M_time_point): Remove.
|
||
(_ChronoSpec::_M_needs_ok_check): Define
|
||
(__formatter_chrono::_M_parse): Set _M_needs_ok_check.
|
||
(__formatter_chrono::_M_check_ok): Check values also for debug mode,
|
||
and return __string_view.
|
||
(__formatter_chrono::_M_format_to): Handle results of _M_check_ok.
|
||
(__formatter_chrono::_M_wi, __formatter_chrono::_M_a_A)
|
||
(__formatter_chrono::_M_b_B, __formatter_chrono::_M_C_y_Y)
|
||
(__formatter_chrono::_M_d_e, __formatter_chrono::_M_F):
|
||
Removed handling of _M_debug.
|
||
(__formatter_chrono::__M_m): Print zero unpadded in _M_debug mode.
|
||
(__formatter_duration::_S_spec_for): Remove _M_time_point refernce.
|
||
(__formatter_duration::_M_parse): Override _M_needs_ok_check.
|
||
* testsuite/std/time/month/io.cc: Test for localized !ok() values.
|
||
* testsuite/std/time/weekday/io.cc: Test for localized !ok() values.
|
||
|
||
2025-07-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/121150
|
||
* testsuite/20_util/hash/int128.cc: Cast expected values to
|
||
size_t.
|
||
|
||
2025-07-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/unicode.h (_Utf_iterator::operator--): Reorder
|
||
conditions and update position after reading a code unit.
|
||
(_Utf_iterator::_M_read_reverse): Define.
|
||
(_Utf_iterator::_M_read_utf8): Return extracted code point.
|
||
(_Utf_iterator::_M_read_reverse_utf8): Define.
|
||
(_Utf_iterator::_M_read_reverse_utf16): Define.
|
||
(_Utf_iterator::_M_read_reverse_utf32): Define.
|
||
* testsuite/ext/unicode/view.cc: Add checks for reversed views
|
||
and reverse iteration.
|
||
|
||
2025-07-18 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/unicode.h (_Utf_iterator): Reorder data members
|
||
to be more compact.
|
||
|
||
2025-07-18 Jonathan Wakely <jwakely@redhat.com>
|
||
Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/119137
|
||
* doc/doxygen/user.cfg.in (INPUT): Add new header.
|
||
* include/Makefile.am: Add new header.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/bits/stl_iterator_base_types.h (__any_input_iterator):
|
||
Define.
|
||
* include/bits/version.def (inplace_vector): Define.
|
||
* include/bits/version.h: Regenerate.
|
||
* include/precompiled/stdc++.h: Include new header.
|
||
* src/c++23/std.cc.in: Export contents if new header.
|
||
* include/std/inplace_vector: New file.
|
||
* testsuite/23_containers/inplace_vector/access/capacity.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/access/elem.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/access/elem_neg.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/cons/1.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/cons/from_range.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/cons/throws.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/copy.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/erasure.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/modifiers/assign.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/modifiers/erase.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc:
|
||
New file.
|
||
* testsuite/23_containers/inplace_vector/modifiers/single_insert.cc:
|
||
New file.
|
||
* testsuite/23_containers/inplace_vector/move.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/relops.cc: New file.
|
||
* testsuite/23_containers/inplace_vector/version.cc: New file.
|
||
* testsuite/util/testsuite_iterators.h (input_iterator_wrapper::base):
|
||
Define.
|
||
|
||
2025-07-17 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/96710
|
||
* doc/xml/manual/evolution.xml: Document change or __int128.
|
||
* doc/html/manual/api.html: Regenerate.
|
||
|
||
2025-07-17 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
PR libstdc++/121061
|
||
* include/std/mdspan (extents::extents): Perform conversion to
|
||
index_type of an r-value reference.
|
||
(layout_left::mapping::operator()): Ditto.
|
||
(layout_right::mapping::operator()): Ditto.
|
||
(layout_stride::mapping::operator()): Ditto.
|
||
* testsuite/23_containers/mdspan/extents/custom_integer.cc: Add
|
||
tests for RValueInt and MutatingInt.
|
||
* testsuite/23_containers/mdspan/int_like.h (RValueInt): Add.
|
||
* testsuite/23_containers/mdspan/layouts/mapping.cc: Test with
|
||
RValueInt.
|
||
* testsuite/23_containers/mdspan/mdspan.cc: Ditto.
|
||
|
||
2025-07-17 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
PR libstdc++/121061
|
||
* include/std/mdspan (extents::extents): Fix constraint to
|
||
prevent non-const conversion to index_type.
|
||
(layout_stride::mapping::mapping): Ditto.
|
||
(mdspan::mdspan): Ditto.
|
||
(mdspan::operator[]): Ditto.
|
||
* testsuite/23_containers/mdspan/extents/custom_integer.cc: Add
|
||
test for MutatingInt.
|
||
* testsuite/23_containers/mdspan/int_like.h (MutatingInt): Add.
|
||
* testsuite/23_containers/mdspan/layouts/mapping.cc: Add test for
|
||
MutatingInt.
|
||
* testsuite/23_containers/mdspan/layouts/stride.cc: Ditto.
|
||
* testsuite/23_containers/mdspan/mdspan.cc: Ditto.
|
||
|
||
2025-07-17 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
PR libstdc++/121061
|
||
* testsuite/23_containers/mdspan/extents/custom_integer.cc:
|
||
Enable checking with different custom integers. Improve
|
||
checking non-existence of overloads for incompatible custom
|
||
integers.
|
||
* testsuite/23_containers/mdspan/layouts/mapping.cc: ditto. Also
|
||
improve reuse of int_like.h.
|
||
* testsuite/23_containers/mdspan/layouts/stride.cc: ditto.
|
||
* testsuite/23_containers/mdspan/mdspan.cc: ditto.
|
||
* testsuite/23_containers/mdspan/extents/int_like.h: Rename (old
|
||
name).
|
||
* testsuite/23_containers/mdspan/int_like.h: Rename (new name).
|
||
(ThrowingInt): Add.
|
||
(NotIntLike): Add.
|
||
|
||
2025-07-17 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/unicode.h (__unicode::_Utf_iterator): Add
|
||
comments.
|
||
(__unicode:_Utf_iterator::operator++()): Check whether to
|
||
iterate over the buffer first.
|
||
|
||
2025-07-17 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/121097
|
||
* include/c_global/cmath (hypot): Use __promote_3 instead of
|
||
__promoted.
|
||
|
||
2025-07-16 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/bitset (__bitset::__string) [__cpp_lib_bitset]:
|
||
Change alias to refer to basic_string_view instead.
|
||
|
||
2025-07-16 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/121114
|
||
* include/bits/version.def (constexpr_exceptions): Add no_stdname
|
||
and changed value.
|
||
* include/bits/version.h: Regenerated.
|
||
* testsuite/18_support/exception/version.cc: Test that macro is
|
||
not exported.
|
||
|
||
2025-07-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/move.h (swap): Replace enable_if with concepts
|
||
when available, and with __enable_if_t alias otherwise.
|
||
|
||
2025-07-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/ranges_base.h (ranges::advance(i, n, bound)):
|
||
Ensure that observable side effects on iterators match what is
|
||
specified in the standard.
|
||
|
||
2025-07-15 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR libstdc++/119962
|
||
* include/std/ranges (join_view::_Iterator::_M_outer): Initialize.
|
||
(lazy_split_view::_OuterIter::_M_current): Initialize.
|
||
(join_with_view::_Iterator::_M_outer_it): Initialize.
|
||
* testsuite/std/ranges/adaptors/join.cc (test15): New test.
|
||
* testsuite/std/ranges/adaptors/join_with/1.cc (test05): New test.
|
||
* testsuite/std/ranges/adaptors/lazy_split.cc (test13): New test.
|
||
|
||
2025-07-15 Björn Schäpers <bjoern@hazardy.de>
|
||
|
||
PR libstdc++/108409
|
||
* scripts/gen_windows_zones_map.py: New file, generates
|
||
windows_zones-map.h.
|
||
* src/c++20/windows_zones-map.h: New file, contains the look up
|
||
table.
|
||
* src/c++20/tzdb.cc (tzdb::current_zone): Add Windows code path.
|
||
|
||
2025-07-15 Björn Schäpers <bjoern@hazardy.de>
|
||
|
||
* src/c++20/tzdb.cc (zoneinfo_file): On Windows look relative
|
||
from the DLL path for the time zone information.
|
||
|
||
2025-07-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/25_algorithms/copy/debug/constexpr_neg.cc:
|
||
* testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
|
||
* testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
|
||
* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
|
||
* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
|
||
* testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
|
||
* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
|
||
* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
|
||
* testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
|
||
|
||
2025-07-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/121024
|
||
* include/bits/ranges_uninitialized.h (ranges::destroy): Do not
|
||
optimize away trivial destructors during constant evaluation.
|
||
(ranges::destroy_n): Likewise.
|
||
* testsuite/20_util/specialized_algorithms/destroy/121024.cc:
|
||
New test.
|
||
|
||
2025-07-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/experimental/memory (swap, make_observer_ptr): Add
|
||
constexpr.
|
||
(operator==, operator!=, operator<, operator>, operator<=)
|
||
(operator>=): Likewise.
|
||
* testsuite/experimental/memory/observer_ptr/make_observer.cc:
|
||
Checks for constant evaluation.
|
||
* testsuite/experimental/memory/observer_ptr/relops/relops.cc:
|
||
Likewise.
|
||
* testsuite/experimental/memory/observer_ptr/swap/swap.cc:
|
||
Likewise.
|
||
|
||
2025-07-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/type_traits (__make_unsigned_selector): Add
|
||
unsigned __int128 to type list.
|
||
* testsuite/20_util/make_unsigned/int128.cc: New test.
|
||
|
||
2025-07-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/96710
|
||
* include/bits/functional_hash.h (hash<__int128>): Define for
|
||
strict modes.
|
||
(hash<unsigned __int128>): Likewise.
|
||
* testsuite/20_util/hash/int128.cc: New test.
|
||
|
||
2025-07-15 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/110739
|
||
* include/bits/chrono_io.h (__formatter_chrono::_S_weekdays)
|
||
(__formatter_chrono::_S_months, __formatter_chrono::_S_fill_ampm):
|
||
Define.
|
||
(__formatter_chrono::_M_format_to): Do not pass context parameter
|
||
to functions listed below.
|
||
(__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B): Implement
|
||
using harcoded list of names, and remove format context parameter.
|
||
(__formatter_chrono::_M_p, __formatter_chrono::_M_r): Implement
|
||
using _S_fill_ampm.
|
||
(__formatter_chrono::_M_c): Removed format context parameter.
|
||
(__formatter_chrono::_M_subsecs): Call __ctx.locale() directly,
|
||
instead of _M_locale and do not compare with locale::classic().
|
||
Add [[unlikely]] attributes.
|
||
(__formatter_chrono::_M_locale): Move to __formatter_duration.
|
||
(__formatter_duration::_M_locale): Moved from __formatter_chrono.
|
||
|
||
2025-07-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/stl_pair.h (swap): Add comment to deleted
|
||
overload.
|
||
* include/bits/unique_ptr.h (swap): Likewise.
|
||
* include/std/array (swap): Likewise.
|
||
* include/std/optional (swap): Likewise.
|
||
* include/std/tuple (swap): Likewise.
|
||
* include/std/variant (swap): Likewise.
|
||
* testsuite/23_containers/array/tuple_interface/get_neg.cc:
|
||
Adjust dg-error line numbers.
|
||
|
||
2025-07-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/pstl/algorithm_impl.h (__for_each_n_it_serial):
|
||
Protect against overloaded comma operator.
|
||
(__brick_walk2): Likewise.
|
||
(__brick_walk2_n): Likewise.
|
||
(__brick_walk3): Likewise.
|
||
(__brick_move_destroy::operator()): Likewise.
|
||
(__brick_calc_mask_1): Likewise.
|
||
(__brick_copy_by_mask): Likewise.
|
||
(__brick_partition_by_mask): Likewise.
|
||
(__brick_calc_mask_2): Likewise.
|
||
(__brick_reverse): Likewise.
|
||
(__pattern_partial_sort_copy): Likewise.
|
||
* include/pstl/memory_impl.h (__brick_uninitialized_move):
|
||
Likewise.
|
||
(__brick_uninitialized_copy): Likewise.
|
||
* include/pstl/numeric_impl.h (__brick_transform_scan):
|
||
Likewise.
|
||
|
||
2025-07-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/117785
|
||
* include/bits/version.def (constexpr_exceptions): Define
|
||
correct value.
|
||
* include/bits/version.h: Regenerate.
|
||
* libsupc++/exception: Check correct value.
|
||
* testsuite/18_support/exception/version.cc: New test.
|
||
|
||
2025-07-14 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* libsupc++/exception_ptr.h (make_exception_ptr): Return null
|
||
for consteval when -fno-exceptions is used.
|
||
(exception_ptr_cast): Likewise. Allow consteval path to work
|
||
with -fno-rtti.
|
||
|
||
2025-07-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* libsupc++/exception_ptr.h: Implement C++26 P3748R0 - Inspecting
|
||
exception_ptr should be constexpr.
|
||
(std::exception_ptr_cast): Make constexpr, remove inline keyword. Add
|
||
static_asserts for Mandates. For if consteval use std::rethrow_exception,
|
||
catch it and return its address or nullptr.
|
||
* testsuite/18_support/exception_ptr/exception_ptr_cast.cc (E::~E): Add
|
||
constexpr.
|
||
(G::G): Likewise.
|
||
(test01): Likewise. Return bool and take bool argument, throw if the
|
||
argument is true. Add static_assert(test01(false)).
|
||
(main): Call test01(true) in try.
|
||
|
||
2025-07-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/cpp_type_traits.h (__is_floating<__float128>):
|
||
Do not depend on __STRICT_ANSI__.
|
||
* include/bits/stl_algobase.h (__size_to_integer(__float128)):
|
||
Likewise.
|
||
* include/std/type_traits (__is_floating_point_helper<__float128>):
|
||
Likewise.
|
||
|
||
2025-07-11 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/96710
|
||
* include/bits/cpp_type_traits.h (__is_integer): Define explicit
|
||
specializations for __int128.
|
||
(__memcpyable_integer): Remove explicit specializations for
|
||
__int128.
|
||
* include/bits/iterator_concepts.h (incrementable_traits):
|
||
Likewise.
|
||
(__is_signed_int128, __is_unsigned_int128, __is_int128): Remove.
|
||
(__is_integer_like, __is_signed_integer_like): Remove check for
|
||
__int128.
|
||
* include/bits/max_size_type.h: Remove all uses of __is_int128
|
||
in constraints.
|
||
* include/bits/ranges_base.h (__to_unsigned_like): Remove
|
||
overloads for __int128.
|
||
(ranges::ssize): Remove special case for __int128.
|
||
* include/bits/stl_algobase.h (__size_to_integer): Define
|
||
__int128 overloads for strict modes.
|
||
* include/ext/numeric_traits.h (__is_integer_nonstrict): Remove
|
||
explicit specializations for __int128.
|
||
* include/std/charconv (to_chars): Define overloads for
|
||
__int128.
|
||
* include/std/format (__format::make_unsigned_t): Remove.
|
||
(__format::to_chars): Remove.
|
||
* include/std/limits (numeric_limits): Define explicit
|
||
specializations for __int128.
|
||
* include/std/type_traits (__is_integral_helper): Likewise.
|
||
(__make_unsigned, __make_signed): Likewise.
|
||
|
||
2025-07-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/117785
|
||
* include/bits/version.def (constexpr_exceptions): New.
|
||
* include/bits/version.h: Regenerate.
|
||
* libsupc++/exception (std::bad_exception::bad_exception): Add
|
||
_GLIBCXX26_CONSTEXPR.
|
||
(std::bad_exception::~bad_exception, std::bad_exception::what): For
|
||
C++26 add constexpr and define inline.
|
||
* libsupc++/exception.h (std::exception::exception,
|
||
std::exception::operator=): Add _GLIBCXX26_CONSTEXPR.
|
||
(std::exception::~exception, std::exception::what): For C++26 add
|
||
constexpr and define inline.
|
||
* libsupc++/exception_ptr.h (std::make_exception_ptr): Add
|
||
_GLIBCXX26_CONSTEXPR. For if consteval use just throw with
|
||
current_exception() in catch.
|
||
(std::exception_ptr::exception_ptr(void*)): For C++26 add constexpr
|
||
and define inline.
|
||
(std::exception_ptr::exception_ptr()): Add _GLIBCXX26_CONSTEXPR.
|
||
(std::exception_ptr::exception_ptr(const exception_ptr&)): Likewise.
|
||
Use __builtin_eh_ptr_adjust_ref if consteval and compiler has it
|
||
instead of _M_addref.
|
||
(std::exception_ptr::exception_ptr(nullptr_t)): Add
|
||
_GLIBCXX26_CONSTEXPR.
|
||
(std::exception_ptr::exception_ptr(exception_ptr&&)): Likewise.
|
||
(std::exception_ptr::operator=): Likewise.
|
||
(std::exception_ptr::~exception_ptr): Likewise. Use
|
||
__builtin_eh_ptr_adjust_ref if consteval and compiler has it
|
||
instead of _M_release.
|
||
(std::exception_ptr::swap): Add _GLIBCXX26_CONSTEXPR.
|
||
(std::exception_ptr::operator bool): Likewise.
|
||
(std::exception_ptr::operator==): Likewise.
|
||
* libsupc++/nested_exception.h
|
||
(std::nested_exception::nested_exception): Add _GLIBCXX26_CONSTEXPR.
|
||
(std::nested_exception::operator=): Likewise.
|
||
(std::nested_exception::~nested_exception): For C++26 add constexpr
|
||
and define inline.
|
||
(std::nested_exception::rethrow_if_nested): Add _GLIBCXX26_CONSTEXPR.
|
||
(std::nested_exception::nested_ptr): Likewise.
|
||
(std::_Nested_exception::_Nested_exception): Likewise.
|
||
(std::throw_with_nested, std::rethrow_if_nested): Likewise.
|
||
* libsupc++/new (std::bad_alloc::bad_alloc): Likewise.
|
||
(std::bad_alloc::operator=): Likewise.
|
||
(std::bad_alloc::~bad_alloc): For C++26 add constexpr and define
|
||
inline.
|
||
(std::bad_alloc::what): Likewise.
|
||
(std::bad_array_new_length::bad_array_new_length): Add
|
||
_GLIBCXX26_CONSTEXPR.
|
||
(std::bad_array_new_length::~bad_array_new_length): For C++26 add
|
||
constexpr and define inline.
|
||
(std::bad_array_new_length::what): Likewise.
|
||
* libsupc++/typeinfo (std::bad_cast::bad_cast): Add
|
||
_GLIBCXX26_CONSTEXPR.
|
||
(std::bad_cast::~bad_cast): For C++26 add constexpr and define inline.
|
||
(std::bad_cast::what): Likewise.
|
||
(std::bad_typeid::bad_typeid): Add _GLIBCXX26_CONSTEXPR.
|
||
(std::bad_typeid::~bad_typeid): For C++26 add constexpr and define
|
||
inline.
|
||
(std::bad_typeid::what): Likewise.
|
||
|
||
2025-07-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* testsuite/22_locale/codecvt/codecvt_unicode.h
|
||
(ucs2_to_utf8_out_error): Comment spelling fix: bellow -> below.
|
||
(utf16_to_ucs2_in_error): Likewise.
|
||
|
||
2025-07-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/stl_uninitialized.h (__uninitialized_default):
|
||
Do not use optimized implementation for constexpr case. Use
|
||
_GLIBCXX20_CONSTEXPR instead of _GLIBCXX26_CONSTEXPR.
|
||
|
||
2025-07-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/mdspan (mdspan): Add template keyword for
|
||
dependent name.
|
||
|
||
2025-07-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/120997
|
||
* include/std/span (span::first, span::last, span::subspan): Do
|
||
not use braced-init-list for return statements.
|
||
* testsuite/23_containers/span/120997.cc: New test.
|
||
|
||
2025-07-09 Paul Keir <pkeir@outlook.com>
|
||
|
||
PR libstdc++/117403
|
||
* include/bits/shared_ptr.h (shared_ptr::owner_equal)
|
||
(shared_ptr::owner_hash, weak_ptr::owner_equal)
|
||
(weak_ptr::owner_hash): Define new member functions.
|
||
* include/bits/shared_ptr_base.h (owner_equal, owner_hash):
|
||
Define new structs.
|
||
* include/bits/version.def (smart_ptr_owner_equality): Define.
|
||
* include/bits/version.h: Regenerate.
|
||
* include/std/memory: Added define for
|
||
__glibcxx_want_smart_ptr_owner_equality.
|
||
* testsuite/20_util/owner_equal/version.cc: New test.
|
||
* testsuite/20_util/owner_equal/cmp.cc: New test.
|
||
* testsuite/20_util/owner_equal/noexcept.cc: New test.
|
||
* testsuite/20_util/owner_hash/cmp.cc: New test.
|
||
* testsuite/20_util/owner_hash/noexcept.cc: New test.
|
||
* testsuite/20_util/shared_ptr/observers/owner_equal.cc: New
|
||
test.
|
||
* testsuite/20_util/shared_ptr/observers/owner_hash.cc:
|
||
New test.
|
||
* testsuite/20_util/weak_ptr/observers/owner_equal.cc: New test.
|
||
* testsuite/20_util/weak_ptr/observers/owner_hash.cc: New test.
|
||
|
||
2025-07-09 Mateusz Zych <mte.zych@gmail.com>
|
||
|
||
* include/bits/max_size_type.h (numeric_limits<__max_size_type>):
|
||
New members.
|
||
(numeric_limits<__max_diff_type>): Likewise.
|
||
* testsuite/std/ranges/iota/max_size_type.cc: New test cases.
|
||
|
||
2025-07-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/c++17/memory_resource.cc: Adjust indentation of unnamed
|
||
namespaces.
|
||
(pool_sizes): Add comment.
|
||
(choose_block_size): Move outside preprocessor group for
|
||
gthreads targets.
|
||
* testsuite/20_util/synchronized_pool_resource/118681.cc:
|
||
Require gthreads.
|
||
|
||
2025-07-09 H.J. Lu <hjl.tools@gmail.com>
|
||
|
||
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
|
||
Updated.
|
||
|
||
2025-07-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/118681
|
||
* testsuite/20_util/unsynchronized_pool_resource/118681.cc: Fix
|
||
deallocate argument.
|
||
|
||
2025-07-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/118681
|
||
* src/c++17/memory_resource.cc (choose_block_size): New
|
||
function.
|
||
(synchronized_pool_resource::do_allocate): Use choose_block_size
|
||
to determine appropriate block size.
|
||
(synchronized_pool_resource::do_deallocate): Likewise
|
||
(unsynchronized_pool_resource::do_allocate): Likewise.
|
||
(unsynchronized_pool_resource::do_deallocate): Likewise
|
||
* testsuite/20_util/synchronized_pool_resource/118681.cc: New
|
||
test.
|
||
* testsuite/20_util/unsynchronized_pool_resource/118681.cc: New
|
||
test.
|
||
|
||
2025-07-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/debug/forward_list (_Safe_forward_list<>::_M_swap):
|
||
Adapt to _M_this() signature change.
|
||
|
||
2025-07-08 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/119861
|
||
* include/std/format (formatter<_Rg, _CharT>::set_separator)
|
||
(formatter<_Rg, _CharT>::set_brackets): Constrain with
|
||
(format_kind<_Rg> == range_format::sequence).
|
||
* testsuite/std/format/ranges/pr119861_neg.cc: New test.
|
||
|
||
2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
PR libstdc++/120914
|
||
* include/std/span (span): Update CTAD to enable
|
||
integral constants [P3029R1].
|
||
* include/std/mdspan (extents): ditto.
|
||
(mdspan): ditto.
|
||
* testsuite/23_containers/span/deduction.cc: Test deduction
|
||
guide.
|
||
* testsuite/23_containers/mdspan/extents/misc.cc: ditto.
|
||
* testsuite/23_containers/mdspan/mdspan.cc: ditto.
|
||
|
||
2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
* testsuite/23_containers/span/contiguous_range_neg.cc: Silence
|
||
warning about unused variable myspan.
|
||
|
||
2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
PR libstdc++/107761
|
||
* include/bits/version.def (mdspan): Set to 202207 and remove
|
||
no_stdname.
|
||
* include/bits/version.h: Regenerate.
|
||
* testsuite/23_containers/mdspan/version.cc: Test presence
|
||
of feature test macro.
|
||
|
||
2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
PR libstdc++/107761
|
||
* include/std/mdspan (mdspan): New class.
|
||
* src/c++23/std.cc.in (mdspan): Add.
|
||
* testsuite/23_containers/mdspan/class_mandate_neg.cc: New test.
|
||
* testsuite/23_containers/mdspan/mdspan.cc: New test.
|
||
* testsuite/23_containers/mdspan/layout_like.h: Add class
|
||
LayoutLike which models a user-defined layout.
|
||
* testsuite/23_containers/mdspan/out_of_bounds_neg.cc: New file.
|
||
|
||
2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
* include/std/mdspan (__mdspan::__size): New function.
|
||
|
||
2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
* testsuite/23_containers/mdspan/extents/custom_integer.cc:
|
||
Delete IntLike and include "int_like.h".
|
||
* testsuite/23_containers/mdspan/extents/int_like.h: Add
|
||
IntLike.
|
||
|
||
2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
* include/std/mdspan (extents): Check prerequisite of the ctor that
|
||
static_extent(i) == dynamic_extent || extent(i) == other.extent(i).
|
||
* testsuite/23_containers/mdspan/extents/class_mandates_neg.cc:
|
||
Test the implemented prerequisite.
|
||
* testsuite/23_containers/mdspan/extents/extents_mismatch_neg.cc: New file.
|
||
|
||
2025-07-08 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
* include/std/mdspan: Check prerequisites of
|
||
layout_*::operator() with _GLIBCXX_DEBUG_ASSERTs.
|
||
* testsuite/23_containers/mdspan/layouts/debug/out_of_bounds_neg.cc:
|
||
Add tests for prerequisites.
|
||
|
||
2025-07-08 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
* include/std/queue (formatter<queue<_Tp, _Container>, _CharT>)
|
||
(formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>):
|
||
Add _GLIBCXX_RESOLVE_LIB_DEFECTS comments.
|
||
|
||
2025-07-08 François Dumont <frs.dumont@gmail.com>
|
||
|
||
PR c++/116369
|
||
* config/abi/pre/gnu-versioned-namespace.ver: Use new const qualified symbols.
|
||
* config/abi/pre/gnu.ver: Add new const qualified symbols.
|
||
* include/debug/safe_base.h
|
||
(_Safe_iterator_base::_M_sequence): Declare as pointer-to-const.
|
||
(_Safe_iterator_base::_M_attach, _M_attach_single): New, take pointer-to-const
|
||
_Safe_sequence_base.
|
||
(_Safe_sequence_base::_M_detach_all, _M_detach_singular, _M_revalidate_singular)
|
||
(_M_swap, _M_get_mutex): New, const qualified.
|
||
(_Safe_sequence_base::_M_attach, _M_attach_single, _M_detach, _M_detach_single):
|
||
const qualify.
|
||
* include/debug/safe_container.h (_Safe_container<>::_M_cont): Add const qualifier.
|
||
(_Safe_container<>::_M_swap_base): New.
|
||
(_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)):
|
||
Adapt to use latter.
|
||
(_Safe_container<>::operator=(_Safe_container&&)): Likewise.
|
||
(_Safe_container<>::_M_swap): Likewise and take parameter as const reference.
|
||
* include/debug/safe_unordered_base.h
|
||
(_Safe_local_iterator_base::_M_safe_container): New.
|
||
(_Safe_local_iterator_base::_Safe_local_iterator_base): Take
|
||
_Safe_unordered_container_base as pointer-to-const.
|
||
(_Safe_unordered_container_base::_M_attach, _M_attach_single): New, take
|
||
container as _Safe_unordered_container_base pointer-to-const.
|
||
(_Safe_unordered_container_base::_M_local_iterators, _M_const_local_iterators):
|
||
Add mutable.
|
||
(_Safe_unordered_container_base::_M_detach_all, _M_swap): New, const qualify.
|
||
(_Safe_unordered_container_base::_M_attach_local, _M_attach_local_single)
|
||
(_M_detach_local, _M_detach_local_single): Add const qualifier.
|
||
* include/debug/safe_unordered_container.h (_Safe_unordered_container::_M_self()): New.
|
||
* include/debug/safe_unordered_container.tcc
|
||
(_Safe_unordered_container::_M_invalidate_if, _M_invalidated_local_if): Use latter.
|
||
* include/debug/safe_iterator.h (_Safe_iterator<>::_M_attach, _M_attach_single):
|
||
Take _Safe_sequence_base as pointer-to-const.
|
||
(_Safe_iterator<>::_M_get_sequence): Add const_cast and comment about it.
|
||
* include/debug/safe_local_iterator.h (_Safe_local_iterator<>): Replace usages
|
||
of _M_sequence member by _M_safe_container().
|
||
(_Safe_local_iterator<>::_M_attach, _M_attach_single): Take
|
||
_Safe_unordered_container_base as pointer-to-const.
|
||
(_Safe_local_iterator<>::_M_get_sequence): Rename into...
|
||
(_Safe_local_iterator<>::_M_get_ucontainer): ...this. Add necessary const_cast and
|
||
comment to explain it.
|
||
(_Safe_local_iterator<>::_M_is_begin, _M_is_end): Adapt.
|
||
* include/debug/safe_local_iterator.tcc: Adapt.
|
||
* include/debug/safe_sequence.h
|
||
(_Safe_sequence<>::_M_invalidate_if, _M_transfer_from_if): Add const qualifier.
|
||
* include/debug/safe_sequence.tcc: Adapt.
|
||
* include/debug/deque (std::__debug::deque::erase): Adapt to use new const
|
||
qualified methods.
|
||
* include/debug/formatter.h: Adapt.
|
||
* include/debug/forward_list (_Safe_forward_list::_M_this): Add const
|
||
qualification and return pointer for consistency with 'this' keyword.
|
||
(_Safe_forward_list::_M_swap_aux): Rename into...
|
||
(_Safe_forward_list::_S_swap_aux): ...this and take sequence as const reference.
|
||
(forward_list<>::resize): Adapt to use const methods.
|
||
* include/debug/list (list<>::resize): Likewise.
|
||
* src/c++11/debug.cc: Adapt to const qualification.
|
||
* testsuite/util/testsuite_containers.h
|
||
(forward_members_unordered::forward_members_unordered): Add check on local_iterator
|
||
conversion to const_local_iterator.
|
||
(forward_members::forward_members): Add check on iterator conversion to
|
||
const_iterator.
|
||
* testsuite/23_containers/unordered_map/const_container.cc: New test case.
|
||
* testsuite/23_containers/unordered_multimap/const_container.cc: New test case.
|
||
* testsuite/23_containers/unordered_multiset/const_container.cc: New test case.
|
||
* testsuite/23_containers/unordered_set/const_container.cc: New test case.
|
||
* testsuite/23_containers/vector/debug/mutex_association.cc: Adapt.
|
||
|
||
2025-07-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/120949
|
||
* include/bits/stl_iterator.h (__normal_iterator): Fix order of
|
||
always_inline and nodiscard attributes for Clang compatibility.
|
||
|
||
2025-07-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/util/testsuite_hooks.h (VERIFY): Define as variadic
|
||
macro.
|
||
* testsuite/ext/verify_neg.cc: New test.
|
||
|
||
2025-07-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/mdspan (__mapping_of): Add template keyword.
|
||
|
||
2025-07-07 XU Kailiang <xu2k3l4@outlook.com>
|
||
Tomasz Kaminski <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/117214
|
||
* include/bits/chrono_io.h (_ChronoSpec::_M_time_only): Remove.
|
||
(_ChronoSpec::_M_time_point): Define.
|
||
(__formatter_chrono::_M_parse): Use __parts to determine
|
||
interpretation of j.
|
||
(__formatter_chrono::_M_check_ok): Define.
|
||
(__formatter_chrono::_M_format_to): Invoke _M_check_ok.
|
||
(__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B): Move
|
||
exception throwing to _M_check_ok.
|
||
(__formatter_chrono::_M_j): Use _M_needs to define interpretation.
|
||
(__formatter_duration::_S_spec_for): Set _M_time_point.
|
||
* testsuite/std/time/format/format.cc: Test for exception for !ok()
|
||
months/weekday.
|
||
* testsuite/std/time/format/pr117214_custom_timeput.cc: New
|
||
test.
|
||
|
||
2025-07-07 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/120976
|
||
* include/std/format (formatter<__float128, _Char_T): Define if
|
||
_GLIBCXX_FORMAT_F128 == 2.
|
||
|
||
2025-07-06 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* include/bits/ranges_algo.h (shift_left, shift_right): Guard
|
||
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>
|
||
|
||
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.
|
||
|
||
2025-07-01 Luc Grosheintz <luc.grosheintz@gmail.com>
|
||
|
||
* 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.
|
||
|
||
2025-06-27 Patrick Palka <ppalka@redhat.com>
|
||
|
||
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.
|
||
|
||
2025-06-27 Patrick Palka <ppalka@redhat.com>
|
||
|
||
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.
|
||
|
||
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):
|
||
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.
|
||
|
||
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.
|
||
|
||
2025-06-24 Patrick Palka <ppalka@redhat.com>
|
||
Jonathan Wakely <jwakely@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.
|
||
|
||
2025-06-16 Jason Merrill <jason@redhat.com>
|
||
|
||
* testsuite/20_util/is_complete_or_unbounded/memoization.cc
|
||
* testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
|
||
Expect -Wsfinae-incomplete.
|
||
|
||
2025-06-13 Jonathan Wakely <jwakely@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.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.
|
||
|
||
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):
|
||
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)):
|
||
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.
|
||
* 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/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.
|
||
|
||
2025-05-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/118260
|
||
* python/hook.in: Suppress output from gdb.execute calls to
|
||
register skips.
|
||
|
||
2025-05-12 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/status_cxx2017.xml: Update status for
|
||
std::to_chars and std::from_chars.
|
||
* doc/html/manual/*: Regenerate.
|
||
|
||
2025-05-12 Jonathan Wakely <jwakely@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.
|
||
|
||
2025-05-10 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* src/c++23/print.cc [__VXWORKS__]: Include ioLib.h.
|
||
|
||
2025-05-09 Tomasz Kamiński <tkaminsk@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.
|
||
|
||
2025-05-09 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.
|
||
|
||
2025-05-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/120159
|
||
* src/c++23/std.cc.in (is_layout_compatible_v): Export.
|
||
|
||
2025-05-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* src/c++23/std.cc.in: Fix export for std::extents.
|
||
|
||
2025-05-07 Luc Grosheintz <luc.grosheintz@gmail.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.h: Regenerate.
|
||
|
||
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.
|
||
|
||
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
|
||
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.
|
||
|
||
2025-04-11 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/111055
|
||
* include/bits/version.def (containers_ranges): Define.
|
||
* include/bits/version.h: Regenerate.
|
||
* include/bits/ranges_base.h (__detail::__container_compatible_range)
|
||
(__detail::__range_to_alloc_type, __detail::__range_mapped_type)
|
||
(__detail::__range_key_type): Depend on __glibcxx_containers_ranges
|
||
instead of __glibcxx_ranges_to_container.
|
||
* include/bits/basic_string.h: Replace __glibcxx_ranges_to_container with
|
||
__glibcxx_containers_ranges.
|
||
* include/bits/cow_string.h: Likewise.
|
||
* include/bits/deque.tcc: Likewise.
|
||
* include/bits/forward_list.h: Likewise.
|
||
* include/bits/stl_bvector.h: Likewise.
|
||
* include/bits/stl_deque.h: Likewise.
|
||
* include/bits/stl_list.h: Likewise.
|
||
* include/bits/stl_map.h: Likewise.
|
||
* include/bits/stl_multimap.h: Likewise.
|
||
* include/bits/stl_multiset.h: Likewise.
|
||
* include/bits/stl_queue.h: Likewise.
|
||
* include/bits/stl_set.h: Likewise.
|
||
* include/bits/stl_stack.h: Likewise.
|
||
* include/bits/stl_vector.h: Likewise.
|
||
* include/bits/unordered_map.h: Likewise.
|
||
* include/bits/unordered_set.h: Likewise.
|
||
* include/bits/vector.tcc: Likewise.
|
||
* include/debug/deque: Likewise.
|
||
* include/debug/forward_list: Likewise.
|
||
* include/debug/list: Likewise.
|
||
* include/debug/map.h: Likewise.
|
||
* include/debug/multimap.h: Likewise.
|
||
* include/debug/multiset.h: Likewise.
|
||
* include/debug/set.h: Likewise.
|
||
* include/debug/unordered_map: Likewise.
|
||
* include/debug/unordered_set: Likewise.
|
||
* include/debug/vector: Likewise.
|
||
* include/std/deque: Provide __cpp_lib_containers_ranges.
|
||
* include/std/forward_list: Likewise.
|
||
* include/std/list: Likewise.
|
||
* include/std/map: Likewise.
|
||
* include/std/queue: Likewise.
|
||
* include/std/set: Likewise.
|
||
* include/std/stack: Likewise.
|
||
* include/std/string: Likewise.
|
||
* include/std/unordered_map: Likewise.
|
||
* include/std/unordered_set: Likewise.
|
||
* include/std/vector: Likewise.
|
||
* testsuite/21_strings/basic_string/cons/from_range.cc: Test for value
|
||
__cpp_lib_containers_ranges.
|
||
* testsuite/23_containers/deque/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/forward_list/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/list/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/map/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/multimap/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/multiset/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/priority_queue/cons_from_range.cc: Likewise.
|
||
* testsuite/23_containers/queue/cons_from_range.cc: Likewise.
|
||
* testsuite/23_containers/set/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/stack/cons_from_range.cc: Likewise.
|
||
* testsuite/23_containers/unordered_map/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/unordered_multimap/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/unordered_multiset/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/unordered_set/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise.
|
||
* testsuite/23_containers/vector/cons/from_range.cc: Likewise.
|
||
|
||
2025-04-11 Jonathan Wakely <jwakely@redhat.com>
|
||
Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/111055
|
||
* include/bits/basic_string.h (_S_copy_range): New function.
|
||
(basic_string(from_range_t, R%%, const Alloc&)): New
|
||
constructor.
|
||
(append_range, assign_range, insert_range, replace_with_range):
|
||
New functions.
|
||
* include/bits/cow_string.h: Likewise.
|
||
* testsuite/21_strings/basic_string/cons/from_range.cc: New
|
||
test.
|
||
* testsuite/21_strings/basic_string/modifiers/append/append_range.cc:
|
||
New test.
|
||
* testsuite/21_strings/basic_string/modifiers/assign/assign_range.cc:
|
||
New test.
|
||
* testsuite/21_strings/basic_string/modifiers/insert/insert_range.cc:
|
||
New test.
|
||
* testsuite/21_strings/basic_string/modifiers/replace/replace_with_range.cc:
|
||
New test.
|
||
|
||
2025-04-11 Tomasz Kamiński <tkaminsk@redhat.com>
|
||
|
||
PR libstdc++/109162
|
||
* include/bits/chrono_io.h (__detail::_Widen): Moved to std/format file.
|
||
* include/bits/unicode-data.h: Regnerate.
|
||
* include/bits/unicode.h (__unicode::_Utf_iterator::_M_units)
|
||
(__unicode::__should_escape_category): Define.
|
||
* include/std/format (_GLIBCXX_WIDEN_, _GLIBCXX_WIDEN): Copied from
|
||
include/bits/chrono_io.h.
|
||
(__format::_Widen): Moved from include/bits/chrono_io.h.
|
||
(__format::_Term_char, __format::_Escapes, __format::_Separators)
|
||
(__format::__should_escape_ascii, __format::__should_escape_unicode)
|
||
(__format::__write_escape_seq, __format::__write_escaped_char)
|
||
(__format::__write_escaped_acii, __format::__write_escaped_unicode)
|
||
(__format::__write_escaped): Define.
|
||
(__formatter_str::_S_trunc): Extracted truncation of character
|
||
sequences.
|
||
(__formatter_str::format): Handle _Pres_esc.
|
||
(__formatter_int::_M_do_parse) [__glibcxx_format_ranges]: Parse '?'.
|
||
(__formatter_int::_M_format_character_escaped): Define.
|
||
(formatter<_CharT, _CharT>::format, formatter<char, wchar_t>::format):
|
||
Handle _Pres_esc.
|
||
(__formatter_str::set_debug_format, formatter<...>::set_debug_format)
|
||
Guard with __glibcxx_format_ranges.
|
||
(__format::_Fixedbuf_sink): Define.
|
||
* testsuite/23_containers/vector/bool/format.cc: Use __format::_Widen
|
||
and remove unnecessary <chrono> include.
|
||
* testsuite/std/format/debug.cc: New test.
|
||
* testsuite/std/format/debug_nonunicode.cc: New test.
|
||
* testsuite/std/format/parse_ctx.cc (escaped_strings_supported): Define
|
||
to true if __glibcxx_format_ranges is defined.
|
||
* testsuite/std/format/string.cc (escaped_strings_supported): Define to
|
||
true if __glibcxx_format_ranges is defined.
|
||
|
||
2025-04-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/version.def (constrained_equality): Only define
|
||
as 202411 for C++23 and later, use 202403 for C++20.
|
||
* include/bits/version.h: Regenerate.
|
||
* testsuite/20_util/expected/equality_constrained.cc: Remove
|
||
TODO comment.
|
||
|
||
2025-04-10 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
* config/os/hpux/os_defines.h: Remove _GLIBCXX_USE_LONG_LONG
|
||
define.
|
||
|
||
2025-04-09 Patrick Palka <ppalka@redhat.com>
|
||
|
||
PR libstdc++/115046
|
||
PR libstdc++/112490
|
||
* include/bits/stl_iterator.h (basic_const_iterator::operator-):
|
||
Replace non-dependent basic_const_iterator function parameter with
|
||
a dependent one of type basic_const_iterator<_It2> where _It2
|
||
matches _It.
|
||
* testsuite/std/ranges/adaptors/as_const/1.cc (test04): New test.
|
||
|
||
2025-04-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/119671
|
||
* 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++/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>
|
||
|
||
* 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.
|
||
* 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>
|
||
|
||
* 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.
|
||
|
||
2025-03-20 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* 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.
|
||
|
||
2025-03-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* testsuite/18_support/numeric_limits/traps.cc (main): Fix comment
|
||
typo.
|
||
|
||
2025-03-19 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/manual/test.xml: Fix default for -std option.
|
||
* doc/html/manual/test.html: Regenerate.
|
||
|
||
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.
|
||
* 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>
|
||
|
||
* include/bits/stl_list.h (list::pop_front, list::pop_back):
|
||
Add non-empty assertions.
|
||
|
||
2025-03-06 Jonathan Wakely <jwakely@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:
|
||
Likewise.
|
||
|
||
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.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|