gcc/libstdc++-v3/ChangeLog

4478 lines
151 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

2025-10-15 Joel Sherrill <joel@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 Jakub Jelinek <jakub@redhat.com>
Backported from master:
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-10-06 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/122168
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
dg-error for additional error seen with -Wsystem-headers.
2025-10-01 Patrick Palka <ppalka@redhat.com>
Backported from master:
2025-09-24 Patrick Palka <ppalka@redhat.com>
* testsuite/17_intro/names.cc: Undefine 'u' on s390*-linux.
2025-10-01 Patrick Palka <ppalka@redhat.com>
Backported from master:
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/29_atomics/atomic/operators/pointer_partial_void.cc:
Likewise.
* testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
Likewise.
2025-09-15 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-15 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2025-09-10 Jonathan Wakely <jwakely@redhat.com>
* include/bits/unique_ptr.h: Remove blank line.
2025-09-09 Tomasz Kamiński <tkaminsk@redhat.com>
Backported from master:
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-09 Tomasz Kamiński <tkaminsk@redhat.com>
Backported from master:
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-08 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-04 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-04 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-04 Yihan Wang <yronglin777@gmail.com>
Backported from master:
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-04 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-07-25 Jonathan Wakely <jwakely@redhat.com>
* include/std/expected (expected): Constrain constructors to
prevent problematic bool conversions, as per LWG 3836.
* testsuite/20_util/expected/lwg3836.cc: New test.
2025-09-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-01 Jonathan Wakely <jwakely@redhat.com>
* testsuite/23_containers/unordered_set/pr115285.cc: Include
missing header for std::vector.
2025-09-03 Jonathan Wakely <jwakely@redhat.com>
* include/bits/regex_compiler.h (_Compiler::_S_validate): Add
diagnostic pragma to disable -Wswitch warning.
2025-09-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-09-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-09-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2025-07-17 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/121097
* include/c_global/cmath (hypot): Use __promote_3 instead of
__promoted.
2025-06-11 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-11 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-14 Jonathan Wakely <jwakely@redhat.com>
* include/std/format (__formatter_fp::_M_localize): Add comments
and micro-optimize string copy.
2025-06-11 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-10 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-06-05 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Backported from master:
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-05-23 Release Manager
* GCC 14.3.0 released.
2025-05-13 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/status_cxx2023.xml: Update status of proposal
implemented after GCC 14.2 release.
* doc/html/manual/status.html: Regenerate.
2025-05-06 Dhruv Chawla <dhruvc@nvidia.com>
Backported from master:
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-04-30 François Dumont <frs.dumont@gmail.com>
Backported from master:
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/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-29 Patrick Palka <ppalka@redhat.com>
Backported from master:
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-04-29 Patrick Palka <ppalka@redhat.com>
Backported from master:
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-04-29 Patrick Palka <ppalka@redhat.com>
Backported from master:
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-04-17 Tomasz Kamiński <tkaminsk@redhat.com>
Backported from master:
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-04-16 Jonathan Wakely <jwakely@redhat.com>
* include/std/numeric: Only mention ranges::iota in comment.
2025-04-16 Jonathan Wakely <jwakely@redhat.com>
* testsuite/17_intro/names.cc: Check ranges is not used as an
identifier before C++20.
2025-04-16 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2025-04-15 Jonathan Wakely <jwakely@redhat.com>
* include/std/ranges (__glibcxx_want_ranges_iota): Do not
define.
2025-04-16 Michael Levine <mlevine55@bloomberg.net>
Backported from master:
2024-06-08 Michael Levine <mlevine55@bloomberg.net>
PR libstdc++/108760
* include/bits/ranges_algo.h (ranges::out_value_result)
(ranges::iota_result, ranges::__iota_fn, ranges::iota): Move to
<bits/ranges_algobase.h>.
* include/bits/ranges_algobase.h (ranges::out_value_result):
(ranges::iota_result, ranges::__iota_fn, ranges::iota): Move to
here.
* include/std/numeric: Include <bits/ranges_algobase.h>.
* testsuite/25_algorithms/iota/1.cc: Renamed to ...
* testsuite/26_numerics/iota/2.cc: ... here.
2025-04-16 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-04-16 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-18 Jonathan Wakely <jwakely@redhat.com>
* include/bits/ranges_algobase.h (ranges::__assign_one): Remove.
(__copy_or_move, __copy_or_move_backward): Use std::__assign_one
instead of ranges::__assign_one.
2025-04-16 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-13 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117121
* include/bits/ranges_algobase.h (copy_backward): Decrement
output iterator before assigning one element through it.
* testsuite/25_algorithms/copy/108846.cc: Ensure the algorithm's
effects are correct for a single memcpyable element.
* testsuite/25_algorithms/copy_backward/108846.cc: Likewise.
* testsuite/25_algorithms/copy_n/108846.cc: Likewise.
2025-04-16 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Backported from master:
2024-09-13 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
PR libstdc++/108846
PR libstdc++/116471
* include/bits/ranges_algobase.h (__assign_one): New helper
function.
(__copy_or_move): Remove a spurious static_assert; use
__assign_one for memcpyable ranges of length 1.
(__copy_or_move_backward): Likewise.
* testsuite/25_algorithms/copy/108846.cc: Extend to range-based
algorithms, and cover both memcpyable and non-memcpyable
cases.
* testsuite/25_algorithms/copy_backward/108846.cc: Likewise.
* testsuite/25_algorithms/copy_n/108846.cc: Likewise.
* testsuite/25_algorithms/move/108846.cc: Likewise.
* testsuite/25_algorithms/move_backward/108846.cc: Likewise.
2025-04-16 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-07 Jonathan Wakely <jwakely@redhat.com>
* include/bits/ranges_algobase.h: Include <bits/stl_algobase.h>.
2025-04-15 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-10 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-07 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115285
* include/bits/hashtable.h (_Hashtable::_S_forward_key): Remove.
(_Hashtable::_M_insert_unique_aux): Replace _S_forward_key with
a static_cast to a type defined using conditional_t.
(_Hashtable::_M_insert): Replace _ConvertToValueType with a
static_cast to a type defined using conditional_t.
* include/bits/hashtable_policy.h (_ConvertToValueType): Remove.
* testsuite/23_containers/unordered_map/insert/115285.cc: New test.
* testsuite/23_containers/unordered_set/insert/115285.cc: New test.
* testsuite/23_containers/unordered_set/96088.cc: Adjust
expected number of allocations.
2025-04-10 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-07 Jonathan Wakely <jwakely@redhat.com>
* include/bits/stl_pair.h (__is_pair): Define for C++11 and
C++14 as well.
2025-04-10 François Dumont <frs.dumont@gmail.com>
Backported from master:
2024-10-24 François Dumont <frs.dumont@gmail.com>
* testsuite/23_containers/unordered_map/96088.cc (test03): Fix increments
value when _GLIBCXX_USE_CXX11_ABI is equal to 0.
2025-04-10 François Dumont <frs.dumont@gmail.com>
Backported from master:
2024-10-23 François Dumont <frs.dumont@gmail.com>
PR libstdc++/115285
* include/bits/hashtable.h (_S_forward_key<_Kt>): Always return a temporary
key_type instance.
* testsuite/23_containers/unordered_map/96088.cc: Adapt to additional instanciation.
Also check that mapped_type is not instantiated when there is no insertion.
* testsuite/23_containers/unordered_multimap/96088.cc: Adapt to additional
instanciation.
* testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
* testsuite/23_containers/unordered_set/96088.cc: Likewise.
* testsuite/23_containers/unordered_set/pr115285.cc: New test case.
2025-04-09 Patrick Palka <ppalka@redhat.com>
Backported from master:
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>
Backported from master:
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-08 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2025-04-07 Jonathan Wakely <jwakely@redhat.com>
* doc/doxygen/user.cfg.in (INPUT): Add text_encoding.
2025-04-08 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-08 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-04-07 Patrick Palka <ppalka@redhat.com>
Backported from master:
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-04-03 Tomasz Kamiński <tkaminsk@redhat.com>
Backported from master:
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 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-04-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-04-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-04-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-04-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2025-03-28 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117983
* include/bits/vector.tcc (vector::_M_range_insert): Add
unreachable condition to tell the compiler begin() <= end().
* testsuite/23_containers/vector/modifiers/insert/117983.cc: New
test.
2025-04-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116212
* testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
Use unsigned for vector size.
2025-04-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-13 Jonathan Wakely <jwakely@redhat.com>
* include/bits/ranges_base.h (range_common_reference_t): New
alias template, as per LWG 3860.
* testsuite/std/ranges/range.cc: Check it.
2025-04-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-04-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-04-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-31 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-31 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2025-03-04 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/test.xml: Remove stray comma.
* doc/html/manual/test.html: Regenerate.
2025-03-31 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-31 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-31 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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::_M_range_initialize(FwIt, FwIt, forward_iterator_tag)):
Use _M_range_initialize_n.
(vector::_M_range_initialize_n): New function.
* testsuite/23_containers/vector/cons/108487.cc: New test.
2025-03-31 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2025-03-27 Jonathan Wakely <jwakely@redhat.com>
* src/c++20/tzdata.zi: Import new file from 2025b release.
2025-03-31 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-26 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-26 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-03-26 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-26 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-08-23 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115939
* include/bits/hashtable_policy.h (_Node_iterator): Add
operator== and operator!=.
(_Node_const_iterator): Likewise.
* testsuite/23_containers/unordered_map/115939.cc: New test.
2025-03-25 Patrick Palka <ppalka@redhat.com>
Backported from master:
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-21 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-21 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2025-03-20 Jakub Jelinek <jakub@redhat.com>
* testsuite/18_support/numeric_limits/traps.cc (main): Fix comment
typo.
2025-03-21 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2025-03-19 Jonathan Wakely <jwakely@redhat.com>
* include/bits/locale_facets_nonio.tcc (time_put::do_put): Fix
typo in comment.
2025-03-18 Patrick Palka <ppalka@redhat.com>
Backported from master:
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-03-05 Tomasz Kamiński <tkaminsk@redhat.com>
Backported from master:
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-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2025-02-20 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/118811
* src/c++20/tzdb.cc (tzdb_list::_Node): Move definitions of
static data members to new header.
* src/c++20/tzdb_globals.h: New header. Use init_priority
attribute on static data members.
* testsuite/std/time/tzdb_list/pr118811.cc: New test.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-08-23 Jonathan Wakely <jwakely@redhat.com>
* include/std/tuple: Do not include implementation details in
Doxygen documentation.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2025-02-27 Jonathan Wakely <jwakely@redhat.com>
* include/std/stacktrace (_Impl::_M_allocate): Fix outdated
comment.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-03 Jonathan Wakely <jwakely@redhat.com>
* include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
Use __detail::__get_temporary_buffer.
(basic_stacktrace::_Impl::_M_deallocate): Use
__detail::__return_temporary_buffer.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-03 Jonathan Wakely <jwakely@redhat.com>
* include/std/string_view (starts_with(basic_string_view)):
Compare lengths first and then call traits_type::compare
directly.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-28 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/104395
* include/bits/new_allocator.h: Disable extended alignment
support in C++98 mode.
* include/bits/stl_tempbuf.h: Likewise.
* include/ext/bitmap_allocator.h: Likewise.
* include/ext/malloc_allocator.h: Likewise.
* include/ext/mt_allocator.h: Likewise.
* include/ext/pool_allocator.h: Likewise.
* testsuite/ext/104395.cc: New test.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-19 Jonathan Wakely <jwakely@redhat.com>
* include/bits/stl_tempbuf.h (__get_temporary_buffer): Cast
argument to size_t to handle negative values and suppress
-Wsign-compare warning.
(_Temporary_buffer): Move diagnostic pragmas to new location of
call to std::get_temporary_buffer.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-03 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/105258
* include/bits/stl_tempbuf.h (__detail::__get_temporary_buffer):
New function to do allocation for get_temporary_buffer, with
extended alignment support.
(__detail::__return_temporary_buffer): Support extended
alignment.
(get_temporary_buffer): Use __get_temporary_buffer.
(return_temporary_buffer): Support extended alignment. Add
deprecated attribute.
(_Temporary_buffer): Move allocation and deallocation into a
subobject and remove try-catch block in constructor.
(__uninitialized_construct_buf): Use argument deduction for
value type.
* testsuite/20_util/temporary_buffer.cc: Add dg-warning for new
deprecated warning.
* testsuite/25_algorithms/stable_sort/overaligned.cc: New test.
2025-02-28 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Backported from master:
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-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-21 Jonathan Wakely <jwakely@redhat.com>
* include/bits/stl_uninitialized.h (uninitialized_default_construct)
(uninitialized_default_construct_n, uninitialized_value_construct)
(uninitialized_value_construct_n): Qualify calls to prevent ADL.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-18 Jonathan Wakely <jwakely@redhat.com>
* include/bits/basic_string.h (__to_wstring_numeric): Add 'i'
and 'I' to mapping.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-09 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117921
* testsuite/23_containers/set/modifiers/swap/adl.cc: Add
equality comparison for Allocator.
* testsuite/23_containers/unordered_set/modifiers/swap-2.cc:
Likewise.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-05 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117921
* include/bits/hashtable_policy.h (_Hash_code_base::_M_swap):
Use ADL swap for Hash members.
(_Hashtable_base::_M_swap): Use ADL swap for _Equal members.
* include/bits/stl_tree.h (_Rb_tree::swap): Use ADL swap for
_Compare members.
* testsuite/23_containers/set/modifiers/swap/adl.cc: New test.
* testsuite/23_containers/unordered_set/modifiers/swap-2.cc: New
test.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-27 Jonathan Wakely <jwakely@redhat.com>
* include/bits/forward_list.h (forward_list::front): Add
non-empty assertions.
* include/bits/stl_list.h (list::front, list::back): Add
non-empty assertions.
2025-02-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-29 Patrick Palka <ppalka@redhat.com>
Backported from master:
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 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Backported from master:
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>
Backported from master:
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-16 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-27 Jonathan Wakely <jwakely@redhat.com>
* include/bits/istream.tcc: Add diagnostic pragmas around uses
of long long and extern template.
* include/bits/locale_facets.h: Likewise.
* include/bits/locale_facets.tcc: Likewise.
* include/bits/locale_facets_nonio.tcc: Likewise.
* include/bits/ostream.tcc: Likewise.
* include/bits/stl_algobase.h: Likewise.
* include/c_global/cstdlib: Likewise.
* include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
Likewise.
* include/ext/pointer.h: Likewise.
* include/ext/stdio_sync_filebuf.h: Likewise.
* include/std/istream: Likewise.
* include/std/ostream: Likewise.
* include/tr1/cmath: Likewise.
* include/tr1/type_traits: Likewise.
* include/tr1/functional_hash.h: Likewise. Remove semi-colons
at namespace scope that aren't needed after macro expansion.
* include/tr1/tuple: Remove semi-colon at namespace scope.
* include/bits/vector.tcc: Change LL suffix to just L.
2025-01-16 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-12 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
Backported from master:
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>
Backported from master:
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 Tamar Christina <tamar.christina@arm.com>
* include/bits/hashtable.h (find): Add inline keyword.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-10 Jonathan Wakely <jwakely@redhat.com>
* include/bits/memory_resource.h (polymoprhic_allocator): Use
feature test macro for P0339R6 features.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-08-23 Jonathan Wakely <jwakely@redhat.com>
* include/bits/alloc_traits.h: Improve doxygen docs for
allocator_traits specializations.
* include/bits/memory_resource.h: Likewise.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-21 Jonathan Wakely <jwakely@redhat.com>
* include/bits/memory_resource.h (polymorphic_allocator::destroy):
Remove deprecated attribute.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-05-15 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/89624
* include/bits/atomic_base.h (memory_order): Use int as
underlying type.
* testsuite/29_atomics/atomic/89624.cc: New test.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-12 Jonathan Wakely <jwakely@redhat.com>
* src/c++17/fs_dir.cc: Fix typo in comment.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-11 Jonathan Wakely <jwakely@redhat.com>
* include/std/ostream (println): Pass stream's locale to
std::format, as per LWG 4088.
* testsuite/27_io/basic_ostream/print/1.cc: Check std::println
with custom locale. Remove unused brit_punc class.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-30 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/using_exceptions.xml: Fix typos and grammatical
errors.
* doc/html/manual/using_exceptions.html: Regenerate.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-05-14 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/strings.xml: Clarify that GCC 4.5 added
std::string::shrink_to_fit.
* doc/html/manual/strings.html: Regenerate.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-27 Jonathan Wakely <jwakely@redhat.com>
* include/bits/c++config (__glibcxx_assert): Remove useless
__builtin_expect from constexpr-only assertion. Improve
comments.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-03 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/108236
* include/pstl/glue_numeric_impl.h (exclusive_scan): Pass __init
as rvalue.
* include/pstl/numeric_impl.h (__brick_transform_scan): Do not
write through __result until after reading through __first. Move
__init into return value.
(__pattern_transform_scan): Pass __init as rvalue.
* include/std/numeric (exclusive_scan): Move construct instead
of copy constructing.
* testsuite/26_numerics/exclusive_scan/2.cc: New test.
* testsuite/26_numerics/pstl/numeric_ops/108236.cc: New test.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-09 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117962
* include/debug/safe_container.h: Make allocator-extended move
constructor a no-op during constant evaluation.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-11 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/109517
PR libstdc++/109976
* include/debug/helper_functions.h (__valid_range_aux): Treat
all input iterator ranges as valid during constant evaluation.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-11 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/106212
* include/std/array (operator==): Use std::__equal_aux1 instead
of std::equal.
* testsuite/23_containers/array/comparison_operators/106212.cc:
New test.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-11 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117966
* include/std/span (span(T (&)[N])): Do not delegate to
constructor that performs redundant checks.
(span(array<T, N>&), span(const array<T, N>&)): Likewise.
(span(Range&&), span(const span<T, N>&)): Likewise.
* testsuite/23_containers/span/117966.cc: New test.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-17 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/118035
* include/bits/deque.tcc (_M_range_insert_aux): Return
immediately if inserting an empty range.
* testsuite/23_containers/deque/modifiers/insert/118035.cc: New
test.
2025-01-09 Patrick Palka <ppalka@redhat.com>
Backported from master:
2024-12-13 Patrick Palka <ppalka@redhat.com>
PR libstdc++/112349
* include/bits/ranges_algo.h (__min_fn::operator()): Turn local
object __tmp into a reference.
* include/bits/ranges_util.h (__max_fn::operator()): Likewise.
* testsuite/25_algorithms/max/constrained.cc (test04): New test.
* testsuite/25_algorithms/min/constrained.cc (test04): New test.
2025-01-09 Patrick Palka <ppalka@redhat.com>
Backported from master:
2024-11-14 Patrick Palka <ppalka@redhat.com>
* include/std/ranges (keys_view): Adjust as per LWG 3563.
(values_view): Likewise.
* testsuite/std/ranges/adaptors/elements.cc (test08): New test.
2025-01-09 Patrick Palka <ppalka@redhat.com>
Backported from master:
2024-10-29 Patrick Palka <ppalka@redhat.com>
PR libstdc++/112641
* include/std/ranges (drop_view::begin): Reimplement const
overload so that it's O(1) always.
* testsuite/std/ranges/adaptors/drop.cc (test10): New test.
2025-01-09 Gerald Pfeifer <gerald@pfeifer.com>
Backported from master:
2024-08-17 Gerald Pfeifer <gerald@pfeifer.com>
* doc/xml/manual/abi.xml: Update reference to
gcc.gnu.org/onlinedocs.
* doc/xml/manual/concurrency_extensions.xml (interface): Ditto.
* doc/xml/manual/extensions.xml: Ditto.
* doc/xml/manual/parallel_mode.xml: Ditto.
* doc/xml/manual/shared_ptr.xml: Ditto.
* doc/xml/manual/using_exceptions.xml: Ditto. And change GNU GCC
to GCC.
* doc/html/index.html: Regenerate.
* doc/html/manual/abi.html: Ditto.
* doc/html/manual/ext_concurrency_impl.html: Ditto.
* doc/html/manual/ext_demangling.html: Ditto.
* doc/html/manual/memory.html: Ditto.
* doc/html/manual/parallel_mode_design.html: Ditto.
* doc/html/manual/parallel_mode_using.html: Ditto.
* doc/html/manual/using_exceptions.html: Ditto.
2025-01-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
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-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2025-01-08 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/evolution.xml: Replace invalid <variable>
elements with <varname>.
* doc/html/*: Regenerate.
2024-12-16 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-12-07 Jonathan Wakely <jwakely@redhat.com>
* include/std/format: Fix typo in Doxygen comment.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-22 Jonathan Wakely <jwakely@redhat.com>
* include/bits/stl_vector.h (operator<=>): Use constexpr
instead of _GLIBCXX20_CONSTEXPR macro.
2024-12-02 Jason Merrill <jason@redhat.com>
Backported from master:
2024-08-28 Jason Merrill <jason@redhat.com>
* include/std/istream: Add cast to avoid -Wsign-compare.
* include/std/stacktrace: Likewise.
2024-12-02 Jason Merrill <jason@redhat.com>
Backported from master:
2024-08-28 Jason Merrill <jason@redhat.com>
* testsuite/20_util/default_delete/void_neg.cc: Fix regexp quoting.
2024-12-02 Jason Merrill <jason@redhat.com>
Backported from master:
2024-08-28 Jason Merrill <jason@redhat.com>
* include/std/coroutine (coroutine_handle): Use nullptr instead of
0 as initializer for _M_fr_ptr.
2024-12-02 Jason Merrill <jason@redhat.com>
Backported from master:
2024-08-28 Jason Merrill <jason@redhat.com>
* include/decimal/decimal.h (_DEFINE_DECIMAL_BINARY_OP_WITH_INT):
Remove redundant semicolons.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-08-28 Jonathan Wakely <jwakely@redhat.com>
* include/experimental/io_context: Remove name of unused
parameter.
* include/experimental/socket: Add [[maybe_unused]] attribute.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-22 Jonathan Wakely <jwakely@redhat.com>
* src/c++11/cxx11-ios_failure.cc (__iosfail_type_info): Unhide
the three-arg overload of __do_upcast.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-22 Jonathan Wakely <jwakely@redhat.com>
* libsupc++/exception_ptr.h (__exception_ptr::_M_safe_bool_dummy):
Remove __attribute__((const)) from function returning void.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-08-28 Jonathan Wakely <jwakely@redhat.com>
* include/std/ranges (to): Remove unused typedef.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-07 Jonathan Wakely <jwakely@redhat.com>
* include/bits/hashtable.h (_M_insert_unique_node): Improve
comment.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-14 Jonathan Wakely <jwakely@redhat.com>
* include/bits/ranges_util.h (subrange::begin): Fix constraint,
as per LWG 3589.
* testsuite/std/ranges/subrange/lwg3589.cc: New test.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-01 Jonathan Wakely <jwakely@redhat.com>
* include/bits/unordered_map.h: Check __glibcxx_node_extract and
__glibcxx_unordered_map_try_emplace instead of __cplusplus.
* include/bits/unordered_set.h: Check __glibcxx_node_extract
instead of __cplusplus.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-11 Jonathan Wakely <jwakely@redhat.com>
* include/bits/cpp_type_traits.h (__is_byte<byte>): Guard with
__glibcxx_byte macro instead of checking __cplusplus.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-14 Jonathan Wakely <jwakely@redhat.com>
* include/bits/ranges_algo.h (__is_permutation_fn::operator()):
Short-circuit for sized ranges with different sizes, as per LWG
3560.
* include/bits/ranges_algobase.h (__equal_fn::operator()):
Likewise.
* include/bits/stl_algo.h (__is_permutation): Use if-constexpr
for random access iterator branches.
* include/bits/stl_algobase.h (__equal4): Likewise.
* testsuite/25_algorithms/equal/lwg3560.cc: New test.
* testsuite/25_algorithms/is_permutation/lwg3560.cc: New test.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-15 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/106676
* include/bits/iterator_concepts.h (__cpp17_fwd_iterator): Use
is_reference instead of is_value_reference.
rvalue references.
* include/std/ranges (transform_view:__iter_cat::_S_iter_cat):
Likewise.
(zip_transform_view::__iter_cat::_S_iter_cat): Likewise.
(adjacent_transform_view::__iter_cat::_S_iter_cat): Likewise.
(join_with_view::__iter_cat::_S_iter_cat): Likewise.
* testsuite/std/ranges/adaptors/transform.cc: Check
iterator_category when the transformation function returns an
rvalue reference type.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-27 Jonathan Wakely <jwakely@redhat.com>
* include/bits/basic_string.tcc (resize_for_overwrite): Fix
-Wsign-compare warning.
* include/bits/cow_string.h (resize_for_overwrite): Likewise.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-27 Jonathan Wakely <jwakely@redhat.com>
* include/bits/stl_bvector.h (emplace_back, emplace): Forward
parameter pack to preserve value category.
* testsuite/23_containers/vector/bool/emplace_rvalue.cc: New
test.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-07 Jonathan Wakely <jwakely@redhat.com>
* include/bits/hashtable.h: Fix spelling in comment.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-01 Jonathan Wakely <jwakely@redhat.com>
* include/bits/hashtable.h: Improve comments.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-14 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117560
* include/bits/fs_dir.h (enable_borrowed_range, enable_view):
Define specializations for directory iterators, as per LWG 3480.
* testsuite/27_io/filesystem/iterators/lwg3480.cc: New test.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-13 Jonathan Wakely <jwakely@redhat.com>
* testsuite/util/testsuite_performance.h (time_counter): Add
comment about times.
(time_counter::system_time): Use correct split value.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-13 Jonathan Wakely <jwakely@redhat.com>
* testsuite/util/testsuite_performance.h: Use
__gnu_cxx::__is_single_threaded instead of __gthread_active_p().
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-14 Jonathan Wakely <jwakely@redhat.com>
* include/bits/stl_iterator.h (operator+): Add constraint to
move_iterator operator.
* testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-28 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117822
* include/std/stacktrace (stacktrace(stacktrace&&, const A&)):
Fix typo in qualified-id for is_always_equal trait.
* testsuite/19_diagnostics/stacktrace/stacktrace.cc: Test
allocator-extended constructors and allocator propagation.
2024-12-02 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-26 Jonathan Wakely <jwakely@redhat.com>
* include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
Do not assume allocators only throw std::bad_alloc.
2024-11-12 Jonathan Wakely <jwakely@redhat.com>
* include/bits/unicode.h (_Utf_iterator::_M_read_utf16): Add
parentheses.
2024-11-12 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117520
* include/std/text_encoding (aliases_view:_Iterator::operator+=):
Fix typos that caused == to be used instead of =.
(aliases_view::_Iterator): Fix friend declaration.
* testsuite/std/text_encoding/members.cc: Adjust expected
behaviour of invalid subscript. Add tests for other erroneous
operations on iterators.
2024-11-11 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-11-08 Jonathan Wakely <jwakely@redhat.com>
* include/bits/hashtable_policy.h (_Insert_base::try_emplace):
Do not define for C++11 and C++14.
* include/debug/map.h (try_emplace): Use feature test macro.
* include/debug/unordered_map (try_emplace): Likewise.
* testsuite/17_intro/names.cc: Define try_emplace before C++17.
2024-11-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2024-11-04 Jakub Jelinek <jakub@redhat.com>
PR libstdc++/117406
* testsuite/26_numerics/headers/cmath/117406.cc: Use
std::numeric_limits<int>::max() instead of INT_MAX.
2024-11-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2024-11-02 Jakub Jelinek <jakub@redhat.com>
PR libstdc++/117406
* include/c_global/cmath (std::ilogb(_Float16), std::llrint(_Float16),
std::llround(_Float16), std::lrint(_Float16), std::lround(_Float16)):
Don't cast __builtin_* return to _Float16.
(std::ilogb(__gnu_cxx::__bfloat16_t),
std::llrint(__gnu_cxx::__bfloat16_t),
std::llround(__gnu_cxx::__bfloat16_t),
std::lrint(__gnu_cxx::__bfloat16_t),
std::lround(__gnu_cxx::__bfloat16_t)): Don't cast __builtin_* return to
__gnu_cxx::__bfloat16_t.
* testsuite/26_numerics/headers/cmath/117406.cc: New test.
2024-11-04 Jakub Jelinek <jakub@redhat.com>
Backported from master:
2024-10-29 Jakub Jelinek <jakub@redhat.com>
PR libstdc++/117321
* include/c_global/cmath (nextafter(_Float16, _Float16)): Use
if consteval rather than if (std::__is_constant_evaluated()) around
the __builtin_nextafterf16 call.
(nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)): Use
if consteval rather than if (std::__is_constant_evaluated()) around
the __builtin_nextafterf16b call.
* testsuite/26_numerics/headers/cmath/117321.cc: New test.
2024-10-22 Patrick Palka <ppalka@redhat.com>
Backported from master:
2024-10-05 Patrick Palka <ppalka@redhat.com>
* include/bits/ranges_base.h (__distance_fn::operator()):
Adjust iterator/sentinel overloads as per LWG 3664.
* testsuite/24_iterators/range_operations/distance.cc:
Test LWG 3664 example.
2024-10-22 Patrick Palka <ppalka@redhat.com>
Backported from master:
2024-10-04 Patrick Palka <ppalka@redhat.com>
* include/std/ranges (single_view::empty): Define as per LWG 4035.
(iota_view::empty): Define as per LWG 4001.
(lazy_split_view::_OuterIter::value_type): Remove default
constructor and make other constructor private as per LWG 4013.
(common_view::begin): Disable non-const overload for simple
views as per LWG 4012.
(common_view::end): Likewise.
(adjacent_view::base): Define as per LWG 3848.
(adjacent_transform_view::base): Likewise.
(chunk_view::_InnerIter::iter_move): Define as per LWG 3851.
(chunk_view::_InnerIter::itep_swap): Likewise.
(slide_view::base): Define as per LWG 3848.
(repeat_view): Adjust deduction guide as per LWG 4053.
(_Repeat::operator()): Adjust single-parameter overload as per
LWG 4054.
* testsuite/std/ranges/adaptors/adjacent/1.cc: Verify existence
of base member function.
* testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Likewise.
* testsuite/std/ranges/adaptors/chunk/1.cc: Test LWG 3851 example.
* testsuite/std/ranges/adaptors/slide/1.cc: Verify existence of
base member function.
* testsuite/std/ranges/iota/iota_view.cc: Test LWG 4001 example.
* testsuite/std/ranges/repeat/1.cc: Test LWG 4053/4054 examples.
2024-10-22 Patrick Palka <ppalka@redhat.com>
Backported from master:
2024-08-22 Patrick Palka <ppalka@redhat.com>
* testsuite/25_algorithms/contains/1.cc: Verify value of
__cpp_lib_ranges_contains.
* testsuite/25_algorithms/find_last/1.cc: Verify value of
__cpp_lib_ranges_find_last.
* testsuite/25_algorithms/iota/1.cc: Verify value of
__cpp_lib_ranges_iota.
2024-10-22 Patrick Palka <ppalka@redhat.com>
Backported from master:
2024-08-22 Patrick Palka <ppalka@redhat.com>
* include/bits/iterator_concepts.h (indirectly_unary_invocable):
Relax as per P2997R1.
(indirectly_regular_unary_invocable): Likewise.
(indirect_unary_predicate): Likewise.
(indirect_binary_predicate): Likewise.
(indirect_equivalence_relation): Likewise.
(indirect_strict_weak_order): Likewise.
* include/bits/version.def (ranges): Update value for C++26.
* include/bits/version.h: Regenerate.
* testsuite/24_iterators/indirect_callable/p2997r1.cc: New test.
* testsuite/std/ranges/version_c++23.cc: Remove.
* testsuite/std/ranges/headers/ranges/synopsis.cc: Refine the
__cpp_lib_ranges checks.
2024-10-22 Patrick Palka <ppalka@redhat.com>
Backported from master:
2024-08-22 Patrick Palka <ppalka@redhat.com>
* include/bits/iterator_concepts.h (__detail::__indirect_value):
Define.
(__indirect_value_t): Define as per P2609R3.
(iter_common_reference_t): Adjust as per P2609R3.
(indirectly_unary_invocable): Likewise.
(indirectly_regular_unary_invocable): Likewise.
(indirect_unary_predicate): Likewise.
(indirect_binary_predicate): Likewise.
(indirect_equivalence_relation): Likewise.
(indirect_strict_weak_order): Likewise.
(__detail::__projected::__type): Define member aliases
__projected_Iter and __projected_Proj providing the
template arguments of the current specialization.
* include/bits/version.def (ranges): Update value.
* include/bits/version.h: Regenerate.
* testsuite/24_iterators/indirect_callable/p2609r3.cc: New test.
* testsuite/std/ranges/version_c++23.cc: Update expected value
of __cpp_lib_ranges macro.
2024-10-16 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-16 Jonathan Wakely <jwakely@redhat.com>
* python/libstdcxx/v6/printers.py (strip_fundts_namespace): New.
(StdExpAnyPrinter, StdExpOptionalPrinter): Use it.
2024-10-16 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-26 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/90276
* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
Increase timeout for debug mode.
* testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
Likewise.
2024-10-15 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-14 Jonathan Wakely <jwakely@redhat.com>
* include/std/ranges (transform_view:_Iterator): Use const F&
to determine value_type and iterator_category of
_Iterator<true>, as per LWG 3564.
* testsuite/std/ranges/adaptors/transform.cc: Check value_type
and iterator_category.
2024-10-15 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-11 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117085
* include/bits/chrono_io.h (__formatter_chrono::_M_c): Add L
option to format string.
* testsuite/std/time/format.cc: Move to...
* testsuite/std/time/format/format.cc: ...here.
* testsuite/std/time/format/pr117085.cc: New test.
2024-10-15 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-09 Jonathan Wakely <jwakely@redhat.com>
* include/bits/chrono_io.h (__formatter_chrono::_M_c): Add
[[unlikely]] attribute to condition for missing %c format in
locale. Use %T instead of %H:%M:%S in fallback.
2024-10-15 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-14 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117135
* config/locale/generic/time_members.cc
(__timepunct<wchar_t>::_M_initialize_timepunc): Set
_M_date_time_format for C locale. Set %Ex formats to the same
values as the %x formats.
2024-10-15 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-14 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/117094
* include/bits/ranges_algobase.h (__fill_fn): Use std::move for
iterator that might not be copyable.
* testsuite/25_algorithms/fill/constrained.cc: Check
non-copyable iterator with sized sentinel.
2024-10-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-08-23 Jonathan Wakely <jwakely@redhat.com>
PR c++/116369
* include/debug/safe_base.h (_Safe_sequence_base::_M_iterators):
Add mutable specifier.
(_Safe_sequence_base::_M_const_iterators): Likewise.
2024-10-03 Kim Gräsman <kim.grasman@gmail.com>
Backported from master:
2024-08-28 Kim Gräsman <kim.grasman@gmail.com>
* include/bits/cpp_type_traits.h: Improve doxygen file docs.
2024-10-03 Kim Gräsman <kim.grasman@gmail.com>
Backported from master:
2024-08-28 Kim Gräsman <kim.grasman@gmail.com>
* config/cpu/aarch64/opt/ext/opt_random.h: Improve doxygen file
docs.
* config/cpu/i486/opt/ext/opt_random.h: Likewise.
2024-10-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-08-28 Jonathan Wakely <jwakely@redhat.com>
* configure.ac: Fix check for O_NONBLOCK.
* config.h.in: Regenerate.
* configure: Regenerate.
2024-10-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-26 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116857
* libsupc++/guard.cc (__cxa_guard_acquire): Remove
_GLIBCXX_NOTHROW to match declaration in <cxxabi.h>.
2024-10-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-27 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/37475
* config/locale/gnu/codecvt_members.cc (Guard): New RAII type.
(do_out, do_in): Return partial if the destination is empty but
the source is not. Use Guard to restore locale on scope exit.
Return immediately on any conversion error.
(do_encoding, do_max_length, do_length): Use Guard.
* testsuite/22_locale/codecvt/in/char/37475.cc: New test.
* testsuite/22_locale/codecvt/in/wchar_t/37475.cc: New test.
* testsuite/22_locale/codecvt/out/char/37475.cc: New test.
* testsuite/22_locale/codecvt/out/wchar_t/37475.cc: New test.
2024-10-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-10-02 Jonathan Wakely <jwakely@redhat.com>
* config/locale/dragonfly/time_members.cc
(__timepunct<char>::_M_initialize_timepunc)
(__timepunct<wchar_t>::_M_initialize_timepunc): Set
_M_date_time_format for C locale. Set %Ex formats to the same
values as the %x formats.
* config/locale/generic/time_members.cc: Likewise.
* config/locale/gnu/time_members.cc: Likewise.
* testsuite/22_locale/time_get/get/char/5.cc: New test.
* testsuite/22_locale/time_get/get/wchar_t/5.cc: New test.
2024-10-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-26 Jonathan Wakely <jwakely@redhat.com>
* include/bits/cow_string.h (__resize_for_overwrite): Add
inline keyword to function with always_inline attribute.
2024-10-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-26 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/90276
* testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
[_GLIBCXX_DEBUG]: Add xfail-run-if for debug mode.
* testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
[_GLIBCXX_DEBUG]: Reduce size of test data.
* testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
Likewise.
2024-10-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-22 Jonathan Wakely <jwakely@redhat.com>
* include/std/format (__format::__is_formattable_integer): New
variable template and specializations.
(template<integral, __char> struct formatter): Replace
constraints on first arg with __is_formattable_integer.
* testsuite/std/format/formatter/requirements.cc: Check that
std::formatter specializations for char8_t and const int are
disabled.
2024-10-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-22 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116755
* include/bits/chrono_io.h (formatter<duration<R,P>>::format):
Cast negative integral durations to unsigned rep.
* testsuite/20_util/duration/io.cc: Test the most negative
integer durations.
2024-09-23 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-20 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116529
* include/bits/unique_ptr.h (unique_ptr(auto_ptr<U>&&)):
Use pointer instead of T*.
* testsuite/20_util/unique_ptr/creation/116529.cc: New test.
2024-09-23 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-22 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116754
* include/bits/ranges_algobase.h (__copy_or_move): Fix order of
arguments to __memcpyable.
2024-09-23 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-20 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116777
* doc/xml/manual/using.xml: Document features that are not
supported for the gcc4-compatible ABI.
* doc/html/manual/using_dual_abi.html: Regenerate.
2024-09-23 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-08-23 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/108619
* include/bits/alloc_traits.h (__allocator_traits_base): Add
variable templates for detecting whether the allocator has a
construct member, or if placement new can be used instead.
(allocator_traits::__construct_helper): Remove.
(allocator_traits::__has_construct): Remove.
(allocator_traits::construct): Use 'if constexpr' instead of
dispatching to overloads constrained with enable_if.
(allocator_traits<allocator<T>>::construct): Use _Construct if
construct_at is not supported. Use
__is_nothrow_new_constructible for noexcept-specifier.
(allocator_traits<allocator<void>>::construct): Use
__is_nothrow_new_constructible for noexcept-specifier.
* include/bits/new_allocator.h (construct): Likewise.
* include/ext/malloc_allocator.h (construct): Likewise.
* include/std/type_traits (__is_nothrow_new_constructible): New
variable template.
* testsuite/20_util/allocator/89510.cc: Adjust expected results.
* testsuite/ext/malloc_allocator/89510.cc: Likewise.
* testsuite/ext/new_allocator/89510.cc: Likewise.
* testsuite/20_util/allocator_traits/members/108619.cc: New test.
2024-09-11 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-10 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116159
* include/std/iostream (ios_base_library_init): Only define for
ELF targets.
* src/c++98/ios_init.cc (ios_base_library_init): Likewise.
2024-09-11 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-10 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116641
* include/bits/basic_string.h (operator=(basic_string&&)): Call
_M_assign instead of assign.
* testsuite/21_strings/basic_string/allocator/116641.cc: New
test.
2024-09-10 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-26 Jonathan Wakely <jwakely@redhat.com>
* src/c++20/tzdb.cc (minmax_year, minmax_year2): Remove.
(years_from_to): New class replacing minmax_year and
minmax_year2.
(format_abbrev_str, select_std_or_dst_abbrev): Move earlier in
the file. Handle "-" for letters.
(ZoneInfo::to): Use format_abbrev_str to expand %z.
(ZoneInfo::set_abbrev): Remove exception. Change parameter from
reference to value.
(operator>>(istream&, Rule&)): Do not clear letters when it
contains "-".
(time_zone::_M_get_sys_info): Add missing logic to find the Rule
in effect before the time point.
* testsuite/std/time/tzdb/1.cc: Adjust for vanguard format using
"GMT" as the Zone name, not as a Link to "Etc/GMT".
* testsuite/std/time/time_zone/sys_info_abbrev.cc: New test.
2024-09-08 Patrick Palka <ppalka@redhat.com>
Backported from master:
2024-08-03 Patrick Palka <ppalka@redhat.com>
* include/bits/move.h (__like_impl): New metafunction.
(__like_t): Redefine in terms of __like_impl.
(forward_like): Redefine in terms of __like_t.
* testsuite/20_util/forward_like/2_neg.cc: Don't expect
error outside the immediate context anymore.
2024-09-04 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-03 Jonathan Wakely <jwakely@redhat.com>
* src/c++17/fs_ops.cc (auto_win_file_handle): Add error_code&
member and set it if CreateFileW or GetFileInformationByHandle
fails.
(fs::equiv_files) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Simplify
control flow.
(fs::hard_link_count) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Clear ec
on success.
* testsuite/27_io/filesystem/operations/hard_link_count.cc:
Check error handling.
2024-09-04 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-07-30 Jonathan Wakely <jwakely@redhat.com>
* src/c++17/fs_ops.cc (auto_win_file_handle): Change constructor
parameter from const path& to const wchar_t*.
(fs::equiv_files): New function.
(fs::equivalent): Use equiv_files.
* src/filesystem/ops-common.h (fs::equiv_files): Declare.
(do_copy_file): Use equiv_files.
* src/filesystem/ops.cc (fs::equiv_files): Define.
(fs::copy, fs::equivalent): Use equiv_files.
* testsuite/27_io/filesystem/operations/copy.cc: Test
overwriting directory contents recursively.
* testsuite/27_io/filesystem/operations/copy_file.cc: Test
overwriting existing files.
2024-09-04 Lennox Shou Hao Ho <lennoxhoe@gmail.com>
Backported from master:
2024-07-30 Lennox Shou Hao Ho <lennoxhoe@gmail.com>
PR libstdc++/113663
* src/c++17/fs_ops.cc (fs::equivalent): Moved helper class
auto_handle to anonymous namespace as auto_win_file_handle.
(fs::hard_link_count): Changed Windows implementation to use
information provided by GetFileInformationByHandle which is more
reliable.
* testsuite/27_io/filesystem/operations/hard_link_count.cc: New
test.
2024-09-04 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-09-03 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116549
* include/bits/stl_iterator.h (disable_sized_sentinel_for):
Define specialization for two move_iterator types, as per LWG
3736.
* testsuite/24_iterators/move_iterator/lwg3736.cc: New test.
2024-09-04 Dhruv Chawla <dhruvc@nvidia.com>
Backported from master:
2024-09-03 Dhruv Chawla <dhruvc@nvidia.com>
* include/std/deque: Define macro
__glibcxx_want_allocator_traits_is_always_equal.
* include/std/forward_list: Likewise.
* include/std/list: Likewise.
* include/std/map: Likewise.
* include/std/scoped_allocator: Likewise.
* include/std/set: Likewise.
* include/std/string: Likewise.
* include/std/unordered_map: Likewise.
* include/std/unordered_set: Likewise.
* include/std/vector: Likewise.
* testsuite/20_util/headers/memory/version.cc: New test.
* testsuite/20_util/scoped_allocator/version.cc: Likewise.
* testsuite/21_strings/headers/string/version.cc: Likewise.
* testsuite/23_containers/deque/version.cc: Likewise.
* testsuite/23_containers/forward_list/version.cc: Likewise.
* testsuite/23_containers/list/version.cc: Likewise.
* testsuite/23_containers/map/version.cc: Likewise.
* testsuite/23_containers/set/version.cc: Likewise.
* testsuite/23_containers/unordered_map/version.cc: Likewise.
* testsuite/23_containers/unordered_set/version.cc: Likewise.
* testsuite/23_containers/vector/version.cc: Likewise.
2024-09-04 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-08-21 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116381
* include/std/variant (variant): Fix conditions for
static_assert to match the spec.
* testsuite/20_util/variant/types_neg.cc: New test.
2024-08-03 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-21 Jonathan Wakely <jwakely@redhat.com>
* include/bits/version.def (chrono): Add cxx11abi = yes.
* include/bits/version.h: Regenerate.
* testsuite/std/time/syn_c++20.cc: Adjust expected value for
the feature test macro.
2024-08-02 Patrick Palka <ppalka@redhat.com>
Backported from master:
2024-07-25 Patrick Palka <ppalka@redhat.com>
PR libstdc++/116038
* include/std/functional (_Bind_front::operator()): Use __like_t
instead of std::forward when forwarding __self.
(_Bind_back::operator()): Likewise.
* include/std/ranges (_Partial::operator()): Likewise.
(_Pipe::operator()): Likewise.
* testsuite/20_util/function_objects/bind_back/116038.cc: New test.
* testsuite/20_util/function_objects/bind_front/116038.cc: New test.
* testsuite/std/ranges/adaptors/116038.cc: New test.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-05-22 Jonathan Wakely <jwakely@redhat.com>
* include/bits/locale_classes.h (locale::combine)
(locale::name, locale::operator==, locale::operator!=)
(locale::operator(), locale::classic): Add nodiscard
attribute.
* include/bits/locale_classes.tcc (has_facet, use_facet):
Likewise.
* testsuite/22_locale/locale/cons/12438.cc: Add dg-warning for
nodiscard diagnostic.
* testsuite/22_locale/locale/cons/2.cc: Cast use_facet
expression to void, to suppress diagnostic.
* testsuite/22_locale/locale/cons/unicode.cc: Likewise.
* testsuite/22_locale/locale/operations/2.cc: Add dg-warning.
2024-08-01 Deev Patel <dkp10000@gmail.com>
Backported from master:
2024-06-08 Deev Patel <dkp10000@gmail.com>
Jonathan Wakely <jwakely@redhat.com>
* include/bits/atomic_base.h (__atomic_impl::__clear_padding):
Add missing constexpr specifier.
* testsuite/29_atomics/atomic_float/constinit.cc: New test.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-21 Jonathan Wakely <jwakely@redhat.com>
* testsuite/util/testsuite_allocator.h (tracker_allocator):
Initialize base class in copy constructor.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-12 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115399
* include/tr2/dynamic_bitset (operator>>=): Remove redundant
call to _M_do_sanitize.
* include/tr2/dynamic_bitset.tcc (_M_do_left_shift): Zero out
low bits in words that should no longer be populated.
(_M_do_right_shift): Likewise for high bits.
* testsuite/tr2/dynamic_bitset/pr115399.cc: New test.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-07-25 Jonathan Wakely <jwakely@redhat.com>
* include/std/format (basic_format_args): Remove default
constructor, as per LWG 4106.
* testsuite/std/format/arguments/args.cc: Check it isn't default
constructible.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-07-10 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114387
* include/std/format (basic_format_context): Define copy
operations as deleted, as per LWG 4061.
* testsuite/std/format/context.cc: New test.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-21 Jonathan Wakely <jwakely@redhat.com>
* include/std/any (any_cast(any*), any_cast(const any*)): Add
static assertion to reject void types, as per LWG 3305.
* testsuite/20_util/any/misc/lwg3305.cc: New test.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-08 Jonathan Wakely <jwakely@redhat.com>
* include/std/algorithm: Define __glibcxx_want_ranges.
* testsuite/25_algorithms/headers/algorithm/synopsis.cc: Check
feature test macro in C++20 mode.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-07-10 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115854
* include/bits/stl_bvector.h (_Bvector_base): Convert allocator
to rebound type explicitly.
* testsuite/23_containers/vector/allocator/115854.cc: New test.
* testsuite/23_containers/vector/bool/allocator/115854.cc: New test.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-13 Jonathan Wakely <jwakely@redhat.com>
* include/bits/ranges_base.h (const_iterator_t): Change
preprocessor condition to use __glibcxx_ranges_as_const.
(const_sentinel_t, range_const_reference_t): Likewise.
(__access::__possibly_const_range, cbegin, cend, crbegin)
(crend, cdata): Likewise.
* include/bits/stl_iterator.h (iter_const_reference_t)
(basic_const_iterator, const_iterator, const_sentinel)
(make_const_iterator): Likewise.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-07-06 Jonathan Wakely <jwakely@redhat.com>
* include/std/variant (_Variant_storage::_M_reset): Use
__unlikely__ form of attribute instead of unlikely.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-07-24 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116070
* include/std/istream: Check feature test macro before using
is_class_v and is_same_v.
* include/std/ostream: Likewise.
2024-08-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-07-24 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/116070
* include/bits/stl_bvector.h: Check feature test macro before
using is_default_constructible_v.
2024-08-01 Release Manager
* GCC 14.2.0 released.
2024-07-23 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-07-23 Jonathan Wakely <jwakely@redhat.com>
* src/c++23/print.cc (__open_terminal): Use [[maybe_unused]] on
parameter.
2024-07-23 Detlef Vollmann <dv@vollmann.ch>
Backported from master:
2024-07-23 Detlef Vollmann <dv@vollmann.ch>
PR libstdc++/115482
* src/c++23/print.cc (__open_terminal) [__AVR__]: Do not use
isatty.
2024-07-12 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-13 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113376
* include/pstl/pstl_config.h: Use #if instead of #ifdef to test
the _PSTL_USAGE_WARNINGS macro.
2024-07-12 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-21 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115522
* include/std/array (to_array): Workaround the fact that
std::is_trivial is not sufficient to check that a type is
trivially default constructible and assignable.
* testsuite/23_containers/array/creation/115522.cc: New test.
2024-07-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-07-08 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115807
* include/c_compatibility/stdatomic.h (_Atomic): Ensure it
refers to std::atomic in the global namespace.
* testsuite/29_atomics/headers/stdatomic.h/115807.cc: New test.
2024-07-09 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-28 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115585
* src/c++11/assert_fail.cc (__glibcxx_assert_fail): Add
definition for non-verbose builds.
2024-06-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-27 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115668
* include/bits/chrono_io.h (formatter<duration<R,P, C>::format):
Do not use chrono::abs.
* testsuite/20_util/duration/io.cc: Check formatting a duration
with unsigned rep.
2024-06-27 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-25 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/faq.xml: Replace viewcvs links with cgit links.
* doc/xml/manual/allocator.xml: Likewise.
* doc/xml/manual/mt_allocator.xml: Likewise.
* doc/html/*: Regenerate.
2024-06-27 Alexandre Oliva <oliva@adacore.com>
Backported from master:
2024-06-27 Alexandre Oliva <oliva@adacore.com>
PR libstdc++/115454
* testsuite/experimental/simd/pr115454_find_last_set.cc: Defer
to check_vect_support_and_set_flags's default dg-do action.
2024-06-25 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/status_cxx1998.xml: Remove confusing "not in
any particular release" text.
* doc/xml/manual/status_cxx2011.xml: Likewise.
* doc/xml/manual/status_cxx2014.xml: Likewise.
* doc/xml/manual/status_cxx2017.xml: Likewise.
* doc/xml/manual/status_cxx2020.xml: Likewise.
* doc/xml/manual/status_cxx2023.xml: Likewise.
* doc/xml/manual/status_cxxtr1.xml: Likewise.
* doc/xml/manual/status_cxxtr24733.xml: Likewise.
* doc/html/manual/status.html: Regenerate.
2024-06-21 Matthias Kretz <m.kretz@gsi.de>
Backported from master:
2024-06-21 Matthias Kretz <m.kretz@gsi.de>
PR libstdc++/115575
* testsuite/experimental/simd/pr115454_find_last_set.cc: Require
avx512f_runtime. Don't memcpy fixed_size masks.
2024-06-20 Matthias Kretz <m.kretz@gsi.de>
Backported from master:
2024-06-20 Matthias Kretz <m.kretz@gsi.de>
PR libstdc++/115454
* include/experimental/bits/simd_x86.h (_S_not_equal_to): Use
neq comparison instead of bitwise negation after eq.
(_S_find_last_set): Clear unused high bits before computing
bit_width.
* testsuite/experimental/simd/pr115454_find_last_set.cc: New
test.
2024-06-14 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-14 Jonathan Wakely <jwakely@redhat.com>
* libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of
posix_memalign.
2024-06-10 Matthias Kretz <m.kretz@gsi.de>
Backported from master:
2024-06-04 Matthias Kretz <m.kretz@gsi.de>
PR libstdc++/115308
* include/experimental/bits/simd.h (__int_for_sizeof): Remove
special cases for __clang__.
(_SimdWrapper): Change constructor overload set to allow
conversion from vector types with integral conversions via bit
reinterpretation.
2024-06-10 Matthias Kretz <m.kretz@gsi.de>
Backported from master:
2024-05-29 Matthias Kretz <m.kretz@gsi.de>
PR libstdc++/115247
* include/experimental/bits/simd.h (__as_vector): Don't use
vector_size(8) on __i386__.
(__vec_shuffle): Never return MMX vectors, widen to 16 bytes
instead.
(concat): Fix padding calculation to pick up widening logic from
__as_vector.
2024-06-10 Matthias Kretz <m.kretz@gsi.de>
Backported from master:
2024-05-13 Matthias Kretz <m.kretz@gsi.de>
PR libstdc++/114958
* include/experimental/bits/simd.h (__as_vector): Return scalar
simd as one-element vector. Return vector from single-vector
fixed_size simd.
(__vec_shuffle): New.
(__extract_part): Adjust return type signature.
(split): Use __extract_part for any split into non-fixed_size
simds.
(concat): If the return type stores a single vector, use
__vec_shuffle (which calls __builtin_shufflevector) to produce
the return value.
* include/experimental/bits/simd_builtin.h
(__shift_elements_right): Removed.
(__extract_part): Return single elements directly. Use
__vec_shuffle (which calls __builtin_shufflevector) to for all
non-trivial cases.
* include/experimental/bits/simd_fixed_size.h (__extract_part):
Return single elements directly.
* testsuite/experimental/simd/pr114958.cc: New test.
2024-06-04 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-04 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115335
* include/std/span (span::at): Guard with feature test macro.
2024-06-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Backported from master:
2024-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR libstdc++/111641
* src/libbacktrace/Makefile.am (AM_CFLAGS): Add -funwind-tables.
* src/libbacktrace/Makefile.in: Regenerate.
* testsuite/19_diagnostics/stacktrace/current.cc (dg-options): Add
-funwind-tables.
* testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
* testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
* testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
* testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2024-06-03 François Dumont <frs.dumont@gmail.com>
Backported from master:
2024-06-03 François Dumont <frs.dumont@gmail.com>
PR libstdc++/109849
* include/bits/vector.tcc
(std::vector<>::_M_range_insert(iterator, _FwdIt, _FwdIt,
forward_iterator_tag))[__cplusplus < 201103L]: Add __builtin_unreachable
expression to tell the compiler that the allocated buffer is large enough to
receive current elements plus the elements of the range to insert.
2024-06-01 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-06-01 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115269
* doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs.
Replace list of -std=... options with a single entry for -std.
* doc/html/manual/using.html: Regenerate.
2024-05-28 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-05-22 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114940
* include/bits/version.def (generator): Depend on
__cpp_sized_deallocation.
* include/bits/version.h: Regenerate.
* include/std/stacktrace (_GLIBCXX_SIZED_DELETE): New macro.
(basic_stacktrace::_Impl::_M_deallocate): Use it.
2024-05-22 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-05-22 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115099
* include/bits/std_thread.h: Declare formatter as friend of
thread::id.
* include/std/thread (operator<<): Convert non-void pointers to
void pointers for output.
(formatter): Add constraint that thread::native_handle_type is a
pointer or integer.
(formatter::format): Reimplement without basic_ostringstream.
* testsuite/30_threads/thread/id/output.cc: Check output
compiles before <sstream> has been included.
2024-05-17 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-05-17 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115119
* include/bits/unicode.h (_Iterator::operator++(int)): Fix typo
in increment expression.
* testsuite/ext/unicode/grapheme_view.cc: Check post-increment
on view's iterator.
2024-05-14 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115015
* src/c++23/print.cc (__open_terminal(streambuf*)) [!__cpp_rtti]:
Do not use dynamic_cast.
2024-05-14 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-05-14 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/115063
* include/std/stacktrace (basic_stacktrace::max_size): Fix typo
in reference to _M_alloc member.
* testsuite/19_diagnostics/stacktrace/stacktrace.cc: Check
max_size() compiles.
2024-05-14 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-05-01 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114891
* include/std/generator: Check feature test macro before using
is_pointer_interconvertible_v.
2024-05-14 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-05-07 Jonathan Wakely <jwakely@redhat.com>
* testsuite/util/testsuite_abi.cc: Update latest versions to
new versions that should be used in future.
2024-05-14 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-05-07 Jonathan Wakely <jwakely@redhat.com>
* include/bits/unicode.h (_Unicode_view::_M_read_utf8): Ensure
count of characters consumed is correct when the end of the
input is reached unexpectedly.
* testsuite/ext/unicode/view.cc: Test incomplete UTF-8
sequences.
2024-05-14 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-05-07 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114866
* include/bits/out_ptr.h [!_GLIBCXX_HOSTED]: Don't refer to
shared_ptr, __shared_ptr or __is_shred_ptr.
* testsuite/20_util/headers/memory/114866.cc: New test.
2024-05-07 Release Manager
* GCC 14.1.0 released.
2024-05-03 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.
2024-04-30 Jonathan Wakely <jwakely@redhat.com>
Backported from master:
2024-04-30 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114863
* include/std/format (__formatter_fp::format): Only use
_M_localized for finite values.
* testsuite/std/format/functions/format.cc: Check localized
formatting of NaN and initiny.
2024-04-29 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.
2024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Backported from master:
2024-04-29 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.
2024-04-26 Jonathan Wakely <jwakely@redhat.com>
* doc/html/manual/status.html: Regenerate.
* doc/xml/manual/status_cxx1998.xml: Replace references to
mainline GCC.
* doc/xml/manual/status_cxx2011.xml: Likewise.
* doc/xml/manual/status_cxx2014.xml: Likewise.
* doc/xml/manual/status_cxx2017.xml: Likewise.
* doc/xml/manual/status_cxx2020.xml: Likewise.
* doc/xml/manual/status_cxx2023.xml: Likewise.
* doc/xml/manual/status_cxxtr1.xml: Likewise.
* doc/xml/manual/status_cxxtr24733.xml: Likewise.
2024-04-25 Jonathan Wakely <jwakely@redhat.com>
* scripts/run_doxygen: Rename man pages for nested types.
2024-04-25 Jonathan Wakely <jwakely@redhat.com>
* include/std/chrono (tzdb_list): Fix typo in Doxygen comment.
2024-04-25 Jonathan Wakely <jwakely@redhat.com>
* scripts/run_doxygen: Adjust sed pattern to match '\fR' for
new man output that Doxygen 1.10 generates.
2024-04-25 Jonathan Wakely <jwakely@redhat.com>
* doc/doxygen/stdheader.cc (init_map): Add missing headers.
* doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for
std::format and std::text_encoding.
2024-04-25 Jonathan Wakely <jwakely@redhat.com>
* include/std/variant: Add comment to #include.
2024-04-22 Matthias Kretz <m.kretz@gsi.de>
PR libstdc++/114803
* include/experimental/bits/simd_builtin.h
(_SimdBase2::operator __vector_type_t): There is no __builtin()
function in _SimdWrapper, instead use its conversion operator.
* testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
test.
2024-04-22 Matthias Kretz <m.kretz@gsi.de>
* include/experimental/bits/simd.h: Ignore -Wnarrowing for
arm_neon.h.
(__int_for_sizeof): Replace tautological compare with checking
for invalid template parameter value.
* include/experimental/bits/simd_builtin.h (__extract_part):
Remove tautological compare by combining two static_assert.
2024-04-22 Jakub Jelinek <jakub@redhat.com>
* testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*.
* testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't
define on s390.
* testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
Likewise.
* testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
Likewise.
* testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
Likewise.
* testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
Likewise.
2024-04-19 Jonathan Wakely <jwakely@redhat.com>
* include/bits/refwrap.h (operator<=>): Simplify constraints.
2024-04-19 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114770
* src/c++20/tzdb.cc (do_locate_zone): Support links that have
another link as their target.
* testsuite/std/time/tzdb/1.cc: Check that all zones and links
can be found by locate_zone.
* testsuite/std/time/tzdb/links.cc: New test.
2024-04-18 Alexandre Oliva <oliva@adacore.com>
* testsuite/29_atomics/atomic/compare_exchange_padding.cc:
Disable SRA.
2024-04-18 Alexandre Oliva <oliva@adacore.com>
* testsuite/20_util/from_chars/8.cc: Skip float128_t testing
on aarch64-vxworks.
* testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
aarch64-vxworks.
2024-04-18 Alexandre Oliva <oliva@adacore.com>
* src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define
on VxWorks non-RTP.
2024-04-17 Jonathan Wakely <jwakely@redhat.com>
* include/std/ostream (println(ostream&)): Define new overload.
* include/std/print (println(FILE*), println()): Likewise.
* testsuite/27_io/basic_ostream/print/2.cc: New test.
* testsuite/27_io/print/1.cc: Remove unused header.
* testsuite/27_io/print/3.cc: New test.
2024-04-17 Matthias Kretz <m.kretz@gsi.de>
* include/experimental/bits/numeric_traits.h: Add include guard.
2024-04-17 Matthias Kretz <m.kretz@gsi.de>
PR libstdc++/114750
* include/experimental/bits/simd_builtin.h
(_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
scalars if the memory type cannot be vectorized for the target.
2024-04-16 Jonathan Wakely <jwakely@redhat.com>
* config/locale/dragonfly/numeric_members.cc: Fix typos in
comments.
* config/locale/gnu/numeric_members.cc: Likewise.
2024-04-15 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0".
* doc/html/manual/abi.html: Regenerate.
2024-04-15 Jonathan Wakely <jwakely@redhat.com>
* include/bits/refwrap.h (reference_wrapper): Add comparison
operators as proposed by P2944R3.
* include/bits/version.def (reference_wrapper): Define.
* include/bits/version.h: Regenerate.
* include/std/functional: Enable feature test macro.
* testsuite/20_util/reference_wrapper/compare.cc: New test.
2024-04-15 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113386
* include/bits/stl_pair.h (operator==, operator<=>): Support
heterogeneous comparisons, as per LWG 3865.
* testsuite/20_util/pair/comparison_operators/lwg3865.cc: New
test.
2024-04-15 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/93672
* src/c++98/istream.cc (istream::ignore(streamsize, int_type)):
Treat all negative delimiter values as eof().
* testsuite/27_io/basic_istream/ignore/char/93672.cc: New test.
* testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New
test.
2024-04-15 Andreas Schwab <schwab@suse.de>
* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2024-04-13 H.J. Lu <hjl.tools@gmail.com>
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
Updated.
2024-04-11 Jakub Jelinek <jakub@redhat.com>
* doc/xml/manual/abi.xml: Add latest library versions.
* doc/html/manual/abi.html: Regenerate.
2024-04-11 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/m68k-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/riscv64-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2024-04-11 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114692
* config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for
__basic_file::native_handle to ...
(GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t
specialization, which isn't used.
* testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update
latest version check.
2024-04-11 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/m68k-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/riscv64-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2024-04-10 Jonathan Wakely <jwakely@redhat.com>
* testsuite/27_io/manipulators/extended/get_time/char/2.cc:
Adjust input string so that it matches %a with or without a
trailing period.
* testsuite/std/time/year_month_day/io.cc: Adjust expected
format for %x in the fr_FR locale.
2024-04-10 Jonathan Wakely <jwakely@redhat.com>
* src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]:
Check for EMLINK as well as ELOOP.
[__NetBSD__]: Check for EFTYPE as well as ELOOP.
2024-04-09 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114633
* include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use
stream extraction if std::from_chars is not available.
2024-04-08 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114519
* include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define
using char instead of char8_t.
* testsuite/ext/unicode/view.cc: Use u8""sv literals to create
string views, instead of std::u8string_view.
2024-04-08 Jonathan Wakely <jwakely@redhat.com>
* testsuite/20_util/integer_comparisons/equal_neg.cc: Use
no-opts selector for errors that depend on -fchar8_t.
* testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
Likewise.
* testsuite/20_util/integer_comparisons/greater_neg.cc:
Likewise.
* testsuite/20_util/integer_comparisons/in_range_neg.cc:
Likewise.
* testsuite/20_util/integer_comparisons/less_equal_neg.cc:
Likewise.
* testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
* testsuite/20_util/integer_comparisons/not_equal_neg.cc:
Likewise.
* testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
if -fno-char8_t is used.
* testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
Likewise.
* testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
Likewise.
* testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
Likewise.
* testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
char for u8 literal if char8_t is not available.
* testsuite/27_io/headers/iosfwd/synopsis.cc: Check
__cpp_char8_t.
* testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
* testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
Remove check for _GLIBCXX_USE_CHAR8_T.
2024-04-08 Jonathan Wakely <jwakely@redhat.com>
* testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases,
using a struct of that name if -fno-char8_t is active.
* testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
2024-04-03 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/104606
* include/std/optional (operator<=>(const optional<T>&, const U&)):
Reverse order of three_way_comparable_with template arguments.
* testsuite/20_util/optional/relops/104606.cc: New test.
2024-04-02 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114519
* include/bits/unicode.h (_Utf8_view): Guard with check for
char8_t being enabled.
(__literal_encoding_is_unicode): Guard use of char8_t with check
for it being enabled.
* testsuite/std/format/functions/114519.cc: New test.
2024-04-02 Patrick Palka <ppalka@redhat.com>
* include/std/ranges (ranges::__detail::_Empty): Rename to ...
(ranges::__detail::_Absent): ... this. Turn into a template
parameterized by the absent type _Tp and discriminator _Disc.
(ranges::__detail::__maybe_present_t): Add an optional
discriminator parameter.
(slide_view::_M_cached_begin): Pass a discriminator argument to
__maybe_present_t.
(slide_view::_M_cached_end): Likewise.
* testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of
slide_view<V> is 3 instead 4 pointers.
2024-04-02 Jakub Jelinek <jakub@redhat.com>
* acinclude.m4: Fix duplicated words; file file -> file can.
* configure.host: Fix duplicated words; the the -> the.
2024-03-29 Arsen Arsenović <arsen@aarsen.me>
* testsuite/24_iterators/range_generators/01.cc: Drop GCC
Runtime Library Exception.
* testsuite/24_iterators/range_generators/02.cc: Drop GCC
Runtime Library Exception.
* testsuite/24_iterators/range_generators/copy.cc: Drop GCC
Runtime Library Exception.
* testsuite/24_iterators/range_generators/except.cc: Drop GCC
Runtime Library Exception.
* testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
Runtime Library Exception.
* testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
Runtime Library Exception.
* testsuite/24_iterators/range_generators/iter_deref_return.cc:
Drop GCC Runtime Library Exception from the "You should have
received a copy" paragraph.
2024-03-27 Matthias Kretz <m.kretz@gsi.de>
* include/experimental/bits/simd_x86.h (_S_masked_unary):
Cast inputs < 16 bytes to 16 byte vectors before calling the
right subtraction builtin. Before returning, truncate to the
return vector type.
2024-03-27 Matthias Kretz <m.kretz@gsi.de>
* include/experimental/bits/simd_x86.h (_S_masked_unary): Call
the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
rounding direction argument.
2024-03-27 Srinivas Yadav Singanaboina <vasu.srinivasvasu.14@gmail.com>
* include/Makefile.am: Add simd_sve.h.
* include/Makefile.in: Add simd_sve.h.
* include/experimental/bits/simd.h: Add new SveAbi.
* include/experimental/bits/simd_builtin.h: Use
__no_sve_deduce_t to support existing Neon Abi.
* include/experimental/bits/simd_converter.h: Convert
sequentially when sve is available.
* include/experimental/bits/simd_detail.h: Define sve
specific macro.
* include/experimental/bits/simd_math.h: Fallback frexp
to execute sequntially when sve is available, to handle
fixed_size_simd return type that always uses sve.
* include/experimental/simd: Include bits/simd_sve.h.
* testsuite/experimental/simd/tests/bits/main.h: Enable
testing for sve128, sve256, sve512.
* include/experimental/bits/simd_sve.h: New file.
2024-03-26 Arsen Arsenović <arsen@aarsen.me>
* include/std/generator (generator::_Iterator::operator*): Fix
return type.
* testsuite/24_iterators/range_generators/iter_deref_return.cc:
New test.
2024-03-26 Arsen Arsenović <arsen@aarsen.me>
* include/std/generator: Fix _V badname.
2024-03-26 Jonathan Wakely <jwakely@redhat.com>
* testsuite/19_diagnostics/stacktrace/current.cc: Check for
__cpp_lib_stacktrace instead of check for stacktrace ET.
* testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
* testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
* testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
* testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
* testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
* testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
* testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
Likewise.
* testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
Remove.
2024-03-26 Jonathan Wakely <jwakely@redhat.com>
* testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
New proc.
* testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
New proc.
* testsuite/std/text_encoding/cons.cc: Use new directive to skip
the test if the __cpp_lib_text_encoding feature test macro is
not defined.
* testsuite/std/text_encoding/requirements.cc: Likewise.
2024-03-25 Jonathan Wakely <jwakely@redhat.com>
* testsuite/std/text_encoding/requirements.cc: #undef the
correct macro.
2024-03-23 Jonathan Wakely <jwakely@redhat.com>
* include/std/format (formatter): Disable specializations that
would allow sequences of narrow characters to be formatted as
wchar_t without conversion, as per LWG 3944.
* testsuite/std/format/formatter/lwg3944.cc: New test.
2024-03-23 Jonathan Wakely <jwakely@redhat.com>
* include/bits/utility.h (__is_in_place_index_v): New variable
template.
* include/std/variant (__not_in_place_tag): Define in terms of
variable templates not a class template.
2024-03-23 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114400
* include/std/string_view (operator==): Use std::type_identity_t
in C++20 instead of our own __type_identity_t.
2024-03-22 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114401
* include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
release() on node handle instead of just zeroing its pointer.
(_Hashtable::_M_reinsert_node_multi): Likewise.
(_Hashtable::_M_merge_unique): Likewise.
(_Hashtable::_M_merge_multi): Likewise.
* include/bits/node_handle.h (_Node_handle_common::release()):
New member function.
(_Node_handle_common::_Optional_alloc::_M_empty): Remove
unnecessary union member.
(_Node_handle_common): Declare _Hashtable as a friend.
* include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
Call release() on node handle instead of just zeroing its
pointer.
(_Rb_tree::_M_reinsert_node_equal): Likewise.
(_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
(_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
* testsuite/23_containers/multiset/modifiers/114401.cc: New test.
* testsuite/23_containers/set/modifiers/114401.cc: New test.
* testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
* testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
2024-03-22 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113841
* include/bits/allocator.h (allocator<cv T>): Add default
constructor to partial specializations for cv-qualified types.
* include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
Constrain so that it's only present if the allocator is default
constructible.
* include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
Likewise.
* testsuite/23_containers/vector/cons/113841.cc: New test.
2024-03-22 Jonathan Wakely <jwakely@redhat.com>
* include/bits/stl_construct.h (destroy_at, construct_at): Guard
with feature test macros instead of just __cplusplus.
2024-03-22 Jonathan Wakely <jwakely@redhat.com>
* include/bits/version.def (generator, tuple_like): Move earlier
in the file.
* include/bits/version.h: Regenerate.
2024-03-22 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114394
* include/std/functional (bind): Use __invoke_result_t instead
of result_of::type.
* include/std/type_traits (__invoke_result_t): New alias
template.
* testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
2024-03-20 François Dumont <fdumont@gcc.gnu.org>
* include/bits/version.def (null_iterators): Remove extra_cond.
* include/bits/version.h: Regenerate.
2024-03-19 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114359
* include/bits/random.tcc (binomial_distribution::param_type):
Ensure arithmetic is done as type double.
* testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
2024-03-19 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/101228
* include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
Define before including <tbb/task.h> then undef afterwards.
2024-03-19 Jonathan Wakely <jwakely@redhat.com>
* include/Makefile.am [MAINTAINER_MODE]: Add target to
automatically update <bits/version.h>.
* include/Makefile.in: Regenerate.
2024-03-19 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/build_hacking.xml: Document generated files.
Update list of convenience libraries and sub-directories under
the src directory.
* doc/html/*: Regenerate.
2024-03-19 Jonathan Wakely <jwakely@redhat.com>
* include/bits/text_encoding-data.h: Regenerate.
* include/bits/unicode-data.h: Regenerate.
* scripts/gen_text_encoding_data.py: Fix header of generated
file to name the correct script.
2024-03-19 Jonathan Wakely <jwakely@redhat.com>
* testsuite/util/pstl/test_utils.h: Fix typos in comments.
2024-03-19 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114367
* include/bits/stl_bvector.h (_M_allocate): Use allocator's
construct function to begin lifetime of words.
2024-03-19 Iain Sandoe <iain@sandoe.co.uk>
* testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
option for the path to the uninstalled libatomic.
2024-03-19 Iain Sandoe <iain@sandoe.co.uk>
* testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
/dev/null, use a temporary file for test executables on Darwin.
2024-03-18 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
Accept 0 offset advance on value-initialized iterator.
* testsuite/23_containers/vector/debug/n3644.cc: New test case.
2024-03-18 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_local_iterator.tcc
(_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
_M_singular checks.
* testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
2024-03-17 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/114316
* include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
First check if both iterators are value-initialized before checking if
singular.
* testsuite/23_containers/set/debug/114316.cc: New test case.
* testsuite/23_containers/vector/debug/114316.cc: New test case.
2024-03-14 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114325
* include/std/format (_Scanner::_M_scan): Pass correct length to
__to_chars_10_impl.
* testsuite/std/format/functions/format.cc: Check negative
integers with empty format-spec.
2024-03-14 Jonathan Wakely <jwakely@redhat.com>
* include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
(find_if_not, is_partitioned, partition_point, remove)
(remove_if, unique, lower_bound, upper_bound, equal_range)
(binary_search, includes, is_sorted, is_sorted_until, minmax)
(minmax_element, is_permutation, clamp, find_if, find_first_of)
(adjacent_find, count, count_if, search, search_n, min_element)
(max_element): Add nodiscard attribute.
* include/bits/stl_algobase.h (min, max, lower_bound, equal)
(lexicographical_compare, lexicographical_compare_three_way)
(mismatch): Likewise.
* include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
* testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
* testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
* testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
* testsuite/25_algorithms/find_first_of/concept_check_1.cc:
Likewise.
* testsuite/25_algorithms/is_permutation/2.cc: Likewise.
* testsuite/25_algorithms/lexicographical_compare/71545.cc:
Likewise.
* testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
Likewise.
* testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
Likewise.
* testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
Likewise.
* testsuite/25_algorithms/minmax/3.cc: Likewise.
* testsuite/25_algorithms/search/78346.cc: Likewise.
* testsuite/25_algorithms/search_n/58358.cc: Likewise.
* testsuite/25_algorithms/unique/1.cc: Likewise.
* testsuite/25_algorithms/unique/11480.cc: Likewise.
* testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
* testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
Likewise.
* testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
Likewise.
* testsuite/ext/concept_checks.cc: Likewise.
* testsuite/ext/is_heap/47709.cc: Likewise.
* testsuite/ext/is_sorted/cxx0x.cc: Likewise.
2024-03-14 xndcn <xndchn@gmail.com>
* include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
Clear padding.
* testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
New test.
2024-03-14 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/66146
* doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
note about std::call_once.
* doc/xml/manual/status_cxx2014.xml: Likewise.
* doc/xml/manual/status_cxx2017.xml: Likewise.
* doc/html/manual/status.html: Regenerate.
2024-03-14 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
* doc/html/manual/status.html: Regenerate.
* include/bits/version.def: Fix typo in comment.
2024-03-13 Jonathan Wakely <jwakely@redhat.com>
* testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
to namespace scope.
2024-03-13 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/debug.xml: Improve docs on debug builds and
using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
the most relevant ones first.
* doc/xml/manual/using.xml: Add comma.
* doc/html/*: Regenerate.
2024-03-13 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/debug.xml: Document that concept checking might
be removed in future.
* doc/xml/manual/extensions.xml: Likewise.
2024-03-09 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114240
* include/bits/chrono_io.h (_Parser::operator()): Assume
hours(0) for a time_point, so that a time is not required
to be present.
* testsuite/std/time/parse/114240.cc: New test.
2024-03-09 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114279
* include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
data member.
(_Parser::_M_reserved): Reserve padding bits for future use.
(_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
(from_stream): Only allow _M_is_leap_second for utc_time and
local_time. Adjust arithmetic for utc_time so that leap seconds
are preserved. Use time_point_cast to convert to a possibly
lower-precision result type.
* testsuite/std/time/parse.cc: Move to ...
* testsuite/std/time/parse/parse.cc: ... here.
* testsuite/std/time/parse/114279.cc: New test.
2024-03-07 Jonathan Wakely <jwakely@redhat.com>
* include/bits/chrono_io.h (_Parser::operator()): Use
std::from_chars to parse fractional seconds.
2024-03-07 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114244
* include/bits/chrono_io.h (_Parser::operator()): Remove
redundant uses of duration_cast. Use chrono::round to convert
long double value to durations with integer representations.
Check represenation type when deciding whether to skip parsing
fractional seconds.
* testsuite/20_util/duration/114244.cc: New test.
* testsuite/20_util/duration/io.cc: Check that a floating-point
duration with ratio<1> precision can be parsed.
2024-03-07 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114103
* include/bits/version.def (atomic_lock_free_type_aliases): Add
extra_cond to check for at least one always-lock-free type.
* include/bits/version.h: Regenerate.
* include/std/atomic (atomic_signed_lock_free)
(atomic_unsigned_lock_free): Only use always-lock-free types.
* src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
atomic counter if lock-free aliases aren't available.
* testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
targets without lock-free word-size compare_exchange.
2024-03-07 Jonathan Wakely <jwakely@redhat.com>
* include/std/chrono (__get_leap_second_info): Update expiry
time for hardcoded list of leap seconds.
* testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
2024-03-07 Jonathan Wakely <jwakely@redhat.com>
* testsuite/23_containers/deque/allocator/default_init.cc: Use
std::memset instead of __builtin_memset.
* testsuite/23_containers/forward_list/allocator/default_init.cc:
Likewise.
* testsuite/23_containers/list/allocator/default_init.cc:
Likewise.
* testsuite/23_containers/map/allocator/default_init.cc:
Likewise.
* testsuite/23_containers/set/allocator/default_init.cc:
Likewise.
* testsuite/23_containers/unordered_map/allocator/default_init.cc:
Likewise.
* testsuite/23_containers/unordered_set/allocator/default_init.cc:
Likewise.
* testsuite/23_containers/vector/allocator/default_init.cc:
Likewise.
* testsuite/23_containers/vector/bool/allocator/default_init.cc:
Likewise.
* testsuite/29_atomics/atomic/compare_exchange_padding.cc:
Likewise.
* testsuite/util/atomic/wait_notify_util.h: Likewise.
2024-03-07 Jonathan Wakely <jwakely@redhat.com>
* include/std/format (_Arg_store::_S_make_elt): Add two
static_assert checks to give more user-friendly error messages.
* testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
form of "in requirements with" note.
* testsuite/std/format/arguments/args_neg.cc: Check for
user-friendly diagnostics for non-formattable types.
* testsuite/std/format/string_neg.cc: Likewise.
2024-03-04 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114147
* include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
Add missing overload of allocator-extended default constructor.
(tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
* testsuite/20_util/tuple/cons/114147.cc: New test.
2024-02-29 Jonathan Wakely <jwakely@redhat.com>
* include/std/format (basic_format_arg::handle::__maybe_const_t):
Fix condition to check if const type is formattable.
(basic_format_arg::handle::handle(T&)): Remove redundant
static_assert.
* testsuite/std/format/formatter/basic.cc: New test.
2024-02-29 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113960
* include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
(__memcmp_ordered_with): New concept.
(lexicographical_compare_three_way): Use __memcmp_ordered_with
instead of __is_byte_iter. Use correct length for memcmp.
* testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
New test.
2024-02-28 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/114152
* include/experimental/scope (scope_exit scope_fail): Make
destructor unconditionally noexcept.
(scope_sucess): Fix noexcept-specifier.
* testsuite/experimental/scopeguard/114152.cc: New test.
2024-02-28 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/appendix_contributing.xml: Change URLs to use
https.
* doc/html/manual/*: Regenerate.
2024-02-28 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/appendix_contributing.xml: Replace outdated
info on ChangeLog entries.
* doc/html/manual/appendix_contributing.html: Regenerate.
2024-02-28 Jonathan Wakely <jwakely@redhat.com>
* include/bits/stl_bvector.h (vector<bool, A>::at): Add
nodiscard.
* include/bits/stl_vector.h (vector<T, A>::at): Likewise.
(operator==, operator<=>, operator<, operator!=, operator>)
(operator<=, operator>=): Likewise.
* include/debug/vector (operator==, operator<=>, operator<)
(operator!=, operator>, operator<=, operator>=): Likewise.
* testsuite/23_containers/vector/nodiscard.cc: New test.
2024-02-28 Jonathan Wakely <jwakely@redhat.com>
* include/bits/atomic_base.h (operator|, operator&): Add
noexcept.
* include/bits/fs_fwd.h (operator&, operator|, operator^)
(operator~): Add nodiscard to overloads for copy_options, perms,
perm_options, and directory_options.
* include/bits/ios_base.h (operator&, operator|, operator^)
(operator~): Add nodiscard and noexcept to overloads for
_Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
(operator|=, operator&=, operator^=): Add constexpr for C++14.
* include/bits/regex_constants.h (operator&, operator|, operator^)
(operator~): Add nodiscard and noexcept to overloads for
syntax_option_type and match_flag_type.
(operator|=, operator&=, operator^=): Add noexcept.
* include/std/charconv (operator&, operator|, operator^)
(operator~): Add nodiscard to overloads for chars_format.
* include/std/future (operator&, operator|, operator^)
(operator~): Add nodiscard for overloads for launch.
(operator&=, operator|=, operator^=): Add constexpr for C++14.
* include/experimental/bits/fs_fwd.h (operator&, operator|)
(operator^, operator~): Add nodiscard to overloads for
copy_options, perms, and directory_options.
* testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
Add dg-warning for nodiscard warnings.
* testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
Likewise.
* testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
Likewise.
* testsuite/27_io/filesystem/operations/bitmask_types.cc:
New test.
2024-02-28 Jonathan Wakely <jwakely@redhat.com>
* testsuite/27_io/basic_ostream/print/1.cc: Check error
handling.
* testsuite/27_io/print/1.cc: Likewise.
2024-02-28 Jonathan Wakely <jwakely@redhat.com>
* include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
code path for Cygwin instead of Windows.
* include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
* testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
for *-*-mingw* targets.
* testsuite/27_io/print/1.cc: Likewise.
2024-02-28 Jonathan Wakely <jwakely@redhat.com>
* include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
__make_move_if_noexcept_iterator.
2024-02-28 Jonathan Wakely <jwakely@redhat.com>
* include/std/stacktrace: Add nodiscard attribute to all
functions without side effects.
2024-02-20 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
std::__niter_base on res iterator.
2024-02-19 Iain Sandoe <iain@sandoe.co.uk>
Jonathan Wakely <jwakely@redhat.com>
PR target/112397
* configure: Regenerate.
* configure.ac: Detect if we are building for Darwin.
* libsupc++/Makefile.am: If we are building for Darwin, then
suppress hot/cold partitioning for the array allocators.
* libsupc++/Makefile.in: Regenerated.
2024-02-17 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
definitions for __gnu_debug::_Safe_iterator.
* include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
2024-02-16 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/87744
PR libstdc++/113961
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
line number.
2024-02-16 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/87744
PR libstdc++/113931
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
line number.
2024-02-16 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/debug_mode.xml: Update docs for backtraces.
* doc/html/manual/debug_mode_using.html: Regenerate.
2024-02-16 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/test.xml: Fix spelling of <envar> elements.
* doc/html/manual/test.html: Regenerate.
2024-02-15 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113806
* include/std/bitset (bitset::operator>>=): Remove redundant
call to _M_do_sanitize.
2024-02-15 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113807
* include/std/bitset (bitset::set()): Use memset instead of a
loop over the individual words.
2024-02-15 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113811
* include/bits/stl_algo.h (__rotate): Use unsigned values for
division.
2024-02-15 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/99117
* include/std/valarray (valarray::operator=(const _Expr&)):
Use loop to copy instead of __valarray_copy with _Array.
* testsuite/26_numerics/valarray/99117.cc: New test.
2024-02-15 Jonathan Wakely <jwakely@redhat.com>
* src/c++20/tzdata.zi: Import new file from 2024a release.
* src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
Update expiry date for leap seconds list.
2024-02-15 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/87744
* include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
Define specialization for 64-bit generators with
non-power-of-two modulus and large constants.
(__mod): Use if constexpr unconditionally.
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
line number.
* testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
New test.
2024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
* doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
version 1.
* doc/html/manual/status.html: Regenerate.
2024-02-12 Paul Keir <paul.keir@uws.ac.uk>
PR libstdc++/113294
* include/bits/basic_string.h (basic_string::operator=): Use
_M_use_local_data() instead of _M_local_buf on the moved-from
string.
* testsuite/21_strings/basic_string/modifiers/constexpr.cc
(test_move): New test.
2024-02-09 Ken Matsui <kmatsui@gcc.gnu.org>
* include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
Removed.
* include/std/type_traits (is_same): Use
_GLIBCXX_USE_BUILTIN_TRAIT instead of
_GLIBCXX_HAVE_BUILTIN_IS_SAME.
(is_same_v): Likewise.
2024-02-08 Jonathan Wakely <jwakely@redhat.com>
* include/bits/shared_ptr_atomic.h: Fix typo in comment.
2024-02-08 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/100147
* include/bits/gslice.h (operator=): Add comment about lack of
self-assignment check.
2024-02-08 Jonathan Wakely <jwakely@redhat.com>
* include/tr2/type_traits (bases, direct_bases): Use
__has_builtin to check if required built-ins are supported.
2024-02-07 Patrick Palka <ppalka@redhat.com>
PR testsuite/113710
PR c++/113814
* include/bits/stl_pair.h (tuple_element): Add forward
declaration of the partial specialization for tuple.
2024-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
* testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
for other environments.
2024-02-04 Jonathan Wakely <jwakely@redhat.com>
* include/std/format (__format::_Spec::_M_reserved): Define new
bit-field members to reserve padding bits for future extensions.
2024-02-04 Jonathan Wakely <jwakely@redhat.com>
* src/experimental/Makefile.am: Use libstdc++fsconvenience.a
instead of libstdc++fs.a.
* src/experimental/Makefile.in: Regenerate.
* src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
well.
* src/filesystem/Makefile.in: Regenerate.
2024-02-04 Jonathan Wakely <jwakely@redhat.com>
* include/bits/text_encoding-data.h: Regenerate.
* include/bits/unicode-data.h: Regenerate.
* scripts/gen_text_encoding_data.py: Add copyright and license
text to the output.
2024-02-02 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113335
* include/bits/std_function.h (__function_guide_helper): Add
partial specialization for explicit object member functions, as
per LWG 3617.
* testsuite/20_util/function/cons/deduction_c++23.cc: Check
explicit object member functions.
* testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
Likewise.
2024-02-02 Jonathan Wakely <jwakely@redhat.com>
* testsuite/17_intro/names.cc [_AIX]: Undefine "u".
2024-02-02 Jonathan Wakely <jwakely@redhat.com>
* include/experimental/internet (network_v6::network): Define.
(network_v6::hosts): Finish implementing.
(network_v6::to_string): Do not concatenate std::string to
arbitrary std::basic_string specialization.
* testsuite/experimental/net/internet/network/v6/cons.cc: New
test.
2024-02-02 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/90276
* testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
comparison function to use less-than instead of equality.
2024-02-02 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/90276
* testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
perfect forwarding for iterator arguments.
2024-02-02 Jonathan Wakely <jwakely@redhat.com>
* include/std/string_view (basic_string_view(R&&)): Remove
constraint that traits_type must be the same, as per LWG 3857.
* testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
Explicit conversion between different specializations should be
allowed.
* testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
Likewise.
2024-02-02 Jonathan Wakely <jwakely@redhat.com>
* include/std/syncstream (basic_osyncstream::operator=): Remove
noexcept, as per LWG 3867.
2024-02-02 Jonathan Wakely <jwakely@redhat.com>
* include/std/generator (promise_type::yield_value): Remove
noexcept from fourth overload, as per LWG 3894.
2024-02-01 Patrick Palka <ppalka@redhat.com>
PR libstdc++/113309
PR libstdc++/109203
* include/bits/ranges_util.h (__detail::__pair_like): Don't
define in C++23 mode.
(__detail::__pair_like_convertible_from): Adjust as per P2165R4.
(__detail::__is_subrange<subrange>): Moved from <ranges>.
(__detail::__is_tuple_like_v<subrange>): Likewise.
* include/bits/stl_iterator.h: Include <bits/utility.h> for
C++23.
(__different_from): Move to <concepts>.
(__iter_key_t): Adjust for C++23 as per P2165R4.
(__iter_val_t): Likewise.
* include/bits/stl_pair.h (pair, array): Forward declare.
(get): Forward declare all overloads relevant to P2165R4
tuple-like constructors.
(__is_tuple_v): Define for C++23.
(__is_tuple_like_v): Define for C++23.
(__tuple_like): Define for C++23 as per P2165R4.
(__pair_like): Define for C++23 as per P2165R4.
(__eligibile_tuple_like): Define for C++23.
(__eligibile_pair_like): Define for C++23.
(pair::_S_constructible_from_pair_like): Define for C++23.
(pair::_S_convertible_from_pair_like): Define for C++23.
(pair::_S_dangles_from_pair_like): Define for C++23.
(pair::pair): Define overloads taking a tuple-like type for
C++23 as per P2165R4.
(pair::_S_assignable_from_tuple_like): Define for C++23.
(pair::_S_const_assignable_from_tuple_like): Define for C++23.
(pair::operator=): Define overloads taking a tuple-like type for
C++23 as per P2165R4.
* include/bits/utility.h (ranges::__detail::__is_subrange):
Moved from <ranges>.
* include/bits/version.def (tuple_like): Define for C++23.
* include/bits/version.h: Regenerate.
* include/std/concepts (__different_from): Moved from
<bits/stl_iterator.h>.
(ranges::__swap::__adl_swap): Clarify which __detail namespace.
* include/std/map (__cpp_lib_tuple_like): Define C++23.
* include/std/ranges (__detail::__is_subrange): Moved to
<bits/utility.h>.
(__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
(__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
(__detail::__tuple_or_pair): Remove as per P2165R4. Replace all
uses with plain tuple as per P2165R4.
* include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
(__tuple_like_tag_t): Define for C++23.
(__tuple_cmp): Forward declare for C++23.
(_Tuple_impl::_Tuple_impl): Define overloads taking
__tuple_like_tag_t and a tuple-like type for C++23.
(_Tuple_impl::_M_assign): Likewise.
(tuple::__constructible_from_tuple_like): Define for C++23.
(tuple::__convertible_from_tuple_like): Define for C++23.
(tuple::__dangles_from_tuple_like): Define for C++23.
(tuple::tuple): Define overloads taking a tuple-like type for
C++23 as per P2165R4.
(tuple::__assignable_from_tuple_like): Define for C++23.
(tuple::__const_assignable_from_tuple_like): Define for C++23.
(tuple::operator=): Define overloads taking a tuple-like type
for C++23 as per P2165R4.
(tuple::__tuple_like_common_comparison_category): Define for C++23.
(tuple::operator<=>): Define overload taking a tuple-like type
for C++23 as per P2165R4.
(array, get): Forward declarations moved to <bits/stl_pair.h>.
(tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
(apply): Likewise.
(make_from_tuple): Likewise.
(__tuple_like_common_reference): Define for C++23.
(basic_common_reference): Adjust as per P2165R4.
(__tuple_like_common_type): Define for C++23.
(common_type): Adjust as per P2165R4.
* include/std/unordered_map (__cpp_lib_tuple_like): Define for
C++23.
* include/std/utility (__cpp_lib_tuple_like): Define for C++23.
* testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
and 2-tuple interchangeably.
(test05): New test.
* testsuite/20_util/pair/p2165r4.cc: New test.
* testsuite/20_util/tuple/p2165r4.cc: New test.
2024-02-01 Patrick Palka <ppalka@redhat.com>
* include/bits/stl_pair.h (pair::_S_const_assignable): Define,
factored out from ...
(pair::operator=): ... the constraints of the const overloads.
2024-02-01 Jonathan Wakely <jwakely@redhat.com>
* include/bits/version.tpl: Do not use def-file-line for each
macro being defined.
* include/bits/version.h: Regenerate.
2024-02-01 Jonathan Wakely <jwakely@redhat.com>
* testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
dg-error pattern.
* testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
Likewise.
* testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
Likewise.
* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
Likewise.
* testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
Likewise.
* testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
Likewise.
* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
Likewise.
* testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
Likewise.
* testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
Likewise.
2024-02-01 Jonathan Wakely <jwakely@redhat.com>
* include/experimental/internet (network_v4::to_string()):
Remove lambda and use of resize_and_overwrite.
2024-01-31 Jonathan Wakely <jwakely@redhat.com>
* acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
needed for newlocale.
* configure: Regenerate.
* src/c++26/text_encoding.cc: Use <xlocale.h>.
2024-01-31 Jonathan Wakely <jwakely@redhat.com>
Ewan Higgs <ewan.higgs@gmail.com>
* include/bits/text_encoding-data.h: Regenerate.
* scripts/gen_text_encoding_data.py: Add extra_aliases dict
containing "ASCII".
* testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
2024-01-31 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/using.xml: Update tables of supported headers.
* doc/html/*: Regenerate.
2024-01-31 Jonathan Wakely <jwakely@redhat.com>
* include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
-Wshift-count-overflow warning.
2024-01-30 Jonathan Wakely <jwakely@redhat.com>
* testsuite/std/time/clock/gps/io.cc: Fix expected result in
assertion and call test_format() from main.
2024-01-29 François Dumont <fdumont@gcc.gnu.org>
* doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
_GLIBCXX_DEBUG_BACKTRACE macro.
2024-01-24 Huanghui Nie <nnnjkk@gmail.com>
Théo Papadopoulo <papadopoulo@gmail.com>
* include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
_M_before_begin check and cleanup implementation.
2024-01-22 Jonathan Wakely <jwakely@redhat.com>
* testsuite/std/time/clock/file/io.cc: Fix expected result in
assertion and call test_format() from main.
2024-01-21 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113500
* include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
printing of subseconds with floating-point rep.
(__formatter_chrono::_M_format_to_ostream): Do not write
time_point specializations directly to the ostream.
(formatter<chrono::sys_time<D>, C>::parse): Do not allow an
empty chrono-spec if the type fails to meet the constraints for
writing to an ostream with operator<<.
* testsuite/std/time/clock/file/io.cc: Check formatting
non-integral times with empty chrono-specs.
* testsuite/std/time/clock/gps/io.cc: Likewise.
* testsuite/std/time/clock/utc/io.cc: Likewise.
* testsuite/std/time/hh_mm_ss/io.cc: Likewise.
2024-01-21 Jonathan Wakely <jwakely@redhat.com>
* include/bits/chrono.h (__file_clock::from_sys)
(__file_clock::to_sys, __file_clock::_S_from_sys)
(__file_clock::_S_to_sys): Use common_type for return type.
* testsuite/std/time/clock/file/members.cc: Check round trip
conversion for time with lower precision that seconds.
2024-01-21 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113512
* include/std/format (__formatter_fp::format): Fix logic for
alternate forms.
* testsuite/std/format/functions/format.cc: Check buggy cases of
alternate forms with g presentation type.
2024-01-20 Marek Polacek <polacek@redhat.com>
PR c++/111410
* include/std/ranges: Add #pragma to disable -Wdangling-reference with
std::ranges::views::__adaptor::operator|.
2024-01-19 Jonathan Wakely <jwakely@redhat.com>
* include/std/format (_Spec::_M_parse_fill_and_align): Do not
use CTAD for _Utf32_view.
2024-01-19 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/108822
* include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
wrong fold-operator.
* testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
element and three elements. Check allocator-extended
constructors.
2024-01-19 Patrick Palka <ppalka@redhat.com>
* include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
<print> and <text_encoding> for C++23 and C++26 respectively.
2024-01-18 Patrick Palka <ppalka@redhat.com>
* include/bits/stl_pair.h [__cplusplus > 202002L]:
Guard P2321R2 changes with __glibcxx_ranges_zip instead.
2024-01-18 Patrick Palka <ppalka@redhat.com>
* include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
changes with __cpp_lib_ranges_zip instead.
2024-01-18 Patrick Palka <ppalka@redhat.com>
PR libstdc++/109536
* include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
* include/debug/safe_iterator.h
(_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
(_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
(_Safe_iterator::operator=): Use them around the code path that
defines a variable of type __gnu_cxx::__scoped_lock.
(_Safe_iterator::operator++): Likewise.
(_Safe_iterator::operator--): Likewise.
(_Safe_iterator::operator+=): Likewise.
(_Safe_iterator::operator-=): Likewise.
* testsuite/23_containers/vector/element_access/constexpr.cc
(test_iterators): Test more iterator operations.
* testsuite/23_containers/vector/bool/element_access/constexpr.cc
(test_iterators): Likewise.
* testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
Remove.
2024-01-18 Jonathan Wakely <jwakely@redhat.com>
* include/bits/unicode.h (__charset_alias_match): Initialize
__var_a and __var_b.
2024-01-18 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113450
* testsuite/std/format/functions/format.cc: Use signed char
instead of int8_t.
2024-01-17 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113318
* acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
(GLIBCXX_CHECK_TEXT_ENCODING): Define.
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
* include/Makefile.am: Add new headers.
* include/Makefile.in: Regenerate.
* include/bits/locale_classes.h (locale::encoding): Declare new
member function.
* include/bits/unicode.h (__charset_alias_match): New function.
* include/bits/text_encoding-data.h: New file.
* include/bits/version.def (text_encoding): Define.
* include/bits/version.h: Regenerate.
* include/std/text_encoding: New file.
* src/Makefile.am: Add new subdirectory.
* src/Makefile.in: Regenerate.
* src/c++26/Makefile.am: New file.
* src/c++26/Makefile.in: New file.
* src/c++26/text_encoding.cc: New file.
* src/experimental/Makefile.am: Include c++26 convenience
library.
* src/experimental/Makefile.in: Regenerate.
* python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
printer.
* scripts/gen_text_encoding_data.py: New file.
* testsuite/22_locale/locale/encoding.cc: New test.
* testsuite/ext/unicode/charset_alias_match.cc: New test.
* testsuite/std/text_encoding/cons.cc: New test.
* testsuite/std/text_encoding/members.cc: New test.
* testsuite/std/text_encoding/requirements.cc: New test.
2024-01-17 Jonathan Wakely <jwakely@redhat.com>
* include/bits/unicode.h (_Grapheme_cluster_view): Require view.
Do not use CTAD for _Utf32_view.
(__format_width, __truncate): Do not use CTAD.
(enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
(enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
2024-01-17 Patrick Palka <ppalka@redhat.com>
* include/std/ranges (views::_CartesianProduct::operator()):
Adjust identity case as per P2540R1.
* testsuite/std/ranges/cartesian_product/1.cc (test01):
Adjust expected result of the identity case.
2024-01-15 Patrick Palka <ppalka@redhat.com>
* include/std/variant (__detail::__variant::_Variadic_union):
Add bool __trivially_destructible template parameter.
(__detail::__variant::_Variadic_union::~_Variadic_union):
Use __trivially_destructible in constraints instead.
(__detail::__variant::_Variant_storage): Pass
__trivially_destructible value to _Variadic_union.
2024-01-15 Patrick Palka <ppalka@redhat.com>
* include/bits/stl_iterator.h (const_iterator): Define conversion
operators as per P2836R1.
* include/bits/version.def (ranges_as_const): Update value.
* include/bits/version.h: Regenerate.
* testsuite/24_iterators/const_iterator/1.cc (test04): New test.
* testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
value of __cpp_lib_ranges_as_const.
* testsuite/std/ranges/version_c++23.cc: Likewise.
2024-01-15 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/108822
* include/std/tuple (__assignable, __is_nothrow_assignable):
Move pre-C++20 definitions adjacent to their use.
2024-01-15 Jonathan Wakely <jwakely@redhat.com>
PR testsuite/113366
* include/std/format (basic_format_arg): Use __formattable
variable template instead of __format::__formattable_with
concept.
2024-01-15 Jonathan Wakely <jwakely@redhat.com>
* src/c++20/tzdata.zi: Import new file from 2023d release.
* src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
Update expiry date for leap seconds list.
2024-01-13 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/108822
* include/std/tuple (tuple): Add checks for dangling references.
Reimplement constraints and constant expressions using C++20
features.
* include/std/type_traits [C++20]
(__is_implicitly_default_constructible_v): Define.
(__is_implicitly_default_constructible): Use variable template.
* testsuite/20_util/tuple/dangling_ref.cc: New test.
2024-01-13 Patrick Palka <ppalka@redhat.com>
PR libstdc++/108827
PR libstdc++/111327
* include/bits/version.def (bind_back): Define.
* include/bits/version.h: Regenerate.
* include/std/functional (_Bind_back): Define for C++23.
(bind_back): Likewise.
* testsuite/20_util/function_objects/bind_back/1.cc: New test
(adapted from corresponding bind_front test).
* testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
2024-01-13 Patrick Palka <ppalka@redhat.com>
* include/std/functional (_Bind_front): Remove =default special
member function declarations.
(_Bind_front::operator()): Implement using C++23 deducing this
when available.
* testsuite/20_util/function_objects/bind_front/111327.cc:
Adjust testcase to expect better errors in C++23 mode.
2024-01-13 Patrick Palka <ppalka@redhat.com>
* include/std/ranges (views::__adaptor::operator|): Perform
perfect forwarding of arguments.
(views::__adaptor::_RangeAdaptor::operator()): Pass dummy
first argument to _Partial.
(views::__adaptor::_Partial::_Partial): Likewise. Add dummy
first parameter.
(views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
of arguments.
(to): Pass dummy first argument to _Partial.
2024-01-13 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/107466
* include/bits/random.tcc (subtract_with_carry_engine::seed):
Implement proposed resolution of LWG 4014.
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
line number.
* testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
Check for expected result of 64-bit engine with seed that
doesn't fit in 32-bits.
2024-01-12 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113320
* include/std/format (__format::_Runtime_format_string): Add
constructor and disable copy operations.
(basic_format_string(_Runtime_format_string)): Add noexcept and
take parameter by value not rvalue reference.
(runtime_format): Add noexcept.
* testsuite/std/format/runtime_format.cc: Check noexcept. Check
that construction is only possible from prvalues, not xvalues.
2024-01-12 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/105505
* include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
default template arguments, as per P1951R1.
* testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
2024-01-12 Jonathan Wakely <jwakely@redhat.com>
* include/std/format (__format::_Arg_store): Fix PR number in
comment. Simplify preprocessor code.
2024-01-11 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/evolution.xml: Fix spelling.
* doc/html/manual/api.html: Regenerate.
2024-01-11 Jonathan Wakely <jwakely@redhat.com>
* doc/xml/manual/evolution.xml: Document addition of
libstdc++exp.a.
* doc/html/*: Regenerate.
2024-01-11 Marcus Haehnel <marcus.haehnel@kernkonzept.com>
* libsupc++/eh_unex_handler.cc: Adjust definition type to
declaration.
2024-01-11 Michael Levine <mlevine55@bloomberg.net>
* include/std/ranges (__glibcxx_want_ranges_iota): Remove
duplicate definition.
2024-01-11 François Dumont <fdumont@gcc.gnu.org>
PR libstdc++/112477
* src/c++11/debug.cc
(_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
sequence.
(_Safe_iterator_base::_M_attach_single): Likewise.
(_Safe_local_iterator_base::_M_attach): Likewise.
(_Safe_local_iterator_base::_M_attach_single): Likewise.
* testsuite/23_containers/map/debug/112477.cc: New test case.
2024-01-11 Patrick Palka <ppalka@redhat.com>
* include/bits/move.h (__like_t): Define in C++23 mode.
* include/std/ranges (views::__adaptor::Partial::operator()):
Implement using C++23 deducing this when available.
(views::__adaptor::_Pipe::operator()): Likewise.
* testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
accept new "no match for call" errors issued in C++23 mode.
* testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
2024-01-11 Jonathan Wakely <jwakely@redhat.com>
* python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
Add printer for std::integral_constant.
* testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
2024-01-11 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113258
* libsupc++/new_opa.cc: Prefer to use posix_memalign if
available.
2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
* src/filesystem/ops-common.h (stat_type): Use using.
2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
PR libstdc++/113250
* src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
* src/filesystem/ops.cc (fs::equivalent): Likewise.
* testsuite/27_io/filesystem/operations/equivalent.cc: Handle
error codes.
* testsuite/experimental/filesystem/operations/equivalent.cc:
Likewise.
2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
* include/std/type_traits (is_compound): Do not use __not_.
(is_compound_v): Use is_fundamental_v instead.
2024-01-11 Patrick Palka <ppalka@redhat.com>
* include/bits/utility.h (_Nth_type): Use
_GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
2024-01-09 Jonathan Wakely <jwakely@redhat.com>
* include/bits/unicode-data.h: Regenerate.
* include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
by one error.
(__incb_property): Add missing check for values before the
first edge.
(__is_extended_pictographic): Invert return values to fix
copy&pasted logic.
(_Grapheme_cluster_view::_Iterator): Remove second iterator
member and find end of cluster lazily.
* testsuite/ext/unicode/grapheme_view.cc: New test.
* testsuite/ext/unicode/properties.cc: New test.
* testsuite/ext/unicode/view.cc: New test.
2024-01-09 Andreas Schwab <schwab@linux-m68k.org>
* scripts/extract_symvers.in: Require final colon to only match
.dsynsym in the header of the dynamic symtab.
2024-01-09 Jonathan Wakely <jwakely@redhat.com>
* include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
handling of string returned from std::format.
(__formatter_chrono::_M_R_T): Likewise.
2024-01-08 Jonathan Wakely <jwakely@redhat.com>
* include/bits/unicode.h (__null_sentinel): Remove.
* testsuite/17_intro/names.cc: Add __null_sentinel.
2024-01-08 Jonathan Wakely <jwakely@redhat.com>
* include/std/format (__format::_Runtime_format_string): Define
new class template.
(basic_format_string): Add non-consteval constructor for runtime
format strings.
(runtime_format): Define new function for C++26.
* testsuite/std/format/runtime_format.cc: New test.
2024-01-08 Jonathan Wakely <jwakely@redhat.com>
* include/bits/chrono_io.h (__formatter_chrono): Always use
lvalue arguments to make_format_args.
* include/std/format (make_format_args): Change parameter pack
from forwarding references to lvalue references. Remove use of
remove_reference_t which is now unnecessary.
(format_to, formatted_size): Remove incorrect forwarding of
arguments.
* include/std/ostream (print): Remove forwarding of arguments.
* include/std/print (print): Likewise.
* testsuite/20_util/duration/io.cc: Use lvalues as arguments to
make_format_args.
* testsuite/std/format/arguments/args.cc: Likewise.
* testsuite/std/format/arguments/lwg3810.cc: Likewise.
* testsuite/std/format/functions/format.cc: Likewise.
* testsuite/std/format/functions/vformat_to.cc: Likewise.
* testsuite/std/format/string.cc: Likewise.
* testsuite/std/time/day/io.cc: Likewise.
* testsuite/std/time/month/io.cc: Likewise.
* testsuite/std/time/weekday/io.cc: Likewise.
* testsuite/std/time/year/io.cc: Likewise.
* testsuite/std/time/year_month_day/io.cc: Likewise.
* testsuite/std/format/arguments/args_neg.cc: New test.
2024-01-08 Jonathan Wakely <jwakely@redhat.com>
* include/Makefile.am: Add new headers.
* include/Makefile.in: Regenerate.
* include/bits/unicode.h: New file.
* include/bits/unicode-data.h: New file.
* include/std/format: Include <bits/unicode.h>.
(__literal_encoding_is_utf8): Move to <bits/unicode.h>.
(_Spec::_M_fill): Change type to char32_t.
(_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
instead of a single character.
(__write_padded): Change __fill_char parameter to char32_t and
encode it into the output.
(__formatter_str::format): Use new __unicode::__field_width and
__unicode::__truncate functions.
* include/std/ostream: Adjust namespace qualification for
__literal_encoding_is_utf8.
* include/std/print: Likewise.
* src/c++23/print.cc: Add [[unlikely]] attribute to error path.
* testsuite/ext/unicode/view.cc: New test.
* testsuite/std/format/functions/format.cc: Add missing examples
from the standard demonstrating alignment with non-ASCII
characters. Add examples checking correct handling of extended
grapheme clusters.
2024-01-08 Jonathan Wakely <jwakely@redhat.com>
* include/bits/version.def (format_uchar): Define.
* include/bits/version.h: Regenerate.
* include/std/format (formatter<C, C>::format): Check for
_Pres_c and call _M_format_character directly. Cast C to its
unsigned equivalent for formatting as an integer.
(formatter<char, wchar_t>::format): Likewise.
(basic_format_arg(T&)): Store char arguments as unsigned char
for formatting to a wide string.
* testsuite/std/format/functions/format.cc: Adjust test. Check
formatting of
2024-01-07 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/112997
* libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
parameter to void*.
2024-01-07 Jonathan Wakely <jwakely@redhat.com>
* testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
2024-01-07 Jonathan Wakely <jwakely@redhat.com>
* include/std/type_traits (is_trivially_destructible_v): Use
built-in directly when concepts are supported.
* testsuite/20_util/is_trivially_destructible/value_v.cc: New
test.
2024-01-06 Gwenole Beauchesne <gb.devel@gmail.com>
* testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
nonnull arguments to strtoimax() and wcstoimax() functions.
2024-01-05 Jonathan Wakely <jwakely@redhat.com>
* src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
size and check for overflows in arithmetic.
(path::operator/=(const path&)): Remove redundant exponential
growth calculation.
2024-01-05 Martin Küttler <martin.kuettler@kernkonzept.com>
* src/c++17/fs_path.cc (path::_List::reserve): Avoid
floating-point arithmetic.
2024-01-05 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113241
* include/std/type_traits (is_convertible_v): Guard use of
built-in with preprocessor check.
2024-01-05 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113200
* include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
__builtin_constant_p to check for unrelated pointers that cannot
be compared during constant evaluation.
* testsuite/21_strings/char_traits/requirements/113200.cc: New
test.
2024-01-05 Cassio Neri <cassio.neri@gmail.com>
* include/std/chrono: Fix + and - for months and weekdays.
* testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
* testsuite/std/time/month/2.cc: New test for extreme values.
* testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
* testsuite/std/time/weekday/2.cc: New test for extreme values.
2024-01-05 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/113099
* include/bits/locale_classes.tcc (__try_use_facet): Use
if-constexpr for C++11 and up.
2024-01-05 Ken Matsui <kmatsui@gcc.gnu.org>
* include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
2024-01-04 Arsen Arsenović <arsen@aarsen.me>
* include/std/generator (_Subyield_state::_M_jump_in): Fix typo
reported by Will Hawkins <hawkinsw@obs.cr>.
2024-01-04 Arsen Arsenović <arsen@aarsen.me>
* include/std/generator (_Stateless_alloc): Rename typename _A
to _All.
2024-01-03 Patrick Palka <ppalka@redhat.com>
PR testsuite/113175
* testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
(test03): Likewise.
Copyright (C) 2024 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.