| 2025-10-20 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-10-20 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/122322 | |
| * configure.ac (with_newlib) <*-rtems*>: Remove | |
| HAVE_SYS_IOCT4YL_H, _GLIBCXX_USE_LINK, _GLIBCXX_USE_READLINK, | |
| _GLIBCXX_USE_SYMLINK, _GLIBCXX_USE_TRUNCATE, and | |
| _GLIBCXX_USE_FDOPENDIR. Remove duplicates. | |
| * configure: Regenerate. | |
| 2025-10-20 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-09-26 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/122062 | |
| * include/bits/random.tcc (__detail::__normalize): Use void cast | |
| for operands of comma operator. | |
| (piecewise_linear_distribution): Likewise. | |
| * testsuite/26_numerics/random/piecewise_linear_distribution/cons/122062.cc: | |
| New test. | |
| 2025-10-15 Chris Johns <chrisj@rtems.org> | |
| * configure: Regenerate. | |
| * configure.ac (newlib, *-rtems*): Add HAVE_SYS_IOCTL_H, | |
| HAVE_SYS_STAT_H, HAVE_SYS_TYPES_H, HAVE_S_ISREG, HAVE_UNISTD_H, | |
| HAVE_UNLINKAT, _GLIBCXX_USE_CHMOD, _GLIBCXX_USE_MKDIR, | |
| _GLIBCXX_USE_CHDIR, _GLIBCXX_USE_GETCWD, _GLIBCXX_USE_UTIME, | |
| _GLIBCXX_USE_LINK, _GLIBCXX_USE_READLINK, _GLIBCXX_USE_SYMLINK, | |
| _GLIBCXX_USE_TRUNCATE and _GLIBCXX_USE_FDOPENDIR. | |
| 2025-09-24 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-09-24 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-09-18 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/20_util/unique_ptr/lwg4148.cc: Likewise. | |
| * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: | |
| Likewise. | |
| * testsuite/30_threads/packaged_task/cons/dangling_ref.cc: | |
| Likewise. | |
| 2025-09-12 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-10 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 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: | |
| 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-08-31 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-08-31 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-08-31 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-08-31 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-06-11 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120390 | |
| * include/bits/stl_construct.h (_Destroy_aux::__destroy_n): New | |
| static member function. | |
| (_Destroy_aux<true>::__destroy_n): Likewise. | |
| (_Destroy_n_aux): Remove. | |
| (_Destroy(ForwardIterator, ForwardIterator)): Remove | |
| static_assert. Use is_trivially_destructible instead of | |
| __has_trivial_destructor. | |
| (_Destroy_n): Likewise. Use _Destroy_aux::__destroy_n instead of | |
| _Destroy_n_aux::__destroy_n. | |
| * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: | |
| Adjust dg-error strings. Move destroy_n tests to ... | |
| * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc: | |
| New test. | |
| * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: | |
| Adjust dg-error strings. | |
| * testsuite/23_containers/vector/cons/destructible_neg.cc: | |
| Likewise. | |
| 2025-08-19 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2025-08-18 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/121313 | |
| * include/bits/vector.tcc (vector::insert_range): Add check for | |
| empty size. | |
| * testsuite/23_containers/vector/modifiers/insert/insert_range.cc: | |
| New tests. | |
| 2025-08-19 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2025-07-08 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/119861 | |
| * include/std/format (formatter<_Rg, _CharT>::set_separator) | |
| (formatter<_Rg, _CharT>::set_brackets): Constrain with | |
| (format_kind<_Rg> == range_format::sequence). | |
| * testsuite/std/format/ranges/pr119861_neg.cc: New test. | |
| 2025-08-08 Jakub Jelinek <jakub@redhat.com> | |
| Backported from master: | |
| 2025-08-04 Jakub Jelinek <jakub@redhat.com> | |
| hexne <printfne@gmail.com> | |
| PR libstdc++/121373 | |
| * src/c++23/std.cc.in (std::ranges::shift_left, | |
| std::ranges::shift_right): Only export for C++23 and later. | |
| (std::ranges::fold_left_first_with_iter_result, | |
| std::ranges::fold_left_with_iter_result): Export. | |
| (std::byteswap): Export for C++23 and later. | |
| (std::ranges::iter_move, std::ranges::iter_swap): Export. | |
| (std::projected_value_t): Export for C++26 and later. | |
| (std::out_ptr_t, std::inout_ptr_t): Export. | |
| (std::ranges::iota_result): Export. | |
| (std::regex_constants): Export a lot of constants. | |
| (std::is_scoped_enum, std::is_scoped_enum_v): Export. | |
| 2025-08-08 Release Manager | |
| * GCC 15.2.0 released. | |
| 2025-07-24 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2025-07-15 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/119962 | |
| * include/std/ranges (join_view::_Iterator::_M_outer): Initialize. | |
| (lazy_split_view::_OuterIter::_M_current): Initialize. | |
| (join_with_view::_Iterator::_M_outer_it): Initialize. | |
| * testsuite/std/ranges/adaptors/join.cc (test15): New test. | |
| * testsuite/std/ranges/adaptors/join_with/1.cc (test05): New test. | |
| * testsuite/std/ranges/adaptors/lazy_split.cc (test13): New test. | |
| 2025-07-19 H.J. Lu <hjl.tools@gmail.com> | |
| Backported from master: | |
| 2025-07-09 H.J. Lu <hjl.tools@gmail.com> | |
| * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: | |
| Updated. | |
| 2025-07-11 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-07-09 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/119754 | |
| * include/bits/stl_uninitialized.h (__uninitialized_default): | |
| Do not use optimized implementation for constexpr case. Use | |
| _GLIBCXX20_CONSTEXPR instead of _GLIBCXX26_CONSTEXPR. | |
| 2025-07-11 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-07-09 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120997 | |
| * include/std/span (span::first, span::last, span::subspan): Do | |
| not use braced-init-list for return statements. | |
| * testsuite/23_containers/span/120997.cc: New test. | |
| 2025-07-11 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-07-08 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118681 | |
| * src/c++17/memory_resource.cc (choose_block_size): New | |
| function. | |
| (synchronized_pool_resource::do_allocate): Use choose_block_size | |
| to determine appropriate block size. | |
| (synchronized_pool_resource::do_deallocate): Likewise | |
| (unsynchronized_pool_resource::do_allocate): Likewise. | |
| (unsynchronized_pool_resource::do_deallocate): Likewise | |
| * testsuite/20_util/synchronized_pool_resource/118681.cc: New | |
| test. | |
| * testsuite/20_util/unsynchronized_pool_resource/118681.cc: New | |
| test. | |
| 2025-07-08 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-07-04 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/stl_algobase.h (__size_to_integer): Move | |
| misplaced unsigned keyword on __size_to_integer overloads for | |
| __GLIBCXX_TYPE_INT_N_3 integer type. | |
| 2025-07-03 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2025-07-03 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/120934 | |
| * include/std/ranges (concat_view::end): Refine condition | |
| for returning an iterator instead of default_sentinel as | |
| per the updated P/R for LWG 4166. | |
| * testsuite/std/ranges/concat/1.cc (test05): New test. | |
| 2025-07-03 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-07-03 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120931 | |
| * include/bits/stl_uninitialized.h (__uninitialized_fill<true>): | |
| Fix typo resulting in call to __do_uninit_copy instead of | |
| __do_uninit_fill. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_fill/120931.cc: | |
| New test. | |
| 2025-07-01 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2025-06-13 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/120648 | |
| * include/bits/chrono_io.h (__formatter_chrono::_M_format_to): | |
| Handle %c, %r, %x and %X by passing them to _M_c_r_x_X. | |
| (__formatter_chrono::_M_c_r_x_X): Reworked from _M_c. | |
| (__formatter_chrono::_M_c): Renamed into above. | |
| (__formatter_chrono::_M_r, __formatter_chrono::_M_x) | |
| (__formatter_chrono::_M_X): Removed. | |
| * testsuite/std/time/format/pr117214.cc: New tests for %r, %x, | |
| %X with date, time and durations. | |
| 2025-06-30 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2025-06-25 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/120650 | |
| * include/bits/chrono_io.h | |
| (formatter<chrono::month_day_last,_CharT>::parse): Call _M_parse with | |
| only Month being available. | |
| 2025-06-12 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-06-12 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120625 | |
| * include/std/format (__format::__disabled): Remove. | |
| (__formatter_disabled): New type. | |
| (formatter<char*, wchar_t>, formatter<const char*, wchar_t>) | |
| (formatter<char[N], wchar_t>, formatter<string, wchar_t>) | |
| (formatter<string_view, wchar_t>): Use __formatter_disabled as | |
| base class instead of formatter<__disabled, wchar_t>. | |
| * testsuite/std/format/formatter/120625.cc: New test. | |
| 2025-06-10 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-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-06 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2025-06-06 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/120432 | |
| * include/std/flat_map (flat_map::operator[]): Make the | |
| non-template overloads call try_emplace directly. Remove | |
| non-standard same_as constraint on the template overload. | |
| * testsuite/23_containers/flat_map/1.cc (test08): New test. | |
| 2025-06-06 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2025-06-04 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/chrono_io.h (__formatter_chrono:_M_s): Add missing | |
| __out argument to format_to call. | |
| 2025-06-01 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2025-05-29 Patrick Palka <ppalka@redhat.com> | |
| * include/std/flat_map (_Flat_map_impl::operator==): Compare | |
| keys and values separately. | |
| 2025-06-01 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2025-05-29 Patrick Palka <ppalka@redhat.com> | |
| Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120465 | |
| * include/std/flat_map (_Flat_map_impl::_M_erase_if): Use a | |
| projection with ranges::remove_if to pass a pair instead of | |
| a tuple to the predicate. | |
| * testsuite/23_containers/flat_map/1.cc (test07): Strengthen | |
| to expect the argument passed to the predicate is a pair. | |
| * testsuite/23_containers/flat_multimap/1.cc (test07): Likewise. | |
| 2025-05-27 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-05-22 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/util/pstl/test_utils.h (ForwardIterator::operator++): | |
| Fix return type. | |
| (BidirectionalIterator::operator++): Likewise. | |
| (BidirectionalIterator::operator--): Likewise. | |
| 2025-05-27 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-05-22 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120367 | |
| * include/bits/stl_vector.h (_M_range_initialize): Initialize | |
| _M_impl._M_finish. | |
| * testsuite/23_containers/vector/cons/from_range.cc: Check with | |
| a type that throws on construction. | |
| exceptions during construction. | |
| 2025-05-20 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-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/ranges (_ZipTransform::operator()): Remove name of | |
| unused parameter. | |
| (chunk_view::_Iterator, stride_view::_Iterator): Likewise. | |
| (join_with_view): Declare _Iterator and _Sentinel as class | |
| instead of struct. | |
| (repeat_view): Declare _Iterator as class instead of struct. | |
| 2025-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120293 | |
| * include/bits/chrono_io.h (_M_format_to_ostream): Add special | |
| case for local_time convertible to local_days. | |
| * testsuite/std/time/clock/local/io.cc: Check formatting of | |
| chrono::local_days. | |
| 2025-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-05-06 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120029 | |
| * src/c++17/fs_path.cc (path::operator+=(const path&)): Handle | |
| parameters that alias the path or one of its components. | |
| * testsuite/27_io/filesystem/path/concat/120029.cc: New test. | |
| * testsuite/experimental/filesystem/path/concat/120029.cc: New | |
| test. | |
| 2025-05-19 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-05-15 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120190 | |
| * include/std/format (format_kind): Adjust primary template to | |
| not depend on itself. | |
| * testsuite/std/format/ranges/format_kind_neg.cc: Adjust | |
| expected errors. Check more invalid specializations. | |
| 2025-05-12 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-05-12 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120187 | |
| * include/c_global/ciso646: Only give deprecated warning for | |
| C++20 and later. | |
| * include/c_global/ccomplex: Add @since to Doxygen comment. | |
| * include/c_global/cstdalign: Likewise. | |
| * include/c_global/cstdbool: Likewise. | |
| * include/c_global/ctgmath: Likewise. | |
| * testsuite/18_support/headers/ciso646/macros.cc: Remove | |
| dg-warning for c++17_only effective target. | |
| * testsuite/18_support/headers/ciso646/macros-2.cc: New test. | |
| 2025-05-12 Jonathan Wakely <jwakely@redhat.com> | |
| 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> | |
| Backported from master: | |
| 2025-05-12 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/xml/manual/status_cxx2023.xml: Update status of proposals | |
| implemented after GCC 14.2 release. | |
| * doc/html/*: Regenerate. | |
| 2025-05-12 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2025-05-12 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/119714 | |
| PR libstdc++/112490 | |
| * include/std/expected (expected::operator==): Replace | |
| non-dependent std::expected function parameter with a dependent | |
| one of type expected<_Vp, _Er> where _Vp matches _Tp. | |
| * testsuite/20_util/expected/119714.cc: New test. | |
| 2025-05-12 Patrick Palka <ppalka@redhat.com> | |
| Backported from master: | |
| 2025-04-29 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/119427 | |
| * include/std/flat_map (_Flat_map_impl::erase_if): Replace | |
| this hidden friend with ... | |
| (_Flat_map_impl::_M_erase_if): ... this member function. | |
| (flat_map): Export _Flat_map_impl::_M_erase_if. | |
| (erase_if(flat_map)): Define. | |
| (flat_multimap): Export _Flat_map_impl::_M_erase_if. | |
| (erase_if(flat_multimap)): Define. | |
| * include/std/flat_set (_Flat_set_impl::erase_if): Replace | |
| with ... | |
| (_Flat_set_impl::_M_erase_if): ... this member function. | |
| (flat_set): Export _Flat_set_impl::_M_erase_if. | |
| (erase_if(flat_set)): Define. | |
| (flat_multiset): Export _Flat_set_impl::_M_erase_if. | |
| (erase_if(flat_multiset)): Define. | |
| * testsuite/23_containers/flat_map/1.cc (test07): New test. | |
| * testsuite/23_containers/flat_multimap/1.cc (test07): New test. | |
| * testsuite/23_containers/flat_multiset/1.cc (test09): New test. | |
| * testsuite/23_containers/flat_set/1.cc (test09): New test. | |
| 2025-05-12 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-05-12 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118260 | |
| * python/hook.in: Suppress output from gdb.execute calls to | |
| register skips. | |
| 2025-05-12 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-05-12 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/xml/manual/status_cxx2017.xml: Update status for | |
| std::to_chars and std::from_chars. | |
| * doc/html/manual/*: Regenerate. | |
| 2025-05-07 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-05-07 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/120159 | |
| * src/c++23/std.cc.in (is_layout_compatible_v): Export. | |
| 2025-05-07 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2025-05-07 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/120114 | |
| * include/bits/chrono_io.h (__formatter_chrono::_M_format): Use __field_width. | |
| * testsuite/std/time/format/pr120114.cc: New test. | |
| 2025-05-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-05-06 Jonathan Wakely <jwakely@redhat.com> | |
| Backported from master: | |
| 2025-04-24 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/23_containers/forward_list/48101_neg.cc: Remove | |
| dg-prune-output that doesn't match anything. | |
| * testsuite/23_containers/list/48101_neg.cc: Likewise. | |
| * testsuite/23_containers/multiset/48101_neg.cc: Likewise. | |
| * testsuite/23_containers/set/48101_neg.cc: Likewise. | |
| 2025-05-06 ZENG Hao <c@cyano.cn> | |
| Backported from master: | |
| 2025-04-23 ZENG Hao <c@cyano.cn> | |
| * src/c++23/std.cc.in (atomic_signed_lock_free): Guard with | |
| preprocessor check for __cpp_lib_atomic_lock_free_type_aliases. | |
| (atomic_unsigned_lock_free): Likewise. | |
| 2025-04-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/aligned_storage/value.cc [_GLIBCXX_INLINE_VERSION]: | |
| Avoid align_msa check. | |
| * testsuite/20_util/function/cons/70692.cc: Remove now useless __8 namespace | |
| pattern. | |
| * testsuite/23_containers/map/48101_neg.cc: Likewise. | |
| * testsuite/23_containers/multimap/48101_neg.cc: Likewise. | |
| 2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/109162 | |
| * include/bits/version.def (format_ranges): Remove no_stdname and | |
| update value. | |
| * include/bits/version.h: Regenerate. | |
| * src/c++23/std.cc.in: Replace __glibcxx_format_ranges with | |
| __cpp_lib_format_ranges. | |
| * testsuite/std/format/formatter/lwg3944.cc: Likewise. | |
| * testsuite/std/format/parse_ctx.cc: Likewise. | |
| * testsuite/std/format/string.cc: Likewise. | |
| * testsuite/std/format/ranges/feature_test.cc: New test. | |
| 2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com> | |
| Backported from master: | |
| 2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/109162 | |
| * include/bits/formatfwd.h (__format::__parsable_with) | |
| (__format::__formattable_with, __format::__formattable_impl) | |
| (__format::__has_debug_format, __format::__const_formattable_range) | |
| (__format::__maybe_const_range, __format::__maybe_const) | |
| (std::formattable): Moved from std/format. | |
| (__format::Iter_for, std::range_formatter): Forward declare. | |
| * include/bits/stl_queue.h (std::formatter): Forward declare. | |
| (std::queue, std::priority_queue): Befriend formatter specializations. | |
| * include/bits/stl_stack.h (std::formatter): Forward declare. | |
| (std::stack): Befriend formatter specializations. | |
| * include/std/format (__format::_Iter_for): Define as struct with | |
| (__format::__parsable_with, __format::__formattable_with) | |
| (__format::__formattable_impl, __format::__has_debug_format) | |
| (_format::__const_formattable_range, __format::__maybe_const_range) | |
| (__format::__maybe_const, std::formattable): Moved to bits/formatfwd.h. | |
| (std::range_formatter): Remove default argument specified in declaration | |
| in bits/formatfwd.h. | |
| * include/std/queue: Include bits/version.h before bits/stl_queue.h. | |
| (formatter<queue<_Tp, _Container, _Compare>, _CharT>) | |
| (formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>): Define. | |
| * include/std/stack: Include bits/version.h before bits/stl_stack.h | |
| (formatter<stack<_Tp, _Container, _Compare>, _CharT>): Define. | |
| * testsuite/std/format/ranges/adaptors.cc: New test. | |
| 2025-04-25 Release Manager | |
| * GCC 15.1.0 released. | |
| 2025-04-22 Patrick Palka <ppalka@redhat.com> | |
| Revert: | |
| 2024-08-22 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/iterator_concepts.h (__detail::__projected): Define | |
| an optimized partial specialization for when the projection is | |
| std::identity. | |
| * testsuite/24_iterators/indirect_callable/projected.cc: Verify the | |
| optimization. | |
| 2025-04-22 Andreas Schwab <schwab@linux-m68k.org> | |
| Backported from master: | |
| 2025-04-22 Andreas Schwab <schwab@linux-m68k.org> | |
| * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. | |
| 2025-04-22 Andreas Schwab <schwab@linux-m68k.org> | |
| Backported from master: | |
| 2025-04-22 Andreas Schwab <schwab@linux-m68k.org> | |
| * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. | |
| 2025-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| Backported from master: | |
| 2025-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Regenerate. | |
| * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise. | |
| 2025-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| Backported from master: | |
| 2025-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. | |
| * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: | |
| Likewise. | |
| * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. | |
| * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: | |
| Likewise. | |
| 2025-04-22 Jakub Jelinek <jakub@redhat.com> | |
| Backported from master: | |
| 2025-04-22 Jakub Jelinek <jakub@redhat.com> | |
| * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. | |
| * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. | |
| * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. | |
| * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. | |
| * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. | |
| * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update. | |
| 2025-04-17 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. | |
| 2025-04-17 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/119840 | |
| * include/std/format (_M_parse_fill_and_align): Cast elements of | |
| __not_fill to _CharT. | |
| 2025-04-17 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/format (format_kind): Do not use 'not' | |
| alternative token to make the primary template ill-formed. Use | |
| the undeclared identifier __primary_template_not_defined and a | |
| comment that will appear in diagnostics. | |
| * testsuite/std/format/ranges/format_kind_neg.cc: New test. | |
| 2025-04-17 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/109162 | |
| * include/std/format (__format::__simply_formattable_range): Define. | |
| (range_formatter::format): Do not instantiate _M_format for mutable | |
| _Rg if const _Rg can be used. | |
| 2025-04-16 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/109162 | |
| * include/std/format (range_formatter::format): Format const range, | |
| only if reference type is not changed. | |
| * testsuite/std/format/ranges/formatter.cc: New tests. | |
| 2025-04-16 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/109162 | |
| * include/std/format (__formatter_int::_M_format_character_escaped) | |
| (__formatter_str::format): Use __sink.out() to produce _Sink_iter. | |
| (__format::__const_formattable_range): Moved closer to range_formatter. | |
| (__format::__maybe_const_range): Use `__conditional_t` and moved closer | |
| to range_formatter. | |
| (__format::__format_padded, __format::maybe_const) | |
| (__format::__indexed_formatter_storage, __format::__tuple_formatter) | |
| (std::formatter<pair<_Fp, _Sp>, _CharT>>) | |
| (std::formatter<tuple<_Tps...>, _CharT): Define. | |
| (std::formatter<_Rg, _CharT>::format): Cast incoming range to | |
| __format::__maybe_const_range<_Rg, _CharT>&. | |
| (std::formatter<_Rg, _CharT>::_M_format): Extracted from format, | |
| and use __format_padded. | |
| (std::formatter<_Rg, _CharT>::_M_format_no_padding): Rename... | |
| (std::formatter<_Rg, _CharT>::_M_format_elems): ...to this. | |
| (std::formatter<_Rg, _CharT>::_M_format_with_padding): Extracted as | |
| __format_padded. | |
| * testsuite/util/testsuite_iterators.h (test_input_range_nocopy): | |
| Define. | |
| * testsuite/std/format/ranges/formatter.cc: Tests for `m` specifier. | |
| * testsuite/std/format/ranges/sequence.cc: Tests for array and subrange. | |
| * testsuite/std/format/ranges/map.cc: New test. | |
| * testsuite/std/format/tuple.cc: New test. | |
| 2025-04-15 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/ranges (__glibcxx_want_ranges_iota): Do not | |
| define. | |
| 2025-04-15 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/numeric (ranges): Only declare namespace for C++23 | |
| and later. | |
| (ranges::iota_result): Fix indentation. | |
| * testsuite/17_intro/names.cc: Check ranges is not used as an | |
| identifier before C++20. | |
| 2025-04-15 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/109162 | |
| * include/std/format (__format::__has_debug_format, _Pres_type::_Pres_seq) | |
| (_Pres_type::_Pres_str, __format::__Stackbuf_size): Define. | |
| (_Separators::_S_squares, _Separators::_S_parens, _Separators::_S_comma) | |
| (_Separators::_S_colon): Define additional constants. | |
| (_Spec::_M_parse_fill_and_align): Define overload accepting | |
| list of excluded characters for fill, and forward existing overload. | |
| (__formatter_str::_M_format_range): Define. | |
| (__format::_Buf_sink) Use __Stackbuf_size for size of array. | |
| (__format::__is_map_formattable, std::range_formatter) | |
| (std::formatter<_Rg, _CharT>): Define. | |
| * src/c++23/std.cc.in (std::format_kind, std::range_format) | |
| (std::range_formatter): Export. | |
| * testsuite/std/format/formatter/lwg3944.cc: Guarded tests with | |
| __glibcxx_format_ranges. | |
| * testsuite/std/format/formatter/requirements.cc: Adjusted for standard | |
| behavior. | |
| * testsuite/23_containers/vector/bool/format.cc: Test vector<bool> formatting. | |
| * testsuite/std/format/ranges/format_kind.cc: New test. | |
| * testsuite/std/format/ranges/formatter.cc: New test. | |
| * testsuite/std/format/ranges/sequence.cc: New test. | |
| * testsuite/std/format/ranges/string.cc: New test. | |
| 2025-04-15 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/119748 | |
| * include/bits/basic_string.h (_S_copy_chars): Only optimize for | |
| contiguous iterators that are convertible to const charT*. Use | |
| explicit conversion to charT after dereferencing iterator. | |
| (_S_copy_range): Likewise for contiguous ranges. | |
| * include/bits/basic_string.tcc (_M_construct): Use explicit | |
| conversion to charT after dereferencing iterator. | |
| * include/bits/cow_string.h (_S_copy_chars): Likewise. | |
| (basic_string(from_range_t, R&&, const Allocator&)): Likewise. | |
| Only optimize for contiguous iterators that are convertible to | |
| const charT*. | |
| * testsuite/21_strings/basic_string/cons/char/119748.cc: New | |
| test. | |
| * testsuite/21_strings/basic_string/cons/wchar_t/119748.cc: | |
| New test. | |
| 2025-04-15 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/util/testsuite_iterators.h (test_container): Define | |
| array constructor for C++98 as well. | |
| 2025-04-14 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/21334 | |
| * doc/xml/manual/using.xml: Document that container data race | |
| avoidance rules do not apply to COW std::string. | |
| * doc/html/*: Regenerate. | |
| 2025-04-14 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/119725 | |
| * testsuite/std/format/debug.cc: Updated dg-options. | |
| * testsuite/std/format/debug_nonunicode.cc: Updated dg-options. | |
| 2025-04-11 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++17/fast_float/LOCAL_PATCHES: Update. | |
| 2025-04-11 Evgeny Karpov <Evgeny.Karpov@microsoft.com> | |
| * src/c++17/fast_float/fast_float.h (full_multiplication): | |
| Support aarch64-w64-mingw32 target. | |
| 2025-04-11 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/basic_string.h (_S_copy_chars): Replace overloads | |
| with constexpr-if and extend optimization to all contiguous | |
| iterators. | |
| * src/c++11/string-inst.cc: Extend comment. | |
| 2025-04-11 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/111055 | |
| * include/bits/version.def (containers_ranges): Define. | |
| * include/bits/version.h: Regenerate. | |
| * include/bits/ranges_base.h (__detail::__container_compatible_range) | |
| (__detail::__range_to_alloc_type, __detail::__range_mapped_type) | |
| (__detail::__range_key_type): Depend on __glibcxx_containers_ranges | |
| instead of __glibcxx_ranges_to_container. | |
| * include/bits/basic_string.h: Replace __glibcxx_ranges_to_container with | |
| __glibcxx_containers_ranges. | |
| * include/bits/cow_string.h: Likewise. | |
| * include/bits/deque.tcc: Likewise. | |
| * include/bits/forward_list.h: Likewise. | |
| * include/bits/stl_bvector.h: Likewise. | |
| * include/bits/stl_deque.h: Likewise. | |
| * include/bits/stl_list.h: Likewise. | |
| * include/bits/stl_map.h: Likewise. | |
| * include/bits/stl_multimap.h: Likewise. | |
| * include/bits/stl_multiset.h: Likewise. | |
| * include/bits/stl_queue.h: Likewise. | |
| * include/bits/stl_set.h: Likewise. | |
| * include/bits/stl_stack.h: Likewise. | |
| * include/bits/stl_vector.h: Likewise. | |
| * include/bits/unordered_map.h: Likewise. | |
| * include/bits/unordered_set.h: Likewise. | |
| * include/bits/vector.tcc: Likewise. | |
| * include/debug/deque: Likewise. | |
| * include/debug/forward_list: Likewise. | |
| * include/debug/list: Likewise. | |
| * include/debug/map.h: Likewise. | |
| * include/debug/multimap.h: Likewise. | |
| * include/debug/multiset.h: Likewise. | |
| * include/debug/set.h: Likewise. | |
| * include/debug/unordered_map: Likewise. | |
| * include/debug/unordered_set: Likewise. | |
| * include/debug/vector: Likewise. | |
| * include/std/deque: Provide __cpp_lib_containers_ranges. | |
| * include/std/forward_list: Likewise. | |
| * include/std/list: Likewise. | |
| * include/std/map: Likewise. | |
| * include/std/queue: Likewise. | |
| * include/std/set: Likewise. | |
| * include/std/stack: Likewise. | |
| * include/std/string: Likewise. | |
| * include/std/unordered_map: Likewise. | |
| * include/std/unordered_set: Likewise. | |
| * include/std/vector: Likewise. | |
| * testsuite/21_strings/basic_string/cons/from_range.cc: Test for value | |
| __cpp_lib_containers_ranges. | |
| * testsuite/23_containers/deque/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/forward_list/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/list/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/map/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/multimap/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/multiset/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/priority_queue/cons_from_range.cc: Likewise. | |
| * testsuite/23_containers/queue/cons_from_range.cc: Likewise. | |
| * testsuite/23_containers/set/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/stack/cons_from_range.cc: Likewise. | |
| * testsuite/23_containers/unordered_map/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/unordered_multimap/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/unordered_multiset/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/unordered_set/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/vector/bool/cons/from_range.cc: Likewise. | |
| * testsuite/23_containers/vector/cons/from_range.cc: Likewise. | |
| 2025-04-11 Jonathan Wakely <jwakely@redhat.com> | |
| Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/111055 | |
| * include/bits/basic_string.h (_S_copy_range): New function. | |
| (basic_string(from_range_t, R%%, const Alloc&)): New | |
| constructor. | |
| (append_range, assign_range, insert_range, replace_with_range): | |
| New functions. | |
| * include/bits/cow_string.h: Likewise. | |
| * testsuite/21_strings/basic_string/cons/from_range.cc: New | |
| test. | |
| * testsuite/21_strings/basic_string/modifiers/append/append_range.cc: | |
| New test. | |
| * testsuite/21_strings/basic_string/modifiers/assign/assign_range.cc: | |
| New test. | |
| * testsuite/21_strings/basic_string/modifiers/insert/insert_range.cc: | |
| New test. | |
| * testsuite/21_strings/basic_string/modifiers/replace/replace_with_range.cc: | |
| New test. | |
| 2025-04-11 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/109162 | |
| * include/bits/chrono_io.h (__detail::_Widen): Moved to std/format file. | |
| * include/bits/unicode-data.h: Regnerate. | |
| * include/bits/unicode.h (__unicode::_Utf_iterator::_M_units) | |
| (__unicode::__should_escape_category): Define. | |
| * include/std/format (_GLIBCXX_WIDEN_, _GLIBCXX_WIDEN): Copied from | |
| include/bits/chrono_io.h. | |
| (__format::_Widen): Moved from include/bits/chrono_io.h. | |
| (__format::_Term_char, __format::_Escapes, __format::_Separators) | |
| (__format::__should_escape_ascii, __format::__should_escape_unicode) | |
| (__format::__write_escape_seq, __format::__write_escaped_char) | |
| (__format::__write_escaped_acii, __format::__write_escaped_unicode) | |
| (__format::__write_escaped): Define. | |
| (__formatter_str::_S_trunc): Extracted truncation of character | |
| sequences. | |
| (__formatter_str::format): Handle _Pres_esc. | |
| (__formatter_int::_M_do_parse) [__glibcxx_format_ranges]: Parse '?'. | |
| (__formatter_int::_M_format_character_escaped): Define. | |
| (formatter<_CharT, _CharT>::format, formatter<char, wchar_t>::format): | |
| Handle _Pres_esc. | |
| (__formatter_str::set_debug_format, formatter<...>::set_debug_format) | |
| Guard with __glibcxx_format_ranges. | |
| (__format::_Fixedbuf_sink): Define. | |
| * testsuite/23_containers/vector/bool/format.cc: Use __format::_Widen | |
| and remove unnecessary <chrono> include. | |
| * testsuite/std/format/debug.cc: New test. | |
| * testsuite/std/format/debug_nonunicode.cc: New test. | |
| * testsuite/std/format/parse_ctx.cc (escaped_strings_supported): Define | |
| to true if __glibcxx_format_ranges is defined. | |
| * testsuite/std/format/string.cc (escaped_strings_supported): Define to | |
| true if __glibcxx_format_ranges is defined. | |
| 2025-04-10 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/version.def (constrained_equality): Only define | |
| as 202411 for C++23 and later, use 202403 for C++20. | |
| * include/bits/version.h: Regenerate. | |
| * testsuite/20_util/expected/equality_constrained.cc: Remove | |
| TODO comment. | |
| 2025-04-10 John David Anglin <danglin@gcc.gnu.org> | |
| * config/os/hpux/os_defines.h: Remove _GLIBCXX_USE_LONG_LONG | |
| define. | |
| 2025-04-09 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/115046 | |
| PR libstdc++/112490 | |
| * include/bits/stl_iterator.h (basic_const_iterator::operator-): | |
| Replace non-dependent basic_const_iterator function parameter with | |
| a dependent one of type basic_const_iterator<_It2> where _It2 | |
| matches _It. | |
| * testsuite/std/ranges/adaptors/as_const/1.cc (test04): New test. | |
| 2025-04-08 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/119671 | |
| * include/std/format (__formatter_fp::format): Do not invalidate | |
| __wstr unless _M_localized returns a valid string. | |
| * testsuite/std/format/functions/format.cc: Check wide string | |
| formatting of floating-point types with classic locale. | |
| 2025-04-07 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/119642 | |
| * include/bits/formatfwd.h: Remove stray pragma. | |
| 2025-04-07 Jonathan Wakely <jwakely@redhat.com> | |
| * include/precompiled/stdc++.h: Include <stdbit.h> and | |
| <stdckdint.h>. Include <stacktrace> unconditionally. | |
| 2025-04-07 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/doxygen/user.cfg.in (INPUT): Add flat_map, flat_set, | |
| text_encoding, stdbit.h and stdckdint.h. | |
| 2025-04-07 Thomas Schwinge <tschwinge@baylibre.com> | |
| PR target/119645 | |
| * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY) [GCN, nvptx]: | |
| Hard-code results. | |
| * configure: Regenerate. | |
| * configure.host [GCN, nvptx] (atomicity_dir): Set to | |
| 'cpu/generic/atomicity_builtins'. | |
| 2025-04-04 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/119620 | |
| * include/std/flat_set (_Flat_set_impl::_M_try_emplace): Split | |
| out into two overloads, one taking at least one argument and one | |
| taking zero arguments. Turn __k into an auto&& reference bound | |
| to __arg if it's already a value_type and otherwise bound to a | |
| lifetime-extended value_type temporary. | |
| * testsuite/23_containers/flat_multiset/1.cc (test08): New test. | |
| * testsuite/23_containers/flat_set/1.cc (test08): New test. | |
| 2025-04-04 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/101587 | |
| * include/bits/ranges_uninitialized.h (__detail::__mindist): | |
| Remove. | |
| (ranges::uninitialized_copy, ranges::uninitialized_copy_n) | |
| (ranges::uninitialized_move, ranges::uninitialized_move_n): Use | |
| comparison and assignment instead of __mindist. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc: | |
| Check with ranges that use integer-like class type for | |
| difference type. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc: | |
| Likewise. | |
| 2025-04-04 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/109162 | |
| * include/Makefile.am: Add bits/formatfwd.h. | |
| * include/Makefile.in: Add bits/formatfwd.h. | |
| * include/bits/version.def: Define __glibcxx_format_ranges without | |
| corresponding std name. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/format (basic_format_context, __format::__char): | |
| Move declartions to bits/formatfwd.h. | |
| (formatter<_Tp, _CharT>): Remove default argument for _CharT | |
| parameter, now specified in forward declaration in bits/formatfwd.h. | |
| * include/std/vector (formatter<_Bit_reference, _CharT>): Define. | |
| * include/bits/formatfwd.h: New file with forward declarations | |
| for bits of std/format. | |
| * testsuite/23_containers/vector/bool/format.cc: New test. | |
| 2025-04-04 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/basic_string.h: Check __glibcxx_string_view and | |
| __glibcxx_variant instead of __cplusplus >= 2017L. | |
| * include/bits/cow_string.h: Likewise. | |
| 2025-04-04 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/basic_string.tcc: Fix whitespace. | |
| 2025-04-04 Arsen Arsenović <arsen@aarsen.me> | |
| * include/bits/version.tpl: Implement no_stdname. | |
| * include/bits/version.def: Document no_stdname. | |
| 2025-04-03 Thomas Schwinge <tschwinge@baylibre.com> | |
| * config/cpu/nvptx/t-nvptx: Remove. | |
| * configure.host [nvptx]: Adjust. | |
| 2025-04-03 Thomas Schwinge <tschwinge@baylibre.com> | |
| PR target/119573 | |
| * config/cpu/nvptx/t-nvptx (AM_MAKEFLAGS): Don't amend. | |
| 2025-04-03 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/std/format/functions/format.cc: Restored line. | |
| 2025-04-03 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/119593 | |
| * include/bits/unicode.h | |
| (__unicode::__literal_encoding_is_unicode<_CharT>): | |
| Corrected handing for UTF-16 and UTF-32 with "LE" or "BE" suffix. | |
| * include/std/format (__formatter_str::_S_character_width): | |
| Define. | |
| (__formatter_str::_S_character_width): Updated passed char | |
| length. | |
| * testsuite/std/format/functions/format.cc: Test for wchar_t. | |
| 2025-04-02 John David Anglin <danglin@gcc.gnu.org> | |
| * config/os/hpux/os_defines.h: Only use long long when | |
| __cplusplus >= 201103L. | |
| 2025-04-02 Iain Sandoe <iain@sandoe.co.uk> | |
| * testsuite/lib/prune.exp: Prune ld warning about duplicatei | |
| rpaths. | |
| 2025-04-01 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/114945 | |
| * include/bits/vector.tcc (vector::_M_default_append): Add | |
| unreachable condition so the compiler knows that _M_finish is | |
| not null. | |
| * testsuite/23_containers/vector/capacity/114945.cc: New test. | |
| 2025-04-01 Thomas Schwinge <tschwinge@baylibre.com> | |
| PR target/119369 | |
| * config/cpu/gcn/cpu_defines.h: New. | |
| * configure.host [GCN] (cpu_defines_dir): Point to it. | |
| 2025-03-31 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/110498 | |
| * include/bits/vector.tcc (vector<bool, A>::_M_reallocate): | |
| Hoist loads of begin() and end() before allocation and use them | |
| to state an unreachable condition. | |
| * testsuite/23_containers/vector/bool/capacity/110498.cc: New | |
| test. | |
| 2025-03-31 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/114758 | |
| * include/bits/vector.tcc (vector<bool, A>::_M_fill_insert): | |
| Hoist loads of begin() and end() before allocation. | |
| * testsuite/23_containers/vector/bool/capacity/114758.cc: New | |
| test. | |
| 2025-03-31 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/119550 | |
| * acinclude.m4 (GLIBCXX_STRUCT_TM_TM_ZONE): New macro. | |
| * config.h.in: Regenerate. | |
| * configure: Regenerate. | |
| * configure.ac: Use GLIBCXX_STRUCT_TM_TM_ZONE. | |
| * include/bits/chrono_io.h (__formatter_chrono::_M_c): Check | |
| _GLIBCXX_USE_STRUCT_TM_TM_ZONE instead of | |
| _GLIBCXX_HAVE_STRUCT_TM_TM_ZONE. | |
| 2025-03-31 Jonathan Wakely <jwakely@redhat.com> | |
| * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Make | |
| std::basic_string::_M_construct patterns more precise. | |
| 2025-03-31 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/119545 | |
| * include/std/tuple (operator==): Convert comparison results to | |
| bool. | |
| * testsuite/20_util/tuple/comparison_operators/119545.cc: New | |
| test. | |
| 2025-03-31 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/119517 | |
| * include/bits/chrono_io.h (formatter): | |
| Add __format::__char for _CharT and adjust parse and format | |
| method signatures. | |
| * testsuite/std/time/format/pr119517.cc: New test. | |
| 2025-03-31 Jakub Jelinek <jakub@redhat.com> | |
| PR tree-optimization/103827 | |
| PR tree-optimization/80331 | |
| PR tree-optimization/87502 | |
| * config/abi/pre/gnu.ver (GLIBCXX_3.4.34): Use [jmy] rather than m | |
| in pattern for _M_construct<bool>(char const*, size_t). | |
| 2025-03-30 Jan Hubicka <hubicka@ucw.cz> | |
| PR tree-optimization/103827 | |
| PR tree-optimization/80331 | |
| PR tree-optimization/87502 | |
| * config/abi/pre/gnu.ver: Add version for _M_construct<bool> | |
| * include/bits/basic_string.h: (basic_string::_M_construct<bool>): Declare. | |
| (basic_string constructors): Use it. | |
| * include/bits/basic_string.tcc: (basic_string::_M_construct<bool>): New template. | |
| * src/c++11/string-inst.cc: Instantated S::_M_construct<bool>. | |
| 2025-03-28 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/117983 | |
| * testsuite/23_containers/vector/modifiers/insert/117983.cc: New | |
| test. | |
| 2025-03-28 David Malcolm <dmalcolm@redhat.com> | |
| * testsuite/17_intro/shared_with_static_deps.cc: Fix malformed | |
| dg-require-static-libstdcxx directive. | |
| * testsuite/17_intro/static.cc: Likewise. | |
| * testsuite/18_support/type_info/110572.cc: Likewise. | |
| * testsuite/20_util/to_chars/4.cc: Likewise. | |
| * testsuite/std/time/tzdb_list/pr118811.cc: Likewise. | |
| 2025-03-27 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/101587 | |
| * include/bits/ranges_uninitialized.h (__detail::__mindist): | |
| New function object. | |
| (ranges::uninitialized_copy, ranges::uninitialized_copy_n) | |
| (ranges::uninitialized_move, ranges::uninitialized_move_n): Use | |
| __mindist instead of std::min. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc: | |
| Check ranges with difference difference types. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc: | |
| Likewise. | |
| 2025-03-27 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/chrono_io.h (__formatter_chrono::_M_c): Use | |
| const_cast when setting tm.tm_zone. | |
| 2025-03-27 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++20/tzdata.zi: Import new file from 2025b release. | |
| 2025-03-27 Sam James <sam@gentoo.org> | |
| * testsuite/std/format/string_neg.cc: Add missing brace for dg-error. | |
| 2025-03-27 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| PR libstdc++/119488 | |
| * include/bits/version.def (constexpr_algorithms): Bump | |
| the feature-testing macro. | |
| * include/bits/version.h: Regenerate. | |
| * testsuite/25_algorithms/cpp_lib_constexpr.cc: Test the | |
| bumped value for the feature-testing macro. | |
| 2025-03-27 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| * include/bits/algorithmfwd.h (stable_partition): Mark it | |
| as constexpr for C++26. | |
| * include/bits/ranges_algo.h (__stable_partition_fn): Likewise. | |
| * include/bits/stl_algo.h (stable_partition): Mark it as | |
| constexpr for C++26; during constant evaluation use a new | |
| codepath where a temporary buffer of 1 element is used. | |
| * testsuite/25_algorithms/headers/algorithm/synopsis.cc | |
| (stable_partition): Add constexpr. | |
| * testsuite/25_algorithms/stable_partition/constexpr.cc: New test. | |
| 2025-03-27 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| * include/bits/algorithmfwd.h (inplace_merge): Mark it as | |
| constexpr for C++26. | |
| * include/bits/ranges_algo.h (__inplace_merge_fn): Likewise. | |
| * include/bits/stl_algo.h (inplace_merge): Mark it as constexpr; | |
| during constant evaluation, dispatch to the non-allocating | |
| codepath. | |
| * testsuite/25_algorithms/headers/algorithm/synopsis.cc | |
| (inplace_merge): Add constexpr. | |
| * testsuite/25_algorithms/inplace_merge/constexpr.cc: New test. | |
| 2025-03-27 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/119469 | |
| * include/bits/iterator_concepts.h (_IterMove::__result): Use | |
| decltype-specifier instead of an explicit type. | |
| * testsuite/24_iterators/customization_points/iter_move.cc: | |
| Check results for function references. | |
| 2025-03-26 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| * include/bits/version.def (constexpr_algorithms): Change | |
| the value of the feature-testing macro. | |
| * include/bits/version.h: Regenerate. | |
| * testsuite/25_algorithms/cpp_lib_constexpr.cc: Amend the | |
| check of the feature-testing macro. | |
| 2025-03-26 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/119415 | |
| * include/std/flat_set (_Flat_set_impl:insert_range): | |
| Replace __detail::__cpp17_input_iterator with __has_input_iter_cat. | |
| * testsuite/23_containers/flat_multiset/1.cc: New tests | |
| * testsuite/23_containers/flat_set/1.cc: New tests | |
| 2025-03-26 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/111055 | |
| * include/bits/deque.tcc (deque::prepend_range, deque::append_range) | |
| (deque::insert_range, __advance_dist): Define. | |
| (deque::_M_range_prepend, deque::_M_range_append): | |
| Extract from _M_range_insert_aux for _ForwardIterator(s). | |
| * include/bits/stl_deque.h (deque::assign_range): Define. | |
| (deque::prepend_range, deque::append_range, deque::insert_range): | |
| Declare. | |
| (deque(from_range_t, _Rg&&, const allocator_type&)): Define constructor | |
| and deduction guide. | |
| * include/debug/deque (deque::prepend_range, deque::append_range) | |
| (deque::assign_range): Define. | |
| (deque(from_range_t, _Rg&&, const allocator_type&)): Define constructor | |
| and deduction guide. | |
| * testsuite/23_containers/deque/cons/from_range.cc: New test. | |
| * testsuite/23_containers/deque/modifiers/append_range.cc: New test. | |
| * testsuite/23_containers/deque/modifiers/assign/assign_range.cc: | |
| New test. | |
| * testsuite/23_containers/deque/modifiers/prepend_range.cc: New test. | |
| * testsuite/23_containers/deque/modifiers/insert/insert_range.cc: New file. | |
| 2025-03-25 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/ranges (ranges::to): Allow unions as well as | |
| non-union class types. | |
| * testsuite/std/ranges/conv/lwg4229.cc: New test. | |
| 2025-03-25 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/108487 | |
| * include/bits/stl_vector.h (vector(initializer_list)): Call | |
| _M_range_initialize_n instead of _M_range_initialize. | |
| (vector(InputIterator, InputIterator)): Use _M_range_initialize_n | |
| for C++20 sized sentinels and forward iterators. | |
| (vector(from_range_t, R&&)): Use _M_range_initialize_n for sized | |
| ranges and forward ranges. | |
| (vector::_M_range_initialize(FwIt, FwIt, forward_iterator_tag)): | |
| Likewise. | |
| (vector::_M_range_initialize_n): New function. | |
| * testsuite/23_containers/vector/cons/108487.cc: New test. | |
| 2025-03-25 Jonathan Wakely <jwakely@redhat.com> | |
| * include/debug/vector (vector::assign_range): Use change in | |
| capacity to detect reallocation. | |
| (vector::insert_range, vector::append_range): Likewise. Remove | |
| unused variables. | |
| 2025-03-25 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/stl_bvector.h (vector::assign_range): More | |
| efficient implementation for forward/sized ranges. | |
| (vector::append_range): Handle potentially overlapping range. | |
| * include/bits/stl_vector.h (vector(from_range_t, R&&, Alloc)): | |
| Do not use append_range for non-sized input range case. | |
| (vector::append_range): Handle potentially overlapping range. | |
| * include/bits/vector.tcc (vector::insert_range): Forward range | |
| instead of moving it. | |
| * testsuite/23_containers/vector/bool/modifiers/insert/append_range.cc: | |
| Test overlapping ranges. | |
| * testsuite/23_containers/vector/modifiers/append_range.cc: | |
| Likewise. | |
| 2025-03-25 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118699 | |
| * testsuite/27_io/filesystem/operations/copy.cc: Check copying a | |
| file to a directory. | |
| 2025-03-25 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/119429 | |
| * include/std/format (__format::_Scanner::_Scanner): Cast | |
| default argument to size_t. | |
| 2025-03-25 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/119415 | |
| * include/std/flat_set (_Flat_set_impl:insert_range): | |
| Add __detail::__cpp17_input_iterator check. | |
| * testsuite/23_containers/flat_multiset/1.cc: New tests | |
| * testsuite/23_containers/flat_set/1.cc: New tests | |
| 2025-03-24 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/xml/manual/policy_data_structures_biblio.xml: Fix two | |
| broken links. | |
| * doc/html/manual/policy_data_structures.html: Regenerate. | |
| 2025-03-24 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/101527 | |
| * testsuite/24_iterators/common_iterator/101527.cc: New test. | |
| * testsuite/24_iterators/counted_iterator/101527.cc: New test. | |
| 2025-03-24 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/stl_bvector.h (vector<bool, A>): Enforce the | |
| C++20 requirement that the allocator's value_type matches the | |
| container. | |
| * testsuite/23_containers/vector/bool/cons/from_range.cc: Fix | |
| incorrect allocator type. | |
| 2025-03-21 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/117214 | |
| * configure.ac: Use AC_STRUCT_TIMEZONE. | |
| * config.h.in: Regenerate. | |
| * configure: Regenerate. | |
| * include/bits/chrono_io.h (__formatter_chrono::_M_c): Set | |
| tm_isdst and tm_zone. | |
| * testsuite/std/time/format/pr117214.cc: Check %c formatting of | |
| zoned_time and local time. | |
| 2025-03-21 XU Kailiang <xu2k3l4@outlook.com> | |
| Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/117214 | |
| * include/bits/chrono_io.h (__formatter_chrono::_M_c): Use | |
| _M_locale_fmt to format %c time point. | |
| * testsuite/std/time/format/pr117214.cc: New test. | |
| 2025-03-21 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/chrono_io.h (__formatter_chrono::_M_locale_fmt): | |
| Imbue locale into ostringstream. | |
| * testsuite/std/time/format/localized.cc: Check that correct | |
| locale is used for call to time_put::put. | |
| 2025-03-21 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/stl_vector.h (vector(from_range_t, Alloc)): Use | |
| delegating constructor instead of RAII guards. Use append_range | |
| for unsized input range case. | |
| 2025-03-21 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++23/std.compat.cc.in: Only export <stdbit.h> and | |
| <stdckdint.h> contents for C++26 and later. | |
| 2025-03-21 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++23/std.cc.in (tuple_element, tuple_element_t) | |
| (tuple_size, tuple_size_v, get): Export. | |
| (ranges::cache_latest_view, views::cache_latest): Export. | |
| (ranges::to_input_view, views::to_input): Export. | |
| (from_range_t, from_range): Export. | |
| 2025-03-20 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/debug/unordered_map (unordered_map): Add from_range | |
| constructors and deduction guides. | |
| (unordered_multimap): Likewise. | |
| * include/debug/unordered_set (unordered_set): Add from_range | |
| constructors and deduction guides. | |
| (unordered_multiset): Likewise. | |
| 2025-03-20 Jonathan Wakely <jwakely@redhat.com> | |
| * include/debug/map.h (map): Add from_range constructors and | |
| deduction guides. | |
| * include/debug/multimap.h (multimap): Likewise. | |
| * include/debug/multiset.h (multiset): Likewise. | |
| * include/debug/set.h (set): Likewise. | |
| 2025-03-20 Jakub Jelinek <jakub@redhat.com> | |
| * testsuite/18_support/numeric_limits/traps.cc (main): Fix comment | |
| typo. | |
| 2025-03-19 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/xml/manual/test.xml: Fix default for -std option. | |
| * doc/html/manual/test.html: Regenerate. | |
| 2025-03-19 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/locale_facets_nonio.tcc (time_put::do_put): Fix | |
| typo in comment. | |
| 2025-03-19 François Dumont <frs.dumont@gmail.com> | |
| * testsuite/23_containers/set/requirements/explicit_instantiation/alloc_ptr.cc: | |
| Activate the template member tests involving __cpp_lib_ranges_to_container | |
| support. | |
| 2025-03-19 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/20_util/stdbit/1.cc: Include <climits> instead of | |
| <limits.h>. | |
| 2025-03-19 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/ranges_base.h (__detail::__range_key_type): | |
| Replace RV::first_type with tuple_element_t<0, RV>. | |
| (__detail::__range_mapped_type) Replace RV::second_type | |
| with tuple_element_t<1, RV>. | |
| * testsuite/23_containers/flat_map/1.cc: New tests. | |
| * testsuite/23_containers/flat_multimap/1.cc: New tests. | |
| * testsuite/23_containers/map/cons/from_range.cc: New tests. | |
| * testsuite/23_containers/multimap/cons/from_range.cc: New tests. | |
| * testsuite/23_containers/unordered_map/cons/from_range.cc: New tests. | |
| * testsuite/23_containers/unordered_multimap/cons/from_range.cc: | |
| New tests. | |
| 2025-03-19 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/bits/unordered_map.h | |
| (unordered_map(from_range_t, _Rg&&, const allocator_type&)) | |
| (unordered_multimap(from_range_t, _Rg&&, const allocator_type&)): | |
| Define. | |
| * include/bits/unordered_set.h | |
| (unordered_set(from_range_t, _Rg&&, const allocator_type&)) | |
| (unordered_multiset(from_range_t, _Rg&&, const allocator_type&)): | |
| Define. | |
| * testsuite/23_containers/unordered_map/cons/from_range.cc: New tests. | |
| New tests. | |
| * testsuite/23_containers/unordered_multimap/cons/from_range.cc: | |
| New tests. | |
| * testsuite/23_containers/unordered_multiset/cons/from_range.cc: | |
| New tests. | |
| * testsuite/23_containers/unordered_set/cons/from_range.cc: New tests. | |
| * testsuite/std/ranges/conv/1.cc: New tests. | |
| 2025-03-19 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/119358 | |
| * include/bits/unordered_map.h (unordered_multimap::insert_range): | |
| Cast ranges::distance to size_type before passing to _M_rehash_insert. | |
| * include/bits/unordered_set.h (unordered_multiset::insert_range): | |
| Same as unordered_multimap::insert_range. | |
| * testsuite/23_containers/unordered_multimap/cons/from_range.cc: | |
| New tests. | |
| * testsuite/23_containers/unordered_multiset/cons/from_range.cc: | |
| New tests. | |
| 2025-03-18 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/111055 | |
| * include/bits/unordered_map.h (unordered_map): Define from_range | |
| constructors and insert_range member. | |
| (unordered_multimap): Likewise. | |
| * testsuite/23_containers/unordered_multimap/cons/from_range.cc: | |
| New test. | |
| * testsuite/23_containers/unordered_multimap/modifiers/insert_range.cc: | |
| New test. | |
| * testsuite/23_containers/unordered_map/cons/from_range.cc: | |
| New test. | |
| * testsuite/23_containers/unordered_map/modifiers/insert_range.cc: | |
| New test. | |
| 2025-03-18 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/111055 | |
| * include/bits/hashtable.h (_M_rehash_insert) | |
| (_M_insert_range_multi): Extracted rehashing for range insertion | |
| to separate function. | |
| * include/bits/unordered_set.h (unordered_set): Define from_range | |
| constructors and insert_range member. | |
| (unordered_multiset) Likewise. | |
| * testsuite/23_containers/unordered_multiset/cons/from_range.cc: | |
| New test. | |
| * testsuite/23_containers/unordered_multiset/modifiers/insert_range.cc: | |
| New test. | |
| * testsuite/23_containers/unordered_set/cons/from_range.cc: | |
| New test. | |
| * testsuite/23_containers/unordered_set/modifiers/insert_range.cc: | |
| New test. | |
| 2025-03-18 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/111055 | |
| * include/bits/stl_multiset.h: (inser_range) | |
| (multiset(from_range_t, _Rg&&, const _Compare&, const _Alloc&)) | |
| (multiset(from_range_t, _Rg&&, const _Alloc&)): Define. | |
| * include/bits/stl_set.h: (set(from_range_t, _Rg&&, const _Alloc&)) | |
| (set(from_range_t, _Rg&&, const _Compare&, const _Alloc&), insert_range): | |
| Define. | |
| * testsuite/23_containers/multiset/cons/from_range.cc: New test. | |
| * testsuite/23_containers/multiset/modifiers/insert/insert_range.cc: | |
| New test. | |
| * testsuite/23_containers/set/cons/from_range.cc: New test. | |
| * testsuite/23_containers/set/modifiers/insert/insert_range.cc: | |
| New test. | |
| 2025-03-18 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/111055 | |
| * include/bits/ranges_base.h (__detail::__range_to_alloc_type): | |
| Define. | |
| * include/bits/stl_multimap.h: (inser_range) | |
| (multimap(from_range_t, _Rg&&, const _Compare&, const _Alloc&)) | |
| (multimap(from_range_t, _Rg&&, const _Alloc&)): Define. | |
| * include/bits/stl_map.h: (map(from_range_t, _Rg&&, const _Alloc&)) i | |
| (map(from_range_t, _Rg&&, const _Compare&, const _Alloc&), insert_range): | |
| Define. | |
| * testsuite/23_containers/multimap/cons/from_range.cc: New test. | |
| * testsuite/23_containers/multimap/modifiers/insert/insert_range.cc: New test. | |
| * testsuite/23_containers/map/cons/from_range.cc: New test. | |
| * testsuite/23_containers/map/modifiers/insert/insert_range.cc: New test. | |
| 2025-03-14 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/119282 | |
| * include/bits/stl_vector.h (vector::vector(from_range_t)): Add | |
| missing 'constexpr' to local class _Clear. | |
| * testsuite/std/ranges/conv/1.cc (test_pr119282): New test. | |
| 2025-03-14 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/111138 | |
| * include/std/ranges (_ZipTransform::operator()): | |
| Create separate overload for calls with empty range pack, | |
| and add move_constructible, regular_invocable and | |
| is_object_v<invoke_result_t<...>>> constraints. | |
| * testsuite/std/ranges/zip_transform/1.cc: New tests | |
| Jonathan Wakely <jwakely@redhat.com> | |
| 2025-03-14 Thomas Schwinge <tschwinge@baylibre.com> | |
| PR target/92713 | |
| PR target/101544 | |
| * config/cpu/nvptx/cpu_defines.h: New. | |
| * config/cpu/nvptx/t-nvptx: Likewise. | |
| * configure.host: Handle GCN, nvptx. | |
| 2025-03-14 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * testsuite/23_containers/priority_queue/cons_from_range.cc: | |
| Add `#include <algorithm>. | |
| * testsuite/23_containers/priority_queue/members/push_range.cc: | |
| Add `#include <algorithm>. | |
| 2025-03-14 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| * include/bits/shared_ptr_base.h (lock): Fixed a compile error | |
| when calling lock() on a weak_ptr<T[]>, by removing an | |
| erroneous usage of element_type from within lock(). | |
| * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc: | |
| Add more tests for array types. | |
| * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc: | |
| Likewise. | |
| * testsuite/20_util/shared_ptr/requirements/1.cc: New test. | |
| * testsuite/20_util/weak_ptr/requirements/1.cc: New test. | |
| 2025-03-13 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/116440 | |
| * include/std/tuple (tuple::tuple(const _Elements&...)) | |
| [C++20]: Turn into a template. | |
| * testsuite/20_util/tuple/116440.C: New test. | |
| 2025-03-13 Jonathan Wakely <jwakely@redhat.com> | |
| Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/111055 | |
| * include/bits/stl_queue.h (queue(from_range_t, _Rg&&)) | |
| (queue(from_range_t, _Rg&&, const _Alloc&), push_range): | |
| Define. | |
| (priority_queue(from_range_t, R&&, const Compare&)) | |
| (push_range): Define. | |
| * include/bits/stl_stack.h (stack(from_range_t, R&&)) | |
| (stack(from_range_t, R&&, const Alloc&), push_range): Define. | |
| * testsuite/util/testsuite_iterators.h (test_range_nocopy): Define. | |
| * testsuite/23_containers/priority_queue/cons_from_range.cc: New test. | |
| * testsuite/23_containers/priority_queue/members/push_range.cc: New test. | |
| * testsuite/23_containers/queue/cons_from_range.cc: New test. | |
| * testsuite/23_containers/queue/members/push_range.cc: New test. | |
| * testsuite/23_containers/stack/cons_from_range.cc: New test. | |
| * testsuite/23_containers/stack/members/push_range.cc: New test. | |
| 2025-03-13 Jonathan Wakely <jwakely@redhat.com> | |
| * include/Makefile.am: Add stdckdint.h. | |
| * include/Makefile.in: Regenerate. | |
| * src/c++23/std.compat.cc.in: Export <stdckdint.h> functions. | |
| * include/c_compatibility/stdckdint.h: New file. | |
| * testsuite/26_numerics/stdckdint/1.cc: New test. | |
| * testsuite/26_numerics/stdckdint/2_neg.cc: New test. | |
| 2025-03-13 Jonathan Wakely <jwakely@redhat.com> | |
| * include/Makefile.am: Add stdbit.h. | |
| * include/Makefile.in: Regenerate. | |
| * src/c++23/std.compat.cc.in: Export <stdbit.h> functions. | |
| * include/c_compatibility/stdbit.h: New file. | |
| * testsuite/20_util/stdbit/1.cc: New test. | |
| * testsuite/20_util/stdbit/2_neg.cc: New test. | |
| 2025-03-13 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/119135 | |
| * include/std/ranges: Include <utility>. | |
| (views::__detail::__is_ref_view): Replace with ... | |
| (views::__detail::__is_constable_ref_view): ... this. | |
| (views::_AsConst::operator()): Replace bogus use of element_type | |
| in the ref_view branch. | |
| * testsuite/std/ranges/adaptors/as_const/1.cc (test03): Extend | |
| test. | |
| 2025-03-13 Thomas Schwinge <tschwinge@baylibre.com> | |
| * acinclude.m4 (GLIBCXX_ENABLE_CXX_FLAGS): Append to | |
| 'EXTRA_CXX_FLAGS' any additional flags. | |
| * configure: Regenerate. | |
| * configure.host: Document 'EXTRA_CFLAGS', 'EXTRA_CXX_FLAGS'. | |
| 2025-03-13 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/108053 | |
| * include/std/format (basic_format_arg::_M_visit_user): | |
| Helper function for wrapping extension types into handle. | |
| (visit_format_arg): Call `_M_visit_user` instead of `_M_visit`. | |
| (basic_format_arg::visit): As above. | |
| (__format::__visit_format_arg): Provides direct access to | |
| values stored in basic_format_arg. | |
| (__format::__int_from_arg): Use __format::__visit_format_arg | |
| instead of std::visit_format_arg. | |
| (_Formatting_scanner::_M_format_arg): As above. | |
| (_Checking_scanner::__do_vformat_to): As above. | |
| * testsuite/std/format/arguments/args.cc: New tests. | |
| * testsuite/std/format/string.cc: Test for using __int128 | |
| as width/precision. | |
| 2025-03-12 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/version.def (ranges_to_input): Define. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/ranges (ranges::to_input_view): Define for C++26. | |
| (views::__detail::__can_to_input): Likewise. | |
| (views::_ToInput, views::to_input): Likewise. | |
| * testsuite/std/ranges/adaptors/to_input/1.cc: New test. | |
| 2025-03-12 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/format: Include <bits/monostate.h> instead of | |
| <variant>. | |
| 2025-03-12 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/format (basic_format_parse_context::__once): New | |
| variable template. | |
| (basic_format_parse_context::__valid_types_for_check_dynamic_spec): | |
| New function template for checking argument types. | |
| (basic_format_parse_context::__check_dynamic_spec): New function | |
| template to implement the common check_dynamic_spec logic. | |
| (basic_format_parse_context::check_dynamic_spec_integral): Call | |
| __check_dynamic_spec instead of check_dynamic_spec. | |
| (basic_format_parse_context::check_dynamic_spec_string): | |
| Likewise. Use _CharT instead of char_type consistently. | |
| (basic_format_parse_context::check_dynamic_spec): Use | |
| __valid_types_for_check_dynamic_spec for precondition checks and | |
| call __check_dynamic_spec for checking the arg id. | |
| * testsuite/std/format/parse_ctx_neg.cc: Adjust expected errors. | |
| 2025-03-12 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/future (packaged_task::packaged_task(F&&)): Add | |
| static_assert. | |
| * testsuite/30_threads/packaged_task/cons/dangling_ref.cc: Add | |
| dg-error for new static assertion. | |
| * testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc: New | |
| test. | |
| 2025-03-12 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/chrono (__detail::__get_leap_second_info): Update | |
| expiry date for leap seconds list. | |
| * src/c++20/tzdata.zi: Import new file from 2025a release. | |
| * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds) | |
| Update expiry date for leap seconds list. | |
| 2025-03-12 Tomasz Kamiński <tkaminsk@redhat.com> | |
| * include/std/format (formatter<_Float16, _CharT>): Define only if | |
| _GLIBCXX_FLOAT_IS_IEEE_BINARY32 macro is defined. | |
| (formatter<_Float16, _CharT>): As above. | |
| (formatter<__gnu_cxx::__bfloat16_t, _CharT>): As above. | |
| (formatter<_Float64, _CharT>): Define only if | |
| _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 is defined. | |
| (basic_format_arg::_S_to_arg_type): Normalize _Float32 and _Float64 | |
| only to float and double respectivelly. | |
| (basic_format_arg::_S_to_enum): Remove handling of _Float32 and _Float64. | |
| 2025-03-12 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/xml/manual/strings.xml: Tweak formatting. Add example | |
| using lambda. | |
| * doc/html/manual/strings.html: Regenerate. | |
| 2025-03-12 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/unique_ptr.h (unique_ptr::operator*): Add | |
| static_assert to check for dangling reference, as per LWG 4148. | |
| * testsuite/20_util/unique_ptr/lwg4148.cc: New test. | |
| 2025-03-12 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/ranges_util.h (ranges::_detail::__has_arrow): | |
| Require operator->() to be valid on const-qualified type, as per | |
| LWG 4112. | |
| * testsuite/std/ranges/adaptors/lwg4112.cc: New test. | |
| 2025-03-12 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/format | |
| (basic_format_parse_context::check_dynamic_spec): Require a | |
| non-empty parameter pack, as per LWG 4142. | |
| * testsuite/std/format/parse_ctx.cc: Remove call of | |
| check_dynamic_spec with empty template argument list. | |
| * testsuite/std/format/parse_ctx_neg.cc: Add dg-error to call of | |
| check_dynamic_spec with empty template argument list. | |
| 2025-03-08 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| * include/bits/version.def (atomic_value_initialization): | |
| Guard the FTM with the language concepts FTM. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/atomic (atomic): When atomic value init is | |
| defined, change the defaulted default constructor to | |
| a non-defaulted one, constraining it as per LWG4169. | |
| Otherwise, keep the existing constructor. | |
| Remove the NSDMI for the _M_i member. | |
| (_GLIBCXX20_INIT): Drop the macro, as it is not needed any more. | |
| * testsuite/29_atomics/atomic/69301.cc: Test that | |
| an atomic wrapping a non-default-constructible type is | |
| always itself non-default-constructible (in all language | |
| modes). | |
| * testsuite/29_atomics/atomic/cons/trivial.cc: New test. | |
| 2025-03-08 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/stl_algobase.h (__nothrow_contiguous_iterator): | |
| Remove. | |
| (__memcpyable_iterators): Simplify. | |
| (__copy_move_a2, __copy_n_a, __copy_move_backward_a2): Call | |
| std::to_address on the iterators after advancing them. | |
| * testsuite/25_algorithms/copy/contiguous.cc: New test. | |
| * testsuite/25_algorithms/copy_backward/contiguous.cc: New test. | |
| * testsuite/25_algorithms/copy_n/contiguous.cc: New test. | |
| 2025-03-07 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/forward_list (erase): Change lambda to have | |
| explicit return type and const parameter type. | |
| * include/std/list (erase): Likewise. | |
| * testsuite/23_containers/forward_list/erasure.cc: Check lambda | |
| is correct. | |
| * testsuite/23_containers/list/erasure.cc: Likewise. | |
| 2025-03-07 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/chrono_io.h (chrono::__detail::from_stream): Add | |
| deleted function as poison pill for unqualified lookup. | |
| 2025-03-07 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/expected (expected<cv void,E>::value()&&): | |
| Add missing static_assert for LWG 3940. | |
| * testsuite/20_util/expected/lwg3843.cc: New test. | |
| 2025-03-06 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/unique_lock.h (unique_lock::operator=): Fix for | |
| self-move-assignment. | |
| * include/std/shared_mutex (shared_lock::operator=): Add | |
| comment. | |
| * testsuite/30_threads/shared_lock/cons/lwg4172.cc: New test. | |
| * testsuite/30_threads/unique_lock/cons/lwg4172.cc: New test. | |
| 2025-03-06 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/stl_list.h (list::pop_front, list::pop_back): | |
| Add non-empty assertions. | |
| 2025-03-06 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/ranges_util.h: Include <bits/stl_pair.h>. | |
| 2025-03-06 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/span (span::~span): Remove, as per LWG 3903. | |
| 2025-03-06 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/119144 | |
| * testsuite/26_numerics/complex/tuple_like.cc: Include | |
| <algorithm>, replace std::string with std::string_view, | |
| instantiate tests for long instead of size_t. | |
| 2025-03-06 Jonathan Wakely <jwakely@redhat.com> | |
| Thomas Schwinge <tschwinge@baylibre.com> | |
| * src/c++20/tzdb.cc [__GTHREADS && !__GTHREADS_CXX0X]: Use | |
| '__gnu_cxx::__mutex'. | |
| 2025-03-06 Thomas Schwinge <tschwinge@baylibre.com> | |
| * src/c++20/format.cc (conv): Tag 'out' as '[[maybe_unused]]'. | |
| 2025-03-06 Thomas Schwinge <tschwinge@baylibre.com> | |
| * src/c++17/fs_dir.cc (do_unlink): Tag 'is_directory' as | |
| '[[maybe_unused]]'. | |
| 2025-03-06 Thomas Schwinge <tschwinge@baylibre.com> | |
| * src/filesystem/dir-common.h (openat): Tag 'nofollow' as | |
| '[[maybe_unused]]'. | |
| 2025-03-06 Thomas Schwinge <tschwinge@baylibre.com> | |
| Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/c++config [!__cpp_exceptions] | |
| (_GLIBCXX_THROW_OR_ABORT): Reference '_EXC'. | |
| 2025-03-06 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/20_util/specialized_algorithms/uninitialized_copy/constexpr.cc: | |
| Do not test COW std::string in constexpr contexts. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constexpr.cc: | |
| Likewise. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_fill/constexpr.cc: | |
| Likewise. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_move/constexpr.cc: | |
| Likewise. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constexpr.cc: | |
| Likewise. | |
| 2025-03-06 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| PR libstdc++/113310 | |
| * include/bits/stl_pair.h (get): Forward-declare std::get for | |
| std::complex. | |
| * include/bits/version.def (tuple_like): Bump the value of | |
| the feature-testing macro in C++26. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/complex: Implement the tuple protocol for | |
| std::complex. | |
| (tuple_size): Specialize for std::complex. | |
| (tuple_element): Ditto. | |
| (__is_tuple_like_v): Ditto. | |
| (complex): Add a private getter to obtain references to the real | |
| and the imaginary part, on the primary class template and on its | |
| specializations. | |
| (get): Add overloads of std::get for std::complex. | |
| * testsuite/20_util/tuple/tuple_like_ftm.cc: New test. | |
| * testsuite/26_numerics/complex/tuple_like.cc: New test. | |
| 2025-03-05 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/ranges (enumerate_view::_Iterator::operator-): | |
| Add noexcept, as per LWG 3912. | |
| * testsuite/std/ranges/adaptors/enumerate/1.cc: Check iterator | |
| difference is noexcept. | |
| 2025-03-05 yxj-github-437 <2457369732@qq.com> | |
| * src/c++23/std-clib.cc.in (timespec): Move within preprocessor | |
| group guarded by _GLIBCXX_HAVE_TIMESPEC_GET. | |
| 2025-03-05 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/119110 | |
| * testsuite/25_algorithms/move/constrained.cc: Move test06 | |
| function to ... | |
| * testsuite/25_algorithms/move/105609.cc: New test. | |
| * testsuite/25_algorithms/move_backward/constrained.cc: Move | |
| test04 function to ... | |
| * testsuite/25_algorithms/move_backward/105609.cc: New test. | |
| 2025-03-05 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/version.def (ranges_cache_latest): Define. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/ranges (__detail::__non_propagating_cache::_M_reset): | |
| Export from base class _Optional_base. | |
| (cache_latest_view): Define for C++26. | |
| (cache_latest_view::_Iterator): Likewise. | |
| (cache_latest_view::_Sentinel): Likewise. | |
| (views::__detail::__can_cache_latest): Likewise. | |
| (views::_CacheLatest, views::cache_latest): Likewise. | |
| * testsuite/std/ranges/adaptors/cache_latest/1.cc: New test. | |
| 2025-03-05 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| * include/bits/stl_algo.h (__stable_sort): Use if consteval | |
| instead of is_constant_evaluated. | |
| 2025-03-05 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/115215 | |
| PR libstdc++/115218 | |
| * include/std/ranges | |
| (concat_view::iterator::_S_invoke_with_runtime_index): Use | |
| __builtin_unreachable in recursive lambda to certify it always | |
| exits via 'return'. | |
| (concat_view::iterator::iterator): In the const-converting | |
| constructor, direct initialize _M_it. | |
| (views::_Concat::operator()): Adjust constraints in the | |
| single-argument case as per LWG 4082. | |
| * testsuite/std/ranges/concat/1.cc (test01): Call it at runtime | |
| too. | |
| (test04): New test. | |
| 2025-03-05 Tomasz Kamiński <tkaminsk@redhat.com> | |
| PR libstdc++/119121 | |
| * include/bits/ranges_util.h (__detail::__pair_like_convertible_from): | |
| Use `_Tp` in `is_reference_v` check | |
| * testsuite/std/ranges/subrange/tuple_like.cc: New tests for | |
| pair-like conversion | |
| 2025-03-05 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| * include/bits/ranges_uninitialized.h: Mark the specialized | |
| memory algorithms as constexpr in C++26. Also mark the members | |
| of the _DestroyGuard helper class. | |
| * include/bits/stl_uninitialized.h: Ditto. | |
| * include/bits/stl_construct.h: (_Construct_novalue) Mark it | |
| as constexpr in C++26. | |
| * include/bits/version.def (raw_memory_algorithms): Bump the | |
| feature-testing macro for C++26. | |
| * include/bits/version.h: Regenerate. | |
| * testsuite/20_util/headers/memory/synopsis.cc: Add constexpr to | |
| the uninitialized_* algorithms (when in C++26) in the test. | |
| * testsuite/20_util/specialized_algorithms/feature_test_macro.cc: | |
| New test. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_copy/constexpr.cc: | |
| New test. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constexpr.cc: | |
| New test. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_fill/constexpr.cc: | |
| New test. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_move/constexpr.cc: | |
| New test. | |
| * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constexpr.cc: | |
| New test. | |
| 2025-03-04 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/xml/manual/test.xml: Remove stray comma. | |
| * doc/html/manual/test.html: Regenerate. | |
| 2025-02-28 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/106612 | |
| * include/bits/iterator_concepts.h (_IterMove::__iter_ref_t): | |
| New alias template. | |
| (_IterMove::__result): Use __iter_ref_t instead of | |
| std::iter_reference_t. | |
| (_IterMove::__type): Remove incorrect __dereferenceable | |
| constraint. | |
| (_IterMove::operator()): Likewise. Add correct constraints. Use | |
| __iter_ref_t instead of std::iter_reference_t. Forward parameter | |
| as correct value category. | |
| (iter_swap): Add comments. | |
| * testsuite/24_iterators/customization_points/iter_move.cc: Test | |
| that iter_move is found by ADL and that rvalue arguments are | |
| handled correctly. | |
| 2025-02-28 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/105609 | |
| * include/bits/ranges_algobase.h (__detail::__assign_one): New | |
| helper function. | |
| (__copy_or_move, __copy_or_move_backward): Use new function | |
| instead of std::__assign_one. | |
| * testsuite/25_algorithms/move/constrained.cc: Check that | |
| ADL iter_move is used in preference to std::move. | |
| * testsuite/25_algorithms/move_backward/constrained.cc: | |
| Likewise. | |
| 2025-02-28 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/112803 | |
| * include/std/ranges (ranges::to): Add static assertions to | |
| enforce Mandates conditions. | |
| * testsuite/std/ranges/conv/112803.cc: New test. | |
| 2025-02-28 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/104606 | |
| * include/std/optional (operator<=>): Revert r14-9771 change. | |
| Add constraint checking the validity of the return type | |
| compare_three_way_result_t before the three_way_comparable_with | |
| constraint. | |
| 2025-02-28 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/112490 | |
| * include/bits/stl_iterator.h (basic_const_iterator::operator<): | |
| Replace non-dependent basic_const_iterator function parameter with | |
| a dependent one of type basic_const_iterator<_It3> where _It3 | |
| matches _It. | |
| (basic_const_iterator::operator>): Likewise. | |
| (basic_const_iterator::operator<=): Likewise. | |
| (basic_const_iterator::operator>=): Likewise. | |
| * testsuite/24_iterators/const_iterator/112490.cc: New test. | |
| 2025-02-27 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/stacktrace (_Impl::_M_allocate): Fix outdated | |
| comment. | |
| 2025-02-26 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/118083 | |
| * include/bits/ranges_base.h | |
| (ranges::__access::__possibly_const_range): Mention LWG 4027. | |
| 2025-02-25 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| * include/bits/algorithmfwd.h (stable_sort): Add constexpr. | |
| * include/bits/ranges_algo.h (__stable_sort_fn): Add constexpr | |
| to the function call operators. | |
| * include/bits/stl_algo.h (__stable_sort): Add constexpr. | |
| During constant evaluation, always use the non-allocating path. | |
| (stable_sort): Add constexpr. | |
| (__inplace_stable_sort): Likewise. | |
| (__merge_without_buffer): Likewise. | |
| * include/bits/version.def (constexpr_algorithms): Bump value | |
| for C++26. | |
| * include/bits/version.h: Regnerate. | |
| * testsuite/25_algorithms/cpp_lib_constexpr.cc: Test the bumped | |
| feature-testing macro. | |
| * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adapt | |
| the test to constexpr stable_sort. | |
| * testsuite/25_algorithms/stable_sort/constexpr.cc: New test. | |
| 2025-02-25 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| * include/bits/c++config (_GLIBCXX26_CONSTEXPR): New macro. | |
| 2025-02-25 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/93059 | |
| * include/bits/stl_algobase.h (__fill_a1): Fix typo in SFINAE | |
| constraint. | |
| 2025-02-25 François Dumont <frs.dumont@gmail.com> | |
| * include/bits/hashtable_policy.h | |
| (_Hash_code_base::_M_copy_code, _Hash_code_base::_M_store_code): Remove. | |
| * include/bits/hashtable.h (_M_hash_code_ext): New. | |
| (_M_merge_multi(_Hashtable&)): Use latter. | |
| (_M_copy_code): New. | |
| (_M_assign): Use latter. | |
| (_M_bucket_index_ex): New. | |
| (_M_equals): Use latter. | |
| (_M_store_code): New. | |
| (_M_src_hash_code): Remove key_type parameter. | |
| * testsuite/23_containers/unordered_map/modifiers/merge.cc (test10): New | |
| test case. | |
| 2025-02-25 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/118083 | |
| * include/bits/ranges_base.h | |
| (ranges::__access::__possibly_const_range): Adjust logic as per | |
| LWG 4027. Add missing input_range constraint. | |
| * testsuite/std/ranges/access/cbegin.cc (test05): Verify LWG | |
| 4027 testcases. | |
| * testsuite/std/ranges/access/cdata.cc: Adjust, simplify and | |
| consolidate some tests after the above. | |
| * testsuite/std/ranges/access/cend.cc: Likewise. | |
| * testsuite/std/ranges/access/crbegin.cc: Likewise. | |
| * testsuite/std/ranges/access/crend.cc: Likewise. | |
| * testsuite/std/ranges/adaptors/join.cc: Likewise. | |
| * testsuite/std/ranges/adaptors/take_while.cc: Likewise. | |
| * testsuite/std/ranges/adaptors/transform.cc: Likewise. | |
| 2025-02-22 Jonathan Wakely <jwakely@redhat.com> | |
| PR c++/118981 | |
| * src/c++20/tzdb.cc: Use init_priority(98) instead of | |
| init_priority(99). | |
| 2025-02-22 Thomas Schwinge <tschwinge@baylibre.com> | |
| * testsuite/lib/prune.exp (proc libstdc++-dg-prune): Turn | |
| 'sorry, unimplemented: dynamic stack allocation not supported' into | |
| UNSUPPORTED. | |
| 2025-02-22 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/atomic_base.h (__atomic_base<_ITp>): Remove | |
| misleading comment. | |
| 2025-02-22 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++17/floating_from_chars.cc (__floating_from_chars_hex): | |
| Remove redundant cast. | |
| 2025-02-20 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118559 | |
| * include/std/type_traits (rank, rank_v): Do not use | |
| __array_rank for Clang 19 and older. | |
| 2025-02-20 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Add parentheses. | |
| 2025-02-20 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118855 | |
| * include/std/bit (__count_lzero, __count_rzero, __popcount): | |
| Use type-generic built-ins when available. | |
| 2025-02-20 Jonathan Wakely <jwakely@redhat.com> | |
| * include/experimental/bits/simd.h (__find_next_valid_abi): Cast | |
| __bit_ceil argument to unsigned. | |
| * src/c++17/floating_from_chars.cc (__floating_from_chars_hex): | |
| Cast __bit_ceil argument to unsigned. | |
| * src/c++17/memory_resource.cc (big_block): Cast __bit_width | |
| argument to unsigned. | |
| 2025-02-20 Jonathan Wakely <jwakely@redhat.com> | |
| * src/c++17/memory_resource.cc (default_res): Define here | |
| instead of including default_resource.h. | |
| * src/c++98/globals_io.cc (__ioinit): Define here instead of | |
| including ios_base_init.h. | |
| * src/c++17/default_resource.h: Removed. | |
| * src/c++98/ios_base_init.h: Removed. | |
| 2025-02-20 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118811 | |
| * src/c++20/tzdb.cc (tzdb_list::_Node): Use init_priority | |
| attribute on static data members. | |
| * testsuite/std/time/tzdb_list/pr118811.cc: New test. | |
| 2025-02-20 Patrick Palka <ppalka@redhat.com> | |
| * include/std/ranges (concat_view::iterator): Rename to ... | |
| (concat_view::_Iterator): ... this throughout. | |
| 2025-02-20 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/115209 | |
| * include/bits/version.def (ranges_concat): Depend on | |
| __cpp_pack_indexing. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/ranges (__detail::__last_is_common): Remove. | |
| (__detail::__all_but_first_sized): New. | |
| (concat_view::end): Use C++26 pack indexing instead of | |
| __last_is_common as per R8 of P2542. | |
| (concat_view::iterator::operator-): Update constraints on | |
| iter/sent overloads as per R8 of P2542. | |
| 2025-02-15 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/shared_ptr_base.h: Do not include <bit>. | |
| 2025-02-15 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/100612 | |
| * include/std/thread (__pmf_expects_stop_token): Constrain | |
| variable template specialization with concept. Add comment. | |
| 2025-02-15 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/range_access.h (rbegin, rend, crbegin, crend): | |
| Add conditional noexcept, as per P3623R0. | |
| * testsuite/24_iterators/headers/iterator/range_access.cc: Add | |
| noexcept-specifier to rbegin, rend, crbegin and crend | |
| declarations. | |
| 2025-02-15 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: | |
| Removed. | |
| * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: | |
| Removed. | |
| * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: | |
| Removed. | |
| * testsuite/24_iterators/headers/iterator/range_access.cc: | |
| New test. | |
| 2025-02-14 Andrew Pinski <quic_apinski@quicinc.com> | |
| PR libstdc++/118865 | |
| * include/bits/stl_list.h (_M_initialize_dispatch): Add an | |
| unreachable if the iterator was not empty that the list will | |
| now be not empty. | |
| 2025-02-14 Jonathan Wakely <jwakely@redhat.com> | |
| * include/parallel/algobase.h (__mismatch_switch): Qualify calls | |
| to make_pair to avoid ADL. | |
| 2025-02-14 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/stl_tree.h (_Rb_tree::_M_equal_range): Replace | |
| unqualified call to make_pair with explicit construction of | |
| std::pair. | |
| * testsuite/23_containers/set/operations/equal_range_adl.cc: | |
| New test. | |
| 2025-02-14 Matthew Malcomson <mmalcomson@nvidia.com> | |
| Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/atomic_base.h (__atomic_fetch_addable): Define | |
| new concept. | |
| (__atomic_impl::__fetch_add_flt): Use new concept to make use of | |
| __atomic_fetch_add when available. | |
| (__atomic_fetch_subtractable, __fetch_sub_flt): Likewise. | |
| (__atomic_add_fetchable, __add_fetch_flt): Likewise. | |
| (__atomic_sub_fetchable, __sub_fetch_flt): Likewise. | |
| 2025-02-08 Thomas Schwinge <tschwinge@baylibre.com> | |
| * testsuite/lib/prune.exp (libstdc++-dg-prune): Turn | |
| 'sorry, unimplemented: exception handling not supported' into | |
| UNSUPPORTED. | |
| 2025-02-08 Thomas Schwinge <tschwinge@baylibre.com> | |
| * testsuite/lib/prune.exp (libstdc++-dg-prune): Clarify | |
| effective-target 'exceptions_enabled'. | |
| 2025-02-07 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| PR libstdc++/118160 | |
| PR libstdc++/100249 | |
| * include/bits/ranges_algo.h (__is_permutation_fn): Avoid a | |
| dangling reference by storing the result of the iterator | |
| dereference and the result of the projection in two distinct | |
| variables, in order to lifetime-extend each one. | |
| Forward the projected value to the predicate. | |
| * testsuite/25_algorithms/is_permutation/constrained.cc: Add a | |
| test with a range returning prvalues. Test it in a constexpr | |
| context, in order to rely on the compiler to catch UB. | |
| 2025-02-07 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/ostream.h (basic_ostream::_Disable_exceptions): | |
| RAII helper type. | |
| (basic_ostream::sentry::~sentry): Use _Disable_exceptions. Add | |
| try-catch block around call to pubsync. | |
| * testsuite/27_io/basic_ostream/exceptions/char/lwg4188.cc: New | |
| test. | |
| * testsuite/27_io/basic_ostream/exceptions/wchar_t/lwg4188.cc: | |
| New test. | |
| 2025-02-07 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/111050 | |
| * include/bits/hashtable_policy.h (_Hash_node_value_base): Add | |
| comment about always_inline attributes. | |
| 2025-02-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
| Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118701 | |
| * config/abi/pre/gnu.ver (CXXABI_1.3.16): Move __riscv guard | |
| around version. | |
| * scripts/extract_symvers.pl: Allow for weak versions. | |
| * testsuite/util/testsuite_abi.cc (check_version): Wrap | |
| CXXABI_1.3.16 in __riscv. | |
| 2025-01-31 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/118156 | |
| * include/std/flat_map (_Flat_map_impl::_M_insert): Generalized | |
| version of insert taking heterogenous iterator/sentinel pair. | |
| (_Flat_map_impl::insert): Dispatch to _M_insert. | |
| (_Flat_map_impl::insert_range): Likewise. | |
| (flat_map): Export _Flat_map_impl::insert_range. | |
| (flat_multimap): Likewise. | |
| * include/std/flat_set (_Flat_set_impl::insert_range): | |
| Reimplement directly, not in terms of insert. | |
| (flat_set): Export _Flat_set_impl::insert_range. | |
| (flat_multiset): Likewise. | |
| * testsuite/23_containers/flat_map/1.cc (test06): New test. | |
| * testsuite/23_containers/flat_multimap/1.cc (test06): New test. | |
| * testsuite/23_containers/flat_multiset/1.cc (test06): New test. | |
| * testsuite/23_containers/flat_set/1.cc (test06): New test. | |
| 2025-01-31 Patrick Palka <ppalka@redhat.com> | |
| * include/bits/stl_bvector.h (vector<bool>::insert_range): | |
| Consistently return an iterator pointing to the first element | |
| inserted. | |
| * include/bits/vector.tcc (vector::insert_range): Likewise. | |
| * testsuite/23_containers/vector/bool/modifiers/insert/insert_range.cc: | |
| Verify insert_range return values. | |
| * testsuite/23_containers/vector/modifiers/insert/insert_range.cc: | |
| Likewise. | |
| 2025-01-30 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/98749 | |
| * include/std/latch (latch::max()): Ensure the return value is | |
| representable as the return type. | |
| (latch::latch(ptrdiff_t)): Add assertion. | |
| (latch::count_down): Fix copy & pasted duplicate assertion. Use | |
| std::cmp_equal to compare __platform_wait_t and ptrdiff_t | |
| values. | |
| (latch::_M_a): Use defined constant for alignment. | |
| * testsuite/30_threads/latch/1.cc: Check max(). Check constant | |
| initialization works for values in the valid range. Check | |
| alignment. | |
| 2025-01-29 Patrick Palka <ppalka@redhat.com> | |
| PR libstdc++/118413 | |
| * include/std/ranges (views::__adaptor::_Partial): Adjust | |
| constraints on the "simple" partial specializations to require | |
| is_trivially_copy_constructible_v instead of | |
| is_trivially_copyable_v. | |
| * testsuite/std/ranges/adaptors/adjacent_transform/1.cc (test04): | |
| Extend P2494R2 test. | |
| * testsuite/std/ranges/adaptors/transform.cc (test09): Likewise. | |
| 2025-01-27 Andreas Schwab <schwab@suse.de> | |
| PR libstdc++/118563 | |
| * testsuite/util/testsuite_abi.cc (check_version): Add | |
| CXXABI_1.3.16. | |
| * config/abi/pre/gnu.ver (CXXABI_1.3.14) [__riscv]: Exclude | |
| typeinfo for bfloat16_t. | |
| (CXXABI_1.3.16) [__riscv]: Add it here. | |
| 2025-01-23 Jan Hubicka <jh@suse.cz> | |
| PR target/80813 | |
| * include/bits/stl_bvector.h (vector<bool, _Alloc>::operator []): Do | |
| not use iterators. | |
| 2025-01-20 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| PR libstdc++/118185 | |
| PR libstdc++/100249 | |
| * include/bits/ranges_algo.h (__clamp_fn): Correctly forward the | |
| projected value to the comparator. | |
| * testsuite/25_algorithms/clamp/118185.cc: New test. | |
| 2025-01-16 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/99995 | |
| * include/Makefile.am: Add new header. | |
| * include/Makefile.in: Regenerate. | |
| * include/bits/unique_ptr.h: Include bits/ostream.h instead of | |
| ostream. | |
| * include/std/ostream: Include new header. | |
| * include/bits/ostream.h: New file. | |
| 2025-01-16 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118158 | |
| * src/c++17/fs_ops.cc (fs::equivalent): Remove error reporting | |
| for is_other(s1) && is_other(s2) case, as per LWG 2937. | |
| * testsuite/27_io/filesystem/operations/pr118158.cc: New test. | |
| 2025-01-16 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/stl_map.h: Check __glibcxx_node_extract instead | |
| of __cplusplus. | |
| * include/bits/stl_multimap.h: Likewise. | |
| * include/bits/stl_multiset.h: Likewise. | |
| * include/bits/stl_set.h: Likewise. | |
| * include/bits/stl_tree.h: Likewise. | |
| 2025-01-15 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/27_io/ios_base/types/openmode/case_label.cc: Use | |
| standard feature test macro not internal one. | |
| 2025-01-15 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/23_containers/set/requirements/explicit_instantiation/alloc_ptr.cc: | |
| Guard node extraction checks with feature test macro. Remove | |
| calls to non-existent range members. | |
| * testsuite/23_containers/forward_list/requirements/explicit_instantiation/alloc_ptr.cc: | |
| Use standard macro not internal one. | |
| * testsuite/23_containers/list/requirements/explicit_instantiation/alloc_ptr.cc: | |
| Likewise. | |
| 2025-01-15 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/109849 | |
| * include/bits/vector.tcc (vector::_M_range_insert): Fix | |
| reversed args in length calculation. | |
| 2025-01-15 Jonathan Wakely <jwakely@redhat.com> | |
| * testsuite/28_regex/traits/char/transform_primary.cc: Fix | |
| subclause numbering in references to the standard. | |
| 2025-01-15 Jakub Jelinek <jakub@redhat.com> | |
| PR c++/118387 | |
| * testsuite/25_algorithms/default_template_value.cc | |
| (Input::operator<=>): Use auto as return type rather than bool. | |
| 2025-01-12 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> | |
| * testsuite/27_io/print/1.cc: Allow both LF and CRLF in test. | |
| * testsuite/27_io/print/3.cc: Likewise. | |
| 2025-01-12 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> | |
| * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc: | |
| Use effective-target libatomic_available. | |
| 2025-01-10 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/atomic_futex.h (__atomic_futex_unsigned): Remove | |
| names of unused parameters in non-futex implementation. | |
| 2025-01-08 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/move.h (__addressof, forward, forward_like, move) | |
| (move_if_noexcept, addressof): Add always_inline attribute. | |
| Replace _GLIBCXX_NODISCARD with [[__nodiscard__]]. | |
| 2025-01-08 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118260 | |
| * python/hook.in: Run 'skip' commands for some simple accessor | |
| functions. | |
| 2025-01-08 Nicolas Werner <nicolas.werner@hotmail.de> | |
| PR libstdc++/106852 | |
| * src/c++23/std.cc.in (to_underlying): Add. | |
| 2025-01-08 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118177 | |
| * src/c++23/std-clib.cc.in: Use preprocessor conditions for | |
| names which are not always defined. | |
| * src/c++23/std.cc.in: Likewise. | |
| 2025-01-08 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/span: Fix indentation. | |
| 2025-01-08 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | |
| * include/bits/version.def: Add the new feature-testing macro. | |
| * include/bits/version.h: Regenerate. | |
| * include/std/span: Add constructor from initializer_list. | |
| * testsuite/23_containers/span/init_list_cons.cc: New test. | |
| * testsuite/23_containers/span/init_list_cons_neg.cc: New test. | |
| 2025-01-08 Jonathan Wakely <jwakely@redhat.com> | |
| * include/std/span (__detail::__extent_storage): Check | |
| precondition in constructor. Add consteval constructor for valid | |
| lengths and deleted constructor for invalid constant lengths. | |
| Make member functions always_inline. | |
| (__detail::__span_ptr): New class template. | |
| (span): Adjust constructors to use a std::integral_constant | |
| value for constant lengths. Declare all specializations of | |
| std::span as friends. | |
| (span::first<C>, span::last<C>, span::subspan<O,C>): Use new | |
| private constructor. | |
| (span(__span_ptr<T>)): New private constructor for constant | |
| lengths. | |
| 2025-01-08 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/85824 | |
| PR libstdc++/94409 | |
| PR libstdc++/98723 | |
| PR libstdc++/118105 | |
| * include/bits/locale_classes.tcc (collate::do_transform): Check | |
| errno after calling _M_transform. Use RAII type to manage the | |
| buffer and to restore errno. | |
| * include/bits/regex.h (regex_traits::transform_primary): Handle | |
| exceptions from std::collate::transform and do not try to use | |
| std::collate for user-defined facets. | |
| 2025-01-08 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/118093 | |
| * include/bits/atomic_futex.h (_M_load_and_test_until_impl): | |
| Return false for times before the epoch. | |
| * src/c++11/futex.cc (_M_futex_wait_until): Extend check for | |
| negative times to check for subsecond times. Add unlikely | |
| attribute. | |
| (_M_futex_wait_until_steady): Likewise. | |
| * testsuite/30_threads/future/members/118093.cc: New test. | |
| 2025-01-08 Jonathan Wakely <jwakely@redhat.com> | |
| PR libstdc++/90389 | |
| * include/bits/deque.tcc (_M_insert_aux): Rename variadic | |
| overload to _M_emplace_aux. | |
| * include/bits/stl_deque.h (_M_insert_aux): Define inline. | |
| (_M_emplace_aux): Declare. | |
| * testsuite/23_containers/deque/modifiers/emplace/90389.cc: New | |
| test. | |
| 2025-01-08 Jonathan Wakely <jwakely@redhat.com> | |
| * include/bits/move.h (forward, move, move_if_noexcept, addressof): | |
| Add @since to Doxygen comments. | |
| (forward_like): Add Doxygen comment. | |
| 2025-01-08 Jonathan Wakely <jwakely@redhat.com> | |
| * doc/xml/manual/evolution.xml: Replace invalid <variable> | |
| elements with <varname>. | |
| * doc/html/*: Regenerate. | |
| 2025-01-01 Gerald Pfeifer <gerald@pfeifer.com> | |
| * doc/html/manual/profile_mode.html: Delete. | |
| * doc/html/manual/profile_mode_api.html: Ditto. | |
| * doc/html/manual/profile_mode_cost_model.html: Ditto. | |
| * doc/html/manual/profile_mode_design.html: Ditto. | |
| * doc/html/manual/profile_mode_devel.html: Ditto. | |
| * doc/html/manual/profile_mode_impl.html: Ditto. | |
| Copyright (C) 2025 Free Software Foundation, Inc. | |
| Copying and distribution of this file, with or without modification, | |
| are permitted in any medium without royalty provided the copyright | |
| notice and this notice are preserved. |