X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=libstdc%2B%2B-v3%2FChangeLog;h=673e93a15f4e9bc8f047f2baf3fcc70af6a0e29c;hb=8428bcd70374dc5643519562ebb01c5e097d9ee7;hp=dfc9c12cff1e7a97fcbe64863f1e7ff6ae1800a9;hpb=886afed6358774daf80fca93d3055194be2edf9f;p=thirdparty%2Fgcc.git diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index dfc9c12cff1e..673e93a15f4e 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,4159 @@ +2023-11-30 Jonathan Wakely + + * include/std/ranges (__detail::__toable): Fix incorrect use of + _Range instead of _Cont. + (__detail::_ToClosure, __detail::_ToClosure2): Add missing + constexpr specifier on constructors. + * testsuite/std/ranges/conv/1.cc (_Cont, _Cont2, _Cont3): Remove + unnecessary begin() and end() members. + (test_constexpr): New function to check range adaptors are + usable in constant expressions. + +2023-11-29 Thomas Schwinge + + * testsuite/23_containers/span/at.cc: Fix for '-fno-exceptions' + configurations. + +2023-11-28 Jonathan Wakely + + * include/bits/atomic_wait.h: Include . + +2023-11-28 Jonathan Wakely + + * include/bits/stl_uninitialized.h: Fix typo in comment. + +2023-11-24 Jan Hubicka + + PR middle-end/109849 + * include/bits/stl_uninitialized.h (__relocate_a_1): Use memcpy instead + of memmove. + +2023-11-23 Jonathan Wakely + + PR libstdc++/111055 + * include/bits/ranges_base.h (from_range_t): Define new tag + type. + (from_range): Define new tag object. + * include/bits/version.def (ranges_to_container): Define. + * include/bits/version.h: Regenerate. + * include/std/ranges (ranges::to): Define. + * testsuite/std/ranges/conv/1.cc: New test. + * testsuite/std/ranges/conv/2_neg.cc: New test. + * testsuite/std/ranges/conv/version.cc: New test. + +2023-11-23 Jonathan Wakely + + * testsuite/util/testsuite_allocator.h (uneq_allocator): Fix + equality operator for heterogeneous comparisons. + +2023-11-21 Jonathan Wakely + + * include/bits/version.def (freestanding_cstring): Add. + * include/bits/version.h: Regenerate. + * include/c_compatibility/string.h (strtok): Do not declare for + C++26 freestanding. + * include/c_global/cstring (strtok): Likewise. + * testsuite/21_strings/headers/cstring/version.cc: New test. + +2023-11-21 Jonathan Wakely + + * include/bits/version.def (freestanding_algorithm) + (freestanding_array, freestanding_optional) + (freestanding_string_view, freestanding_variant): Add. + * include/bits/version.h: Regenerate. + * include/std/algorithm (__glibcxx_want_freestanding_algorithm): + Define. + * include/std/array (__glibcxx_want_freestanding_array): + Define. + * include/std/optional (__glibcxx_want_freestanding_optional): + Define. + * include/std/string_view + (__glibcxx_want_freestanding_string_view): Define. + * include/std/variant (__glibcxx_want_freestanding_variant): + Define. + * testsuite/20_util/optional/version.cc: Add checks for + __cpp_lib_freestanding_optional. + * testsuite/20_util/variant/version.cc: Add checks for + __cpp_lib_freestanding_variant. + * testsuite/23_containers/array/tuple_interface/get_neg.cc: + Adjust dg-error line numbers. + * testsuite/21_strings/basic_string_view/requirements/version.cc: + New test. + * testsuite/23_containers/array/requirements/version.cc: New + test. + * testsuite/25_algorithms/fill_n/requirements/version.cc: New + test. + * testsuite/25_algorithms/swap_ranges/requirements/version.cc: + New test. + +2023-11-21 Jonathan Wakely + + * include/bits/version.def (freestanding_expected): New macro. + (span): Add C++26 value. + * include/bits/version.h: Regenerate. + * include/std/expected (__glibcxx_want_freestanding_expected): + Define. + * include/std/span (span::at): New member function. + * testsuite/20_util/expected/version.cc: Add checks for + __cpp_lib_freestanding_expected. + * testsuite/23_containers/span/2.cc: Moved to... + * testsuite/23_containers/span/version.cc: ...here. Add checks + for __cpp_lib_span in as well as in . + * testsuite/23_containers/span/1.cc: Removed. + * testsuite/23_containers/span/at.cc: New test. + +2023-11-21 Jonathan Wakely + + * include/tr2/dynamic_bitset (dynamic_bitset): Pass zero and one + characters to _M_copy_from_string. + * testsuite/tr2/dynamic_bitset/string.cc: New test. + +2023-11-21 Jonathan Wakely + + * doc/html/*: Regenerate. + * doc/xml/faq.xml: Remove reference to buildstat.html pages. + * doc/xml/manual/test.xml: Likewise + +2023-11-21 Jan Hubicka + + PR libstdc++/110287 + PR middle-end/109811 + PR middle-end/109849 + * include/bits/stl_vector.h (_M_realloc_append): New member function. + (push_back): Use it. + * include/bits/vector.tcc: (emplace_back): Use it. + (_M_realloc_insert): Let compiler know that new vector size is non-zero. + (_M_realloc_append): New member function. + +2023-11-18 Jonathan Wakely + + PR libstdc++/112607 + * include/std/format (basic_format_arg::_S_to_arg_type): Check + value_type for basic_string_view and basic_string + specializations. + * testsuite/std/format/arguments/112607.cc: New test. + +2023-11-18 Jonathan Wakely + + PR libstdc++/110801 + * include/std/format (_Sink_iter::_M_reserve): New member + function. + (_Sink::_Reservation): New nested class. + (_Sink::_M_reserve, _Sink::_M_bump): New virtual functions. + (_Seq_sink::_M_reserve, _Seq_sink::_M_bump): New virtual + overrides. + (_Iter_sink::_M_reserve): Likewise. + (__do_vformat_to): Use new functions to optimize "{}" case. + +2023-11-17 Jonathan Wakely + + * config.h.in: Regenerate. + +2023-11-17 Jonathan Wakely + + * include/Makefile.am: Add new header. + * include/Makefile.in: Regenerate. + * include/bits/version.def (saturation_arithmetic): Define. + * include/bits/version.h: Regenerate. + * include/std/numeric: Include new header. + * include/bits/sat_arith.h: New file. + * testsuite/26_numerics/saturation/add.cc: New test. + * testsuite/26_numerics/saturation/cast.cc: New test. + * testsuite/26_numerics/saturation/div.cc: New test. + * testsuite/26_numerics/saturation/mul.cc: New test. + * testsuite/26_numerics/saturation/sub.cc: New test. + * testsuite/26_numerics/saturation/version.cc: New test. + +2023-11-17 Jonathan Wakely + + * include/std/utility (in_range): Rename _Up parameter to _Res. + +2023-11-17 Jonathan Wakely + + * include/bits/out_ptr.h: Add Doxygen comments. Remove a + redundant preprocessor condition. + * testsuite/20_util/smartptr.adapt/version.cc: New test. + +2023-11-17 Jonathan Wakely + + * include/bits/chrono_io.h: Fix Doxygen markup. + +2023-11-16 Jonathan Wakely + + PR libstdc++/112564 + * include/std/stacktrace (formatter::format): Format according + to format-spec. + * include/std/thread (formatter::format): Use _Align_right as + default. + * testsuite/19_diagnostics/stacktrace/output.cc: Check + fill-and-align handling. Change compile test to run. + * testsuite/30_threads/thread/id/output.cc: Check fill-and-align + handling. + +2023-11-16 Jonathan Wakely + + PR libstdc++/111667 + * include/Makefile.am: Add new header. + * include/Makefile.in: Regenerate. + * include/bits/out_ptr.h: New file. + * include/bits/shared_ptr.h (__is_shared_ptr): Move definition + to here ... + * include/bits/shared_ptr_atomic.h (__is_shared_ptr): ... from + here. + * include/bits/shared_ptr_base.h (__shared_count): Declare + out_ptr_t as a friend. + (_Sp_counted_deleter, __shared_ptr): Likewise. + * include/bits/unique_ptr.h (unique_ptr, unique_ptr): + Declare out_ptr_t and inout_ptr_t as friends. + (__is_unique_ptr): Define new variable template. + * include/bits/version.def (out_ptr): Define. + * include/bits/version.h: Regenerate. + * include/std/memory: Include new header. + * testsuite/20_util/smartptr.adapt/inout_ptr/1.cc: New test. + * testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: New test. + * testsuite/20_util/smartptr.adapt/inout_ptr/shared_ptr_neg.cc: + New test. + * testsuite/20_util/smartptr.adapt/inout_ptr/void_ptr.cc: New + test. + * testsuite/20_util/smartptr.adapt/out_ptr/1.cc: New test. + * testsuite/20_util/smartptr.adapt/out_ptr/2.cc: New test. + * testsuite/20_util/smartptr.adapt/out_ptr/shared_ptr_neg.cc: + New test. + * testsuite/20_util/smartptr.adapt/out_ptr/void_ptr.cc: New + test. + +2023-11-16 Jonathan Wakely + + * include/bits/algorithmfwd.h: Do not define standard feature + test macro here. + * include/bits/align.h: Likewise. Test internal macros instead + of standard macros. + * include/bits/alloc_traits.h: Likewise. + * include/bits/allocator.h: Likewise. + * include/bits/atomic_base.h: Likewise. + * include/bits/atomic_timed_wait.h: Likewise. + * include/bits/atomic_wait.h: Likewise. + * include/bits/basic_string.h: Likewise. + * include/bits/basic_string.tcc: Likewise. + * include/bits/char_traits.h: Likewise. + * include/bits/chrono.h: Likewise. + * include/bits/cow_string.h: Likewise. + * include/bits/forward_list.h: Likewise. + * include/bits/hashtable.h: Likewise. + * include/bits/ios_base.h: Likewise. + * include/bits/memory_resource.h: Likewise. + * include/bits/move.h: Likewise. + * include/bits/move_only_function.h: Likewise. + * include/bits/node_handle.h: Likewise. + * include/bits/ptr_traits.h: Likewise. + * include/bits/range_access.h: Likewise. + * include/bits/ranges_algo.h: Likewise. + * include/bits/ranges_cmp.h: Likewise. + * include/bits/ranges_util.h: Likewise. + * include/bits/semaphore_base.h: Likewise. + * include/bits/shared_ptr.h: Likewise. + * include/bits/shared_ptr_atomic.h: Likewise. + * include/bits/shared_ptr_base.h: Likewise. + * include/bits/stl_algo.h: Likewise. + * include/bits/stl_algobase.h: Likewise. + * include/bits/stl_function.h: Likewise. + * include/bits/stl_iterator.h: Likewise. + * include/bits/stl_list.h: Likewise. + * include/bits/stl_map.h: Likewise. + * include/bits/stl_pair.h: Likewise. + * include/bits/stl_queue.h: Likewise. + * include/bits/stl_stack.h: Likewise. + * include/bits/stl_tree.h: Likewise. + * include/bits/stl_uninitialized.h: Likewise. + * include/bits/stl_vector.h: Likewise. + * include/bits/unique_ptr.h: Likewise. + * include/bits/unordered_map.h: Likewise. + * include/bits/uses_allocator_args.h: Likewise. + * include/bits/utility.h: Likewise. + * include/bits/erase_if.h: Add comment. + * include/std/algorithm: Define standard feature test macros + here. + * include/std/atomic: Likewise. + * include/std/array: Likewise. + * include/std/chrono: Likewise. + * include/std/condition_variable: Likewise. + * include/std/deque: Likewise. + * include/std/format: Likewise. + * include/std/functional: Likewise. + * include/std/forward_list: Likewise. + * include/std/ios: Likewise. + * include/std/iterator: Likewise. + * include/std/list: Likewise. + * include/std/map: Likewise. + * include/std/memory: Likewise. + * include/std/numeric: Likewise. + * include/std/queue: Likewise. + * include/std/ranges: Likewise. + * include/std/regex: Likewise. + * include/std/set: Likewise. + * include/std/stack: Likewise. + * include/std/stop_token: Likewise. + * include/std/string: Likewise. + * include/std/string_view: + * include/std/tuple: Likewise. + * include/std/unordered_map: + * include/std/unordered_set: + * include/std/utility: Likewise. + * include/std/vector: Likewise. + * include/std/scoped_allocator: Query internal macros instead of + standard macros. + +2023-11-16 Jonathan Wakely + + * testsuite/18_support/byte/requirements.cc: Disable PCH. + * testsuite/18_support/destroying_delete.cc: Likewise. + * testsuite/18_support/source_location/1.cc: Likewise. + * testsuite/18_support/source_location/version.cc: Likewise. + * testsuite/18_support/type_info/constexpr.cc: Likewise. + * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: + Likewise. + * testsuite/19_diagnostics/stacktrace/output.cc: Likewise. + * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise. + * testsuite/19_diagnostics/stacktrace/version.cc: Likewise. + * testsuite/20_util/addressof/requirements/constexpr.cc: + Likewise. + * testsuite/20_util/allocator_traits/header-2.cc: Likewise. + * testsuite/20_util/allocator_traits/header.cc: Likewise. + * testsuite/20_util/as_const/1.cc: Likewise. Likewise. + * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise. + * testsuite/20_util/bitset/version.cc: Likewise. + * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: + Likewise. + * testsuite/20_util/duration_cast/rounding.cc: Likewise. + * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc: + Likewise. + * testsuite/20_util/exchange/constexpr.cc: Likewise. + * testsuite/20_util/expected/synopsis.cc: Likewise. + * testsuite/20_util/expected/version.cc: Likewise. + * testsuite/20_util/function_objects/bind_front/1.cc: Likewise. + * testsuite/20_util/function_objects/bind_front/2.cc: Likewise. + * testsuite/20_util/function_objects/invoke/3.cc: Likewise. + * testsuite/20_util/function_objects/invoke/4.cc: Likewise. + * testsuite/20_util/function_objects/invoke/constexpr.cc: + Likewise. + * testsuite/20_util/function_objects/invoke/version.cc: + Likewise. + * testsuite/20_util/function_objects/searchers.cc: Likewise. + * testsuite/20_util/integer_comparisons/1.cc: Likewise. + * testsuite/20_util/integer_comparisons/2.cc: Likewise. + * testsuite/20_util/is_bounded_array/value.cc: Likewise. + * testsuite/20_util/is_layout_compatible/value.cc: Likewise. + * testsuite/20_util/is_layout_compatible/version.cc: Likewise. + * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise. + * testsuite/20_util/is_nothrow_swappable/value.h: Likewise. + * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc: + Remove redundant checks already tested elsewhere. + * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/is_nothrow_swappable_with/value.cc: Disable + PCH. + * testsuite/20_util/is_pointer_interconvertible/value.cc: + Likewise. + * testsuite/20_util/is_pointer_interconvertible/version.cc: + Likewise. + * testsuite/20_util/is_scoped_enum/value.cc: Likewise. + * testsuite/20_util/is_scoped_enum/version.cc: Likewise. + * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc: + Remove redundant checks already tested elsewhere. + * testsuite/20_util/is_swappable/requirements/typedefs.cc: + Remove redundant checks already tested elsewhere. + * testsuite/20_util/is_swappable/value.cc: Disable PCH. + * testsuite/20_util/is_swappable/value.h: Reorder headers. + * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc: + Remove redundant checks already tested elsewhere. + * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: + Remove redundant checks already tested elsewhere. + * testsuite/20_util/is_swappable_with/value.cc: Disable PCH. + * testsuite/20_util/is_unbounded_array/value.cc: Likewise. + * testsuite/20_util/move_only_function/cons.cc: Likewise. + * testsuite/20_util/move_only_function/version.cc: Likewise. + * testsuite/20_util/optional/monadic/and_then.cc: Likewise. + * testsuite/20_util/optional/requirements.cc: Likewise. + * testsuite/20_util/optional/version.cc: Likewise. + * testsuite/20_util/owner_less/void.cc: Likewise. + * testsuite/20_util/reference_from_temporary/value.cc: Likewise. + * testsuite/20_util/reference_from_temporary/version.cc: + Likewise. + * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: + Likewise. + * testsuite/20_util/shared_ptr/creation/array.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/version.cc: Likewise. + * testsuite/20_util/time_point_cast/rounding.cc: Likewise. + * testsuite/20_util/to_chars/constexpr.cc: Likewise. + * testsuite/20_util/to_chars/result.cc: Likewise. + * testsuite/20_util/to_chars/version.cc: Likewise. + * testsuite/20_util/to_underlying/1.cc: Likewise. + * testsuite/20_util/to_underlying/version.cc: Likewise. + * testsuite/20_util/tuple/apply/1.cc: Likewise. + * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: + Likewise. + * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise. + * testsuite/20_util/tuple/p2321r2.cc: Likewise. + * testsuite/20_util/tuple/tuple_element_t.cc: Likewise. + * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: + Likewise. + * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: + Likewise. + * testsuite/20_util/unreachable/1.cc: Likewise. + * testsuite/20_util/unreachable/version.cc: Likewise. + * testsuite/20_util/unwrap_reference/1.cc: Likewise. + * testsuite/20_util/unwrap_reference/3.cc: Likewise. + * testsuite/20_util/variant/constexpr.cc: Likewise. + * testsuite/20_util/variant/version.cc: Likewise. + * testsuite/20_util/variant/visit_inherited.cc: Likewise. + * testsuite/20_util/void_t/1.cc: Likewise. + * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/char/constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string/erasure.cc: Likewise. + * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc: + Likewise. + * testsuite/21_strings/basic_string/numeric_conversions/version.cc: + Likewise. + * testsuite/21_strings/basic_string/version.cc: Likewise. + * testsuite/21_strings/basic_string_view/operations/contains/char.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc: + Likewise. + * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc: + Likewise. + * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc: + Likewise. + * testsuite/21_strings/char_traits/requirements/version.cc: + Likewise. + * testsuite/23_containers/array/comparison_operators/constexpr.cc: + Likewise. + * testsuite/23_containers/array/creation/1.cc: Likewise. + * testsuite/23_containers/array/creation/2.cc: Likewise. + * testsuite/23_containers/array/element_access/constexpr_c++17.cc: + Likewise. + * testsuite/23_containers/array/requirements/constexpr_fill.cc: + Likewise. + * testsuite/23_containers/array/requirements/constexpr_iter.cc: + Likewise. + * testsuite/23_containers/deque/erasure.cc: Likewise. + * testsuite/23_containers/forward_list/erasure.cc: Likewise. + * testsuite/23_containers/list/erasure.cc: Likewise. + * testsuite/23_containers/map/erasure.cc: Likewise. + * testsuite/23_containers/queue/cons_from_iters.cc: Likewise. + * testsuite/23_containers/set/erasure.cc: Likewise. + * testsuite/23_containers/span/1.cc: Likewise. + * testsuite/23_containers/span/2.cc: Likewise. + * testsuite/23_containers/stack/cons_from_iters.cc: Likewise. + * testsuite/23_containers/unordered_map/erasure.cc: Likewise. + * testsuite/23_containers/unordered_map/operations/1.cc: + Likewise. + * testsuite/23_containers/unordered_set/erasure.cc: Likewise. + * testsuite/23_containers/unordered_set/operations/1.cc: + Likewise. + * testsuite/23_containers/vector/cons/constexpr.cc: Likewise. + * testsuite/23_containers/vector/erasure.cc: Likewise. + * testsuite/23_containers/vector/requirements/version.cc: + Likewise. + * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise. + * testsuite/25_algorithms/clamp/constexpr.cc: Likewise. + * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc: + Remove redundant checks already tested elsewhere. + * testsuite/25_algorithms/constexpr_macro.cc: Likewise. + * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise. + * testsuite/25_algorithms/fold_left/1.cc: Likewise. + * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise. + * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise. + * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise. + * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise. + * testsuite/25_algorithms/pstl/feature_test.cc: Likewise. + * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise. + * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise. + * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise. + * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise. + * testsuite/26_numerics/bit/header-2.cc: Likewise. + * testsuite/26_numerics/bit/header.cc: Likewise. + * testsuite/26_numerics/complex/1.cc: Likewise. + * testsuite/26_numerics/complex/2.cc: Likewise. + * testsuite/26_numerics/endian/2.cc: Likewise. + * testsuite/26_numerics/endian/3.cc: Likewise. + * testsuite/26_numerics/gcd/1.cc: Likewise. + * testsuite/26_numerics/lcm/1.cc: Likewise. + * testsuite/26_numerics/lerp/1.cc: Likewise. + * testsuite/26_numerics/lerp/version.cc: Likewise. + * testsuite/26_numerics/midpoint/integral.cc: Likewise. + * testsuite/26_numerics/midpoint/version.cc: Likewise. + * testsuite/26_numerics/numbers/1.cc: Likewise. + * testsuite/26_numerics/numbers/2.cc: Likewise. + * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: + Likewise. + * testsuite/27_io/basic_filebuf/native_handle/version.cc: + Likewise. + * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: + Likewise. + * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: + Likewise. + * testsuite/27_io/basic_syncbuf/1.cc: Likewise. + * testsuite/27_io/basic_syncbuf/2.cc: Likewise. + * testsuite/27_io/basic_syncstream/1.cc: Likewise. + * testsuite/27_io/basic_syncstream/2.cc: Likewise. + * testsuite/27_io/spanstream/1.cc: Likewise. + * testsuite/27_io/spanstream/version.cc: Likewise. + * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise. + * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise. + * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise. + * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise. + * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: + Likewise. + * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise. + * testsuite/30_threads/barrier/1.cc: Likewise. + * testsuite/30_threads/barrier/2.cc: Likewise. + * testsuite/30_threads/condition_variable_any/stop_token/1.cc: + Likewise. + * testsuite/30_threads/condition_variable_any/stop_token/2.cc: + Likewise. + * testsuite/30_threads/jthread/1.cc: Likewise. + * testsuite/30_threads/jthread/version.cc: Likewise. + * testsuite/30_threads/latch/1.cc: Likewise. + * testsuite/30_threads/latch/2.cc: Likewise. + * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: + Likewise. + * testsuite/30_threads/semaphore/1.cc: Likewise. + * testsuite/30_threads/semaphore/2.cc: Likewise. + * testsuite/30_threads/stop_token/1.cc: Likewise. + * testsuite/30_threads/stop_token/2.cc: Likewise. + * testsuite/experimental/feat-char8_t.cc: Likewise. + * testsuite/experimental/iterator/ostream_joiner.cc: Likewise. + * testsuite/experimental/numeric/gcd.cc: Likewise. + * testsuite/experimental/scopeguard/uniqueres.cc: Likewise. + * testsuite/std/concepts/1.cc: Likewise. + * testsuite/std/concepts/2.cc: Likewise. + * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise. + * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise. + * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise. + * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise. + * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise. + * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise. + * testsuite/std/ranges/adaptors/slide/1.cc: Likewise. + * testsuite/std/ranges/adaptors/stride/1.cc: Likewise. + * testsuite/std/ranges/cartesian_product/1.cc: Likewise. + * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise. + * testsuite/std/ranges/repeat/1.cc: Likewise. + * testsuite/std/ranges/version_c++23.cc: Likewise. + * testsuite/std/ranges/zip/1.cc: Likewise. + * testsuite/std/time/syn_c++20.cc: Likewise. + * testsuite/experimental/feat-cxx14.cc: Likewise. Include + and . + * testsuite/23_containers/array/tuple_interface/get_neg.cc: + Adjust dg-error line numbers. + +2023-11-16 Jonathan Wakely + + * include/bits/version.def (stds): Use >= 202100 for C++23 + condition. + * include/bits/version.h: Regenerate. + * include/std/thread: Use > C++20 instead of >= C++23 for + __cplusplus condition. + +2023-11-16 Jonathan Wakely + + * include/std/istream (__rvalue_stream_extraction_t): Test + __cpp_concepts instead of __cpp_lib_concepts. + * include/std/ostream (__derived_from_ios_base): Likewise. + (__rvalue_stream_insertion_t): Likewise. + +2023-11-15 Jonathan Wakely + + PR libstdc++/112491 + * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): + Correctly handle unused capacity at the start of the first node. + * testsuite/libstdc++-xmethods/deque.cc: Check index operator + when elements have been removed from the front. + +2023-11-15 Jonathan Wakely + + * include/std/stacktrace (basic_stacktrace::at): Fix class name + in exception message. + * testsuite/19_diagnostics/stacktrace/hash.cc: Do not fail if + current() returns a non-empty stacktrace. + +2023-11-15 Alexandre Oliva + + Revert: + 2023-11-15 Alexandre Oliva + + * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef. + +2023-11-15 Alexandre Oliva + + * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef. + +2023-11-14 Cassio Neri + + * include/std/chrono (operator-(const weekday&, const weekday&)): + Optimize. + +2023-11-14 Cassio Neri + + * include/std/chrono (weekday::_S_from_days): Fix UB. + * testsuite/std/time/weekday/1.cc: Add test for overflow. + +2023-11-14 Cassio Neri + + * include/std/chrono (year::is_leap): Clear code. + +2023-11-14 Cassio Neri + + * include/std/chrono (year_month_day_last::day): Remove &1. + +2023-11-14 Jonathan Wakely + + * include/std/charconv (__from_chars_pow2_base): Convert base to + unsigned for call to __countr_zero. + (__from_chars_alnum): Likewise for call to __bit_width. + +2023-11-14 Jonathan Wakely + + PR libstdc++/112348 + * include/std/stacktrace (hash>): Fix + type of hash functio nfor entries. + * testsuite/19_diagnostics/stacktrace/hash.cc: New test. + +2023-11-14 Jonathan Wakely + + PR libstdc++/112491 + * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix + calculation to use _M_start._M_cur. + * testsuite/libstdc++-xmethods/deque.cc: Check failing cases. + +2023-11-13 Arsen Arsenović + + * configure: Regenerate. + +2023-11-13 Jonathan Wakely + + * testsuite/std/time/clock/file/io.cc: Double timeout using + dg-timeout-factor. + * testsuite/std/time/clock/gps/io.cc: Likewise. + * testsuite/std/time/clock/local/io.cc: Likewise. + * testsuite/std/time/clock/system/io.cc: Likewise. + * testsuite/std/time/clock/tai/io.cc: Likewise. + * testsuite/std/time/clock/utc/io.cc: Likewise. + +2023-11-13 Jonathan Wakely + + PR libstdc++/112480 + * include/std/optional (_Optional_payload_base::_M_reset): Set + _M_engaged to false unconditionally. + +2023-11-11 Jonathan Wakely + + PR libstdc++/112467 + * include/bits/stl_bvector.h (_M_assume_normalized): Do not use + statement form of assume attribute for Clang. + +2023-11-11 Jonathan Wakely + + * include/std/string_view (operator==, operator<=>): Remove + redundant overloads (LWG 3950). + +2023-11-11 Jonathan Wakely + + * testsuite/26_numerics/headers/complex.h/std_c++11.h: Moved to... + * testsuite/26_numerics/headers/complex.h/std_c++11.cc: ...here. + * testsuite/26_numerics/headers/complex.h/std_c++98.h: Moved to... + * testsuite/26_numerics/headers/complex.h/std_c++98.cc: ...here. + Check macro first and then #undef. + * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: Moved to... + * testsuite/26_numerics/headers/complex.h/std_gnu++11.cc: ...here. + +2023-11-11 Jonathan Wakely + + PR libstdc++/112473 + * include/bits/utility.h (integer_sequence): Add static_assert. + * testsuite/20_util/integer_sequence/112473.cc: New test. + +2023-11-11 Jonathan Wakely + + * testsuite/20_util/pair/dangling_ref.cc: Add hosted effective + target for specifiers using c++17_down. + +2023-11-11 Jonathan Wakely + + * include/bits/shared_ptr_atomic.h (atomic_is_lock_free) + (atomic_load_explicit, atomic_load, atomic_store_explicit) + (atomic_store, atomic_exchange_explicit, atomic_exchange) + (atomic_compare_exchange_strong, atomic_compare_exchange_weak) + (atomic_compare_exchange_strong_explicit) + (atomic_compare_exchange_weak_explicit): Add deprecated + attribute for C++20 and later. + * testsuite/20_util/shared_ptr/atomic/1.cc: Suppress deprecated + warnings. + * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise. + * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. + * testsuite/29_atomics/atomic/lwg3220.cc: Likewise. + +2023-11-11 Jonathan Wakely + + * include/bits/std_mutex.h (lock_guard): Add [[nodiscard]] + attribute to constructors. + * include/bits/unique_lock.h (unique_lock): Likewise. + * include/std/mutex (scoped_lock, scoped_lock): Likewise. + * testsuite/30_threads/lock_guard/cons/nodiscard.cc: New test. + * testsuite/30_threads/scoped_lock/cons/nodiscard.cc: New test. + * testsuite/30_threads/unique_lock/cons/nodiscard.cc: New test. + +2023-11-11 Jonathan Wakely + + * include/std/span (span, as_bytes, as_writable_bytes): Add + [[nodiscard]] attribute on all non-void functions. + * testsuite/23_containers/span/back_assert_neg.cc: Suppress + nodiscard warning. + * testsuite/23_containers/span/back_neg.cc: Likewise. + * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise. + * testsuite/23_containers/span/first_assert_neg.cc: Likewise. + * testsuite/23_containers/span/first_neg.cc: Likewise. + * testsuite/23_containers/span/front_assert_neg.cc: Likewise. + * testsuite/23_containers/span/front_neg.cc: Likewise. + * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise. + * testsuite/23_containers/span/index_op_neg.cc: Likewise. + * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise. + * testsuite/23_containers/span/last_assert_neg.cc: Likewise. + * testsuite/23_containers/span/last_neg.cc: Likewise. + * testsuite/23_containers/span/subspan_2_assert_neg.cc: + Likewise. + * testsuite/23_containers/span/subspan_3_assert_neg.cc: + Likewise. + * testsuite/23_containers/span/subspan_4_assert_neg.cc: + Likewise. + * testsuite/23_containers/span/subspan_5_assert_neg.cc: + Likewise. + * testsuite/23_containers/span/subspan_6_assert_neg.cc: + Likewise. + * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise. + * testsuite/23_containers/span/subspan_neg.cc: Likewise. + * testsuite/23_containers/span/nodiscard.cc: New test. + +2023-11-11 Jonathan Wakely + + PR libstdc++/111638 + * config.h.in: Regenerate. + * configure: Regenerate. + * linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): Remove. + (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1): Do not check for _foo. + (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Likewise. + (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2): Likewise. + (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3): Likewise. + (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2): Do not use + GLIBCXX_MAYBE_UNDERSCORED_FUNCS. + +2023-11-11 Nathaniel Shead + + PR libstdc++/79700 + * include/c_global/cmath (acosf, acosl, asinf, asinl, atanf) + (atanl, atan2f, atan2l, ceilf, ceill, cosf, cosl, coshf, coshl) + (expf, expl, fabsf, fabsl, floorf, floorl, fmodf, fmodl, frexpf) + (frexpl, ldexpf, ldexpl, logf, logl, log10f, log10l, modff) + (modfl, powf, powl, sinf, sinl, sinhf, sinhl, sqrtf, sqrtl, tanf) + (tanl, tanhf, tanhl): Add using-declarations in namespace std. + * testsuite/26_numerics/headers/cmath/equivalent_functions.cc: + New test. + * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: + Add checks for existence of above names. + +2023-11-09 Arsen Arsenović + + * testsuite/20_util/scoped_allocator/noexcept.cc: Mark as + requiring hosted. + +2023-11-09 Arsen Arsenović + + * include/bits/memoryfwd.h: Remove HOSTED check around allocator + and its specializations. + +2023-11-09 Patrick Palka + + PR libstdc++/112453 + * include/std/ranges (__detail::__box<_Tp>::operator*): Define + && overloads as well. + (__detail::__take_of_repeat_view): Forward __r when accessing + its _M_value member. + (__detail::__drop_of_repeat_view): Likewise. + * testsuite/std/ranges/repeat/1.cc (test07): New test. + +2023-11-09 François Dumont + + * include/bits/hashtable_policy.h (_RehashStateGuard): New. + (_Insert_base<>::_M_insert_range(_IIt, _IIt, const _NodeGet&, false_type)): + Adapt. + * include/bits/hashtable.h (__rehash_guard_t): New. + (__rehash_state): Remove. + (_M_rehash): Remove. + (_M_rehash_aux): Rename into _M_rehash. + (_M_assign_elements, _M_insert_unique_node, _M_insert_multi_node): Adapt. + (rehash): Adapt. + +2023-11-09 François Dumont + + * include/bits/hashtable_policy.h + (struct _NodePtrGuard<_HashtableAlloc, _NodePtr>): New. + (_ReuseAllocNode::operator()(_Args&&...)): Use latter to guard allocated node + pointer while constructing in place the value_type instance. + +2023-11-09 Alexandre Oliva + + PR libstdc++/110807 + * include/bits/stl_bvector.h (_Bit_iterator_base): Add + _M_assume_normalized member function. Call it in _M_bump_up, + _M_bump_down, _M_incr, operator==, operator<=>, operator<, and + operator-. + (_Bit_iterator): Also call it in operator*. + (_Bit_const_iterator): Likewise. + +2023-11-07 François Dumont + + * include/bits/hashtable_policy.h + (_Hashtable_alloc<>::_M_allocate_node): Add missing call to node destructor + on construct exception. + +2023-11-07 Richard Biener + + PR libstdc++/112351 + * src/c++98/locale.cc (locale::facet::_S_initialize_once): + Check whether _S_c_locale is already initialized. + (locale::facet::_S_get_c_locale): Always perform non-threadsafe + init when threadsafe init failed. + +2023-11-06 Ian Lance Taylor + + PR libbacktrace/111315 + PR libbacktrace/112263 + * acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when + grepping link.h for dl_iterate_phdr. + * configure: Regenerate. + +2023-11-06 Jonathan Wakely + + * include/std/expected (expected::and_then, expected::or_else): + Add string literals to static assertions. + * include/std/optional (optional::and_then, optional::or_else): + Likewise. + +2023-11-04 Feng Jisen + + * include/bits/utility.h (_Nth_type): Remove redundant partial + specialization. + +2023-11-04 Jonathan Wakely + + PR libstdc++/110133 + * include/std/system_error (system_error::system_error): Group + arguments so that concatenation can reuse rvalue's capacity. + * src/c++11/system_error.cc (strerror_string): New function. + [_GLIBCXX_HAVE_STRERROR_R] (use_strerror_result): New functions. + (generic_error_category::message): Use strerror_string. + (system_error_category::message): Likewise. + +2023-11-04 Jonathan Wakely + + * doc/xml/manual/appendix_contributing.xml: Replace example that + uses a BADNAME. + * doc/html/manual/source_code_style.html: Regenerate. + +2023-11-02 Jonathan Wakely + + PR libstdc++/112314 + * include/std/string_view (string_view::remove_suffix): Add + debug assertion. + * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc: + New test. + * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc: + New test. + +2023-11-02 Jonathan Wakely + + * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks. + * configure: Regenerate. + +2023-10-30 François Dumont + + * config/abi/pre/gnu-versioned-namespace.ver: Add comment on recently + added emul TLS symbols. + +2023-10-30 François Dumont + + * src/experimental/contract.cc + [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Rework comment. + Remove weak attribute. + +2023-10-29 François Dumont + + * config/abi/pre/gnu-versioned-namespace.ver: Add missing emul TLS + symbols. + +2023-10-29 François Dumont + + * src/experimental/contract.cc + [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Provide symbol + without version namespace decoration for gcc. + +2023-10-26 Jonathan Wakely + + PR libstdc++/112089 + * include/std/shared_mutex (shared_lock::unlock): Change errc + constant to operation_not_permitted. + * testsuite/30_threads/shared_lock/locking/112089.cc: New test. + +2023-10-26 Jonathan Wakely + + * testsuite/20_util/duration/io.cc: Double timeout using + dg-timeout-factor. + * testsuite/std/time/day/io.cc: Likewise. + * testsuite/std/time/format.cc: Likewise. + * testsuite/std/time/hh_mm_ss/io.cc: Likewise. + * testsuite/std/time/month/io.cc: Likewise. + * testsuite/std/time/month_day/io.cc: Likewise. + * testsuite/std/time/month_day_last/io.cc: Likewise. + * testsuite/std/time/month_weekday/io.cc: Likewise. + * testsuite/std/time/month_weekday_last/io.cc: Likewise. + * testsuite/std/time/weekday/io.cc: Likewise. + * testsuite/std/time/weekday_indexed/io.cc: Likewise. + * testsuite/std/time/weekday_last/io.cc: Likewise. + * testsuite/std/time/year/io.cc: Likewise. + * testsuite/std/time/year_month/io.cc: Likewise. + * testsuite/std/time/year_month_day/io.cc: Likewise. + * testsuite/std/time/year_month_day_last/io.cc: Likewise. + * testsuite/std/time/year_month_weekday/io.cc: Likewise. + * testsuite/std/time/year_month_weekday_last/io.cc: Likewise. + * testsuite/std/time/zoned_time/io.cc: Likewise. + +2023-10-25 Jonathan Wakely + + PR libstdc++/111936 + * src/libbacktrace/Makefile.am: Add -prefer-pic to libtool + compile commands. + * src/libbacktrace/Makefile.in: Regenerate. + +2023-10-24 Paul M. Bendixen + + * include/Makefile.am: Move cstdarg, cstdalign and cstdbool to + freestanding. + * include/Makefile.in: Regenerate. + +2023-10-22 Iain Sandoe + + * configure: Regenerate. + * configure.ac: Handle Darwin rpaths. + * src/Makefile.am: Handle Darwin rpaths. + * src/Makefile.in: Regenerate. + +2023-10-21 Jonathan Wakely + + * include/bits/basic_string.h (_M_init_local_buf()): New + function. + (_M_use_local_data()): Use _M_init_local_buf. + (basic_string(), basic_string(const Alloc&)) + (basic_string(basic_string&&)) + (basic_string(basic_string&&, const Alloc&)): Use + _M_init_local_buf instead of _M_use_local_data(). + * include/bits/basic_string.tcc (swap(basic_string&)) + (_M_construct(InIter, InIter, input_iterator_tag)) + (_M_construct(InIter, InIter, forward_iterator_tag)) + (_M_construct(size_type, CharT), reserve()): Likewise. + +2023-10-21 Benjamin Brock + + * include/std/ranges (zip_view, adjacent_view): Implement + workaround for LLVM-61763. + +2023-10-21 Dimitrij Mijoski + + * testsuite/22_locale/codecvt/codecvt_unicode.h: Test length() + +2023-10-21 Jonathan Wakely + + * include/bits/fs_dir.h (operator==(default_sentinel_t)): Fix + indentation. + +2023-10-20 Marek Polacek + + PR testsuite/111883 + * include/std/charconv (from_chars): Add explicit casts. + +2023-10-19 François Dumont + + * include/bits/hashtable_policy.h + (_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove. + (_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove. + * include/bits/hashtable.h + (_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New. + (_M_merge_unique<>, _M_merge_multi<>): Use latter. + * testsuite/23_containers/unordered_map/modifiers/merge.cc + (test04, test05, test06): New test cases. + +2023-10-13 Jakub Jelinek + + * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01): + Initialize stream to va_arg(ap, FILE*) rather than 0. + * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01): + Likewise. + +2023-10-13 Hans-Peter Nilsson + + * testsuite/29_atomics/atomic/compare_exchange_padding.cc, + testsuite/29_atomics/atomic_flag/clear/1.cc, + testsuite/29_atomics/atomic_flag/cons/value_init.cc, + testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc, + testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc, + testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc, + testsuite/29_atomics/atomic_ref/generic.cc, + testsuite/29_atomics/atomic_ref/integral.cc, + testsuite/29_atomics/atomic_ref/pointer.cc: Replace + dg-require-thread-fence with dg-require-atomic-cmpxchg-word. + +2023-10-13 Hans-Peter Nilsson + + * testsuite/lib/dg-options.exp (dg-require-atomic-cmpxchg-word): + New proc. + * testsuite/lib/libstdc++.exp (check_v3_target_atomic_cmpxchg_word): + Ditto. + +2023-10-05 François Dumont + + * config/abi/pre/gnu-versioned-namespace.ver: Add missing symbols + for _Float{16,32,64,128,32x,64x,128x}. + +2023-10-04 Tom Tromey + + * python/libstdcxx/v6/printers.py + (StdExpAnyPrinter.__init__): Qualify call to + _string_types. + +2023-10-04 Tom Tromey + + * python/libstdcxx/v6/printers.py: Assume that + _versioned_namespace is non-None. + * python/libstdcxx/v6/xmethods.py (is_specialization_of): + Assume that _versioned_namespace is non-None. + +2023-10-04 Tom Tromey + + * python/libstdcxx/v6/xmethods.py (_versioned_namespace): + Define. + +2023-09-29 Dimitrij Mijoski + + PR libstdc++/108976 + * src/c++11/codecvt.cc (read_utf8_code_point): Fix handing of + surrogates in UTF-8. + (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-8. + (ucs4_in): Fix handling of range with odd number of bytes. + (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-16. + (ucs2_out): Fix handling of surrogates in UCS-2 -> UTF-16. + (ucs2_in): Fix handling of range with odd number of bytes. + (__codecvt_utf16_base::do_in): Likewise. + (__codecvt_utf16_base::do_in): Likewise. + (__codecvt_utf16_base::do_in): Likewise. + * testsuite/22_locale/codecvt/codecvt_unicode.cc: Renames, add + tests for codecvt_utf16 and codecvt_utf16. + * testsuite/22_locale/codecvt/codecvt_unicode.h: Refactor UTF-8 + testing functions for char8_t, add more test cases for errors, + add testing functions for codecvt_utf16. + * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: + Renames, add tests for codecvt_utf16. + * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc (test06): + Fix test. + * testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc: New + test. + +2023-09-29 Nathaniel Shead + + * include/bits/basic_string.h: (basic_string(basic_string&&)): + Activate _M_local_buf when needed. + (basic_string(basic_string&&, const _Alloc&)): Likewise. + * include/bits/basic_string.tcc: (basic_string::swap): Likewise. + * include/std/variant: (__detail::__variant::__construct_n): New. + (__detail::__variant::__emplace): Use __construct_n. + +2023-09-28 Tom Tromey + + * python/libstdcxx/v6/printers.py (Printer.add_version) + (add_one_template_type_printer) + (FilteringTypePrinter.add_one_type_printer): Use Python + "not in" operator. + +2023-09-28 Tom Tromey + + * python/libstdcxx/v6/printers.py (std_ratio_t_tuple): + Remove. + +2023-09-28 Tom Tromey + + * python/libstdcxx/v6/printers.py + (StdExpOptionalPrinter.__init__, lookup_node_type): + Remove unused variables. + +2023-09-28 Tom Tromey + + * python/libstdcxx/v6/printers.py: Don't import 'os'. + * python/libstdcxx/v6/__init__.py: Don't import 'gdb'. + +2023-09-28 Tom Tromey + + * python/libstdcxx/v6/printers.py: Use gdb.ValuePrinter + everywhere. Rename members to start with "_". + +2023-09-28 Tom Tromey + + * testsuite/lib/gdb-test.exp (gdb-test): Enable Python + stack traces from gdb. + +2023-09-28 Jonathan Wakely + + * python/libstdcxx/v6/xmethods.py (is_specialization_of): Define + new function. + (ArrayMethodsMatcher, DequeMethodsMatcher) + (ForwardListMethodsMatcher, ListMethodsMatcher) + (VectorMethodsMatcher, AssociativeContainerMethodsMatcher) + (UniquePtrGetWorker, UniquePtrMethodsMatcher) + (SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use + is_specialization_of instead of re.match. + +2023-09-28 Jonathan Wakely + + * python/libstdcxx/v6/printers.py: Break long lines. Use raw + strings for regular expressions. Add whitespace around + operators. + (is_member_of_namespace): Use isinstance to check type. + (is_specialization_of): Likewise. Adjust template_name + for versioned namespace instead of duplicating the re.match + call. + (StdExpAnyPrinter._string_types): New static method. + (StdExpAnyPrinter.to_string): Use _string_types. + +2023-09-28 Jonathan Wakely + + * python/libstdcxx/v6/printers.py: Format docstrings according + to PEP 257. + * python/libstdcxx/v6/xmethods.py: Likewise. + +2023-09-28 Tim Song + + PR libstdc++/111050 + * include/bits/hashtable_policy.h + (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v()) + Add [[__gnu__::__always_inline__]]. + +2023-09-27 Jonathan Wakely + + * python/libstdcxx/v6/printers.py (StdChronoTimeZoneRulePrinter): + Fix incorrect number of replacement fields. + +2023-09-26 Hans-Peter Nilsson + + * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Add + dg-require-thread-fence. + +2023-09-25 Patrick Palka + + * include/std/charconv (__detail::__integer_to_chars_result_type): + Remove. + (__detail::__to_chars_16): Use to_chars_result as return type. + (__detail::__to_chars_10): Likewise. + (__detail::__to_chars_8): Likewise. + (__detail::__to_chars_2): Likewise. + (__detail::__to_chars_i): Likewise. + (__detail::__integer_from_chars_result_type): Inline the + constraint into ... + (from_chars): ... here. Use __is_standard_integer in the + constraint. Encode constraint as a defaulted non-type template + parameter instead of within the return type. + +2023-09-25 John David Anglin + + * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update. + +2023-09-25 Jonathan Wakely + + PR libstdc++/111511 + PR c++/111512 + * include/std/array (to_array): Cast memcpy arguments to void*. + * testsuite/23_containers/array/creation/111512.cc: New test. + +2023-09-25 Jonathan Wakely + + * include/bits/move.h (forward_list): Define for C++23. + * include/bits/version.def (forward_like): Define. + * include/bits/version.h: Regenerate. + * include/std/utility (__glibcxx_want_forward_like): Define. + * testsuite/20_util/forward_like/1.cc: New test. + * testsuite/20_util/forward_like/2_neg.cc: New test. + * testsuite/20_util/forward_like/version.cc: New test. + +2023-09-19 Marek Polacek + + * testsuite/20_util/allocator/105975.cc: Add dg-error. + +2023-09-18 Patrick Palka + + PR c++/63198 + PR c++/18474 + * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc: + Make data member seed_seq::called mutable. + * testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc: + Likewise. + * testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc: + Likewise. + * testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc: + Likewise. + * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc: + Likewise. + * testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc: + Likewise. + * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc: + Likewise. + +2023-09-18 Jonathan Wakely + + * doc/xml/manual/status_cxx2020.xml: Tweak P1466R3 status. + * doc/html/manual/status.html: Regenerate. + +2023-09-18 Jonathan Wakely + + * doc/xml/manual/configure.xml: Use conventional option name. + * doc/xml/manual/status_cxx2020.xml: Update. + * doc/xml/manual/status_cxx2023.xml: Update. + * doc/html/*: Regenerate. + +2023-09-18 Jonathan Wakely + + * doc/xml/manual/intro.xml: Clarify that building libstdc++ + separately from GCC is not supported. + * doc/xml/manual/prerequisites.xml: Note msgfmt prerequisite for + testing. + * doc/html/manual/setup.html: Regenerate. + +2023-09-15 Jonathan Wakely + + * testsuite/29_atomics/atomic_ref/wait_notify.cc: Do not + restrict to pthreads targets. + * testsuite/30_threads/jthread/3.cc: Likewise. + * testsuite/30_threads/semaphore/100806.cc: Likewise. + * testsuite/30_threads/semaphore/try_acquire.cc: Likewise. + * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise. + * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/18_support/coroutines/95917.cc: Remove dg-options + -std=gnu++2a. + * testsuite/18_support/coroutines/hash.cc: Likewise. + * testsuite/18_support/coroutines/lwg3460.cc: Likewise. + * testsuite/18_support/destroying_delete.cc: Likewise. + * testsuite/18_support/source_location/1.cc: Likewise. + * testsuite/18_support/source_location/consteval.cc: Likewise. + * testsuite/18_support/source_location/version.cc: Likewise. + * testsuite/19_diagnostics/error_category/operators/three_way.cc: + Likewise. + * testsuite/19_diagnostics/error_code/operators/three_way.cc: + Likewise. + * testsuite/19_diagnostics/error_condition/operators/three_way.cc: + Likewise. + * testsuite/19_diagnostics/stacktrace/output.cc: Likewise. + * testsuite/26_numerics/adjacent_difference/lwg2055.cc: + Likewise. + * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise. + * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise. + * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise. + * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise. + * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise. + * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc: + Likewise. + * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc: + Likewise. + * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc: + Likewise. + * testsuite/28_regex/sub_match/compare_c++20.cc: Likewise. + * testsuite/experimental/filesystem/iterators/106201.cc: + Likewise. + * testsuite/experimental/scopeguard/exit.cc: Likewise. + * testsuite/experimental/scopeguard/uniqueres.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/30_threads/barrier/1.cc: Remove dg-options + -std=gnu++20. + * testsuite/30_threads/barrier/2.cc: Likewise. + * testsuite/30_threads/barrier/arrive.cc: Likewise. + * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise. + * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise. + * testsuite/30_threads/barrier/completion.cc: Likewise. + * testsuite/30_threads/condition_variable/members/clock_neg.cc: + Likewise. + * testsuite/30_threads/condition_variable_any/members/clock_neg.cc: + Likewise. + * testsuite/30_threads/condition_variable_any/stop_token/1.cc: + Likewise. + * testsuite/30_threads/condition_variable_any/stop_token/2.cc: + Likewise. + * testsuite/30_threads/future/members/clock_neg.cc: Likewise. + * testsuite/30_threads/headers/stop_token/synopsis.cc: Likewise. + * testsuite/30_threads/headers/thread/types_std_c++20.cc: + Likewise. + * testsuite/30_threads/jthread/1.cc: Likewise. + * testsuite/30_threads/jthread/100612.cc: Likewise. + * testsuite/30_threads/jthread/95989.cc: Likewise. + * testsuite/30_threads/jthread/jthread.cc: Likewise. + * testsuite/30_threads/jthread/version.cc: Likewise. + * testsuite/30_threads/latch/1.cc: Likewise. + * testsuite/30_threads/latch/2.cc: Likewise. + * testsuite/30_threads/latch/3.cc: Likewise. + * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc: + Likewise. + * testsuite/30_threads/semaphore/1.cc: Likewise. + * testsuite/30_threads/semaphore/2.cc: Likewise. + * testsuite/30_threads/semaphore/least_max_value_neg.cc: + Likewise. + * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise. + * testsuite/30_threads/shared_future/members/clock_neg.cc: + Likewise. + * testsuite/30_threads/shared_lock/locking/clock_neg.cc: + Likewise. + * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc: + Likewise. + * testsuite/30_threads/stop_token/1.cc: Likewise. + * testsuite/30_threads/stop_token/2.cc: Likewise. + * testsuite/30_threads/stop_token/stop_callback.cc: Likewise. + * testsuite/30_threads/stop_token/stop_callback/deadlock.cc: + Likewise. + * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc: + Likewise. + * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc: + Likewise. + * testsuite/30_threads/stop_token/stop_callback/invoke.cc: + Likewise. + * testsuite/30_threads/stop_token/stop_source.cc: Likewise. + * testsuite/30_threads/stop_token/stop_source/assign.cc: + Likewise. + * testsuite/30_threads/stop_token/stop_token.cc: Likewise. + * testsuite/30_threads/stop_token/stop_token/stop_possible.cc: + Likewise. + * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise. + * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc: + Likewise. + * testsuite/30_threads/unique_lock/locking/clock_neg.cc: + Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc: + Remove dg-options -std=gnu++2a. + * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc: + Likewise. + * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc: + Likewise. + * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc: + Likewise. + * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise. + * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc: + Likewise. + * testsuite/27_io/basic_istringstream/str/char/2.cc: Likewise. + * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc: + Likewise. + * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise. + * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc: + Likewise. + * testsuite/27_io/basic_ostream/emit/1.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc: + Likewise. + * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc: + Likewise. + * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise. + * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc: + Likewise. + * testsuite/27_io/basic_ostringstream/str/char/3.cc: Likewise. + * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc: + Likewise. + * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise. + * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc: + Likewise. + * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise. + * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise. + * testsuite/27_io/basic_stringbuf/str/char/4.cc: Likewise. + * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: Likewise. + * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise. + * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise. + * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise. + * testsuite/27_io/basic_stringstream/cons/char/97719.cc: + Likewise. + * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc: + Likewise. + * testsuite/27_io/basic_stringstream/str/char/5.cc: Likewise. + * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc: + Likewise. + * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise. + * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc: + Likewise. + * testsuite/27_io/basic_syncbuf/1.cc: Likewise. + * testsuite/27_io/basic_syncbuf/2.cc: Likewise. + * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: Likewise. + * testsuite/27_io/basic_syncbuf/requirements/types.cc: Likewise. + * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Likewise. + * testsuite/27_io/basic_syncstream/1.cc: Likewise. + * testsuite/27_io/basic_syncstream/2.cc: Likewise. + * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Likewise. + * testsuite/27_io/basic_syncstream/requirements/types.cc: + Likewise. + * testsuite/27_io/filesystem/iterators/106201.cc: Likewise. + * testsuite/27_io/filesystem/iterators/lwg3719.cc: Likewise. + * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: + Likewise. + * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc: + Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/26_numerics/accumulate/constexpr.cc: Remove + dg-options -std=gnu++2a. + * testsuite/26_numerics/accumulate/lwg2055.cc: Likewise. + * testsuite/26_numerics/adjacent_difference/constexpr.cc: + Likewise. + * testsuite/26_numerics/bit/bit.cast/105027.cc: Likewise. + * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise. + * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise. + * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise. + * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc: + Likewise. + * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise. + * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise. + * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: Likewise. + * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise. + * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise. + * testsuite/26_numerics/bit/header-2.cc: Likewise. + * testsuite/26_numerics/bit/header.cc: Likewise. + * testsuite/26_numerics/complex/1.cc: Likewise. + * testsuite/26_numerics/complex/2.cc: Likewise. + * testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc: + Likewise. + * testsuite/26_numerics/complex/operators/more_constexpr.cc: + Likewise. + * testsuite/26_numerics/complex/requirements/more_constexpr.cc: + Likewise. + * testsuite/26_numerics/complex/value_operations/more_constexpr.cc: + Likewise. + * testsuite/26_numerics/endian/1.cc: Likewise. + * testsuite/26_numerics/endian/2.cc: Likewise. + * testsuite/26_numerics/endian/3.cc: Likewise. + * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise. + * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise. + * testsuite/26_numerics/inner_product/constexpr.cc: Likewise. + * testsuite/26_numerics/inner_product/lwg2055.cc: Likewise. + * testsuite/26_numerics/iota/constexpr.cc: Likewise. + * testsuite/26_numerics/lerp/1.cc: Likewise. + * testsuite/26_numerics/lerp/constexpr.cc: Likewise. + * testsuite/26_numerics/lerp/version.cc: Likewise. + * testsuite/26_numerics/midpoint/floating.cc: Likewise. + * testsuite/26_numerics/midpoint/integral.cc: Likewise. + * testsuite/26_numerics/midpoint/pointer.cc: Likewise. + * testsuite/26_numerics/midpoint/pointer_neg.cc: Likewise. + * testsuite/26_numerics/midpoint/version.cc: Likewise. + * testsuite/26_numerics/numbers/1.cc: Likewise. + * testsuite/26_numerics/numbers/2.cc: Likewise. + * testsuite/26_numerics/numbers/3.cc: Likewise. + * testsuite/26_numerics/numbers/float128.cc: Likewise. + * testsuite/26_numerics/numbers/nonfloat_neg.cc: Likewise. + * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise. + * testsuite/26_numerics/partial_sum/lwg2055.cc: Likewise. + * testsuite/26_numerics/random/concept.cc: Likewise. + * testsuite/26_numerics/reduce/constexpr.cc: Likewise. + * testsuite/26_numerics/slice/compare.cc: Likewise. + * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc: + Likewise. + * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc: + Likewise. + * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/24_iterators/aliases.cc: Remove dg-options + -std=gnu++2a. + * testsuite/24_iterators/associated_types/incrementable.traits.cc: + Likewise. + * testsuite/24_iterators/associated_types/iterator.traits.cc: + Likewise. + * testsuite/24_iterators/associated_types/readable.traits.cc: + Likewise. + * testsuite/24_iterators/back_insert_iterator/constexpr.cc: + Likewise. + * testsuite/24_iterators/back_insert_iterator/pr93884.cc: + Likewise. + * testsuite/24_iterators/bidirectional/concept.cc: Likewise. + * testsuite/24_iterators/common_iterator/1.cc: Likewise. + * testsuite/24_iterators/common_iterator/100823.cc: Likewise. + * testsuite/24_iterators/common_iterator/2.cc: Likewise. + * testsuite/24_iterators/contiguous/concept.cc: Likewise. + * testsuite/24_iterators/contiguous/tag.cc: Likewise. + * testsuite/24_iterators/counted_iterator/1.cc: Likewise. + * testsuite/24_iterators/counted_iterator/lwg3389.cc: Likewise. + * testsuite/24_iterators/counted_iterator/lwg3643.cc: Likewise. + * testsuite/24_iterators/customization_points/92894.cc: + Likewise. + * testsuite/24_iterators/customization_points/iter_move.cc: + Likewise. + * testsuite/24_iterators/customization_points/iter_swap.cc: + Likewise. + * testsuite/24_iterators/customization_points/lwg3420.cc: + Likewise. + * testsuite/24_iterators/forward/concept.cc: Likewise. + * testsuite/24_iterators/front_insert_iterator/constexpr.cc: + Likewise. + * testsuite/24_iterators/front_insert_iterator/pr93884.cc: + Likewise. + * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: + Likewise. + * testsuite/24_iterators/indirect_callable/92894.cc: Likewise. + * testsuite/24_iterators/indirect_callable/projected-adl.cc: + Likewise. + * testsuite/24_iterators/indirect_callable/projected.cc: + Likewise. + * testsuite/24_iterators/input/concept.cc: Likewise. + * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise. + * testsuite/24_iterators/istream_iterator/cons/sentinel.cc: + Likewise. + * testsuite/24_iterators/istream_iterator/sentinel.cc: Likewise. + * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc: + Likewise. + * testsuite/24_iterators/istreambuf_iterator/sentinel.cc: + Likewise. + * testsuite/24_iterators/move_iterator/cust.cc: Likewise. + * testsuite/24_iterators/move_iterator/dr3435.cc: Likewise. + * testsuite/24_iterators/move_iterator/input_iterator.cc: + Likewise. + * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise. + * testsuite/24_iterators/move_iterator/lwg3391.cc: Likewise. + * testsuite/24_iterators/move_iterator/move_only.cc: Likewise. + * testsuite/24_iterators/move_iterator/p2520r0.cc: Likewise. + * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: + Likewise. + * testsuite/24_iterators/move_iterator/sentinel.cc: Likewise. + * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: Likewise. + * testsuite/24_iterators/output/concept.cc: Likewise. + * testsuite/24_iterators/random_access/concept.cc: Likewise. + * testsuite/24_iterators/range_access/range_access_cpp20.cc: + Likewise. + * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc: + Likewise. + * testsuite/24_iterators/range_operations/100768.cc: Likewise. + * testsuite/24_iterators/range_operations/advance.cc: Likewise. + * testsuite/24_iterators/range_operations/advance_overflow.cc: + Likewise. + * testsuite/24_iterators/range_operations/distance.cc: Likewise. + * testsuite/24_iterators/range_operations/lwg3392.cc: Likewise. + * testsuite/24_iterators/range_operations/next.cc: Likewise. + * testsuite/24_iterators/range_operations/prev.cc: Likewise. + * testsuite/24_iterators/reverse_iterator/cust.cc: Likewise. + * testsuite/24_iterators/reverse_iterator/dr3435.cc: Likewise. + * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc: + Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/23_containers/array/comparison_operators/96851.cc: + Remove dg-options -std=gnu++2a. + * testsuite/23_containers/array/comparison_operators/constexpr.cc: + Likewise. + * testsuite/23_containers/array/creation/1.cc: Likewise. + * testsuite/23_containers/array/creation/110167.cc: Likewise. + * testsuite/23_containers/array/creation/2.cc: Likewise. + * testsuite/23_containers/array/creation/3_neg.cc: Likewise. + * testsuite/23_containers/array/requirements/constexpr_fill.cc: + Likewise. + * testsuite/23_containers/array/requirements/constexpr_swap.cc: + Likewise. + * testsuite/23_containers/deque/48101-3_neg.cc: Likewise. + * testsuite/23_containers/deque/erasure.cc: Likewise. + * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc: + Likewise. + * testsuite/23_containers/deque/operators/cmp_c++20.cc: + Likewise. + * testsuite/23_containers/forward_list/48101-3_neg.cc: Likewise. + * testsuite/23_containers/forward_list/cmp_c++20.cc: Likewise. + * testsuite/23_containers/forward_list/erasure.cc: Likewise. + * testsuite/23_containers/forward_list/modifiers/92878_92947.cc: + Likewise. + * testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc: + Likewise. + * testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc: + Likewise. + * testsuite/23_containers/list/48101-3_neg.cc: Likewise. + * testsuite/23_containers/list/cmp_c++20.cc: Likewise. + * testsuite/23_containers/list/erasure.cc: Likewise. + * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc: + Likewise. + * testsuite/23_containers/list/operations/remove_cxx20_return.cc: + Likewise. + * testsuite/23_containers/list/operations/unique_cxx20_return.cc: + Likewise. + * testsuite/23_containers/map/48101-3_neg.cc: Likewise. + * testsuite/23_containers/map/erasure.cc: Likewise. + * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc: + Likewise. + * testsuite/23_containers/map/operations/contains.cc: Likewise. + * testsuite/23_containers/map/operators/cmp_c++20.cc: Likewise. + * testsuite/23_containers/multimap/48101-3_neg.cc: Likewise. + * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc: + Likewise. + * testsuite/23_containers/multimap/operations/contains.cc: + Likewise. + * testsuite/23_containers/multimap/operators/cmp_c++20.cc: + Likewise. + * testsuite/23_containers/multiset/48101-3_neg.cc: Likewise. + * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc: + Likewise. + * testsuite/23_containers/multiset/operations/contains.cc: + Likewise. + * testsuite/23_containers/multiset/operators/cmp_c++20.cc: + Likewise. + * testsuite/23_containers/priority_queue/92878_92947.cc: + Likewise. + * testsuite/23_containers/queue/92878_92947.cc: Likewise. + * testsuite/23_containers/queue/cmp_c++20.cc: Likewise. + * testsuite/23_containers/set/48101-3_neg.cc: Likewise. + * testsuite/23_containers/set/erasure.cc: Likewise. + * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc: + Likewise. + * testsuite/23_containers/set/operations/contains.cc: Likewise. + * testsuite/23_containers/set/operators/cmp_c++20.cc: Likewise. + * testsuite/23_containers/span/1.cc: Likewise. + * testsuite/23_containers/span/101411.cc: Likewise. + * testsuite/23_containers/span/2.cc: Likewise. + * testsuite/23_containers/span/deduction.cc: Likewise. + * testsuite/23_containers/span/explicit.cc: Likewise. + * testsuite/23_containers/span/layout_compat.cc: Likewise. + * testsuite/23_containers/span/lwg3255.cc: Likewise. + * testsuite/23_containers/span/nothrow_cons.cc: Likewise. + * testsuite/23_containers/span/trivially_copyable.cc: Likewise. + * testsuite/23_containers/stack/92878_92947.cc: Likewise. + * testsuite/23_containers/stack/cmp_c++20.cc: Likewise. + * testsuite/23_containers/unordered_map/48101-3_neg.cc: + Likewise. + * testsuite/23_containers/unordered_map/erasure.cc: Likewise. + * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc: + Likewise. + * testsuite/23_containers/unordered_map/operations/1.cc: + Likewise. + * testsuite/23_containers/unordered_map/operations/contains.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/48101-3_neg.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/operations/1.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/operations/contains.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/48101-3_neg.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/operations/1.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/operations/contains.cc: + Likewise. + * testsuite/23_containers/unordered_set/48101-3_neg.cc: + Likewise. + * testsuite/23_containers/unordered_set/erasure.cc: Likewise. + * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc: + Likewise. + * testsuite/23_containers/unordered_set/operations/1.cc: + Likewise. + * testsuite/23_containers/unordered_set/operations/contains.cc: + Likewise. + * testsuite/23_containers/vector/48101-3_neg.cc: Likewise. + * testsuite/23_containers/vector/bool/capacity/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise. + * testsuite/23_containers/vector/bool/cons/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/bool/element_access/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/bool/iterator_c++20.cc: + Likewise. + * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/bool/modifiers/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/capacity/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/cmp_c++20.cc: Likewise. + * testsuite/23_containers/vector/cons/constexpr.cc: Likewise. + * testsuite/23_containers/vector/data_access/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/element_access/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/erasure.cc: Likewise. + * testsuite/23_containers/vector/modifiers/assign/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/modifiers/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc: + Likewise. + * testsuite/23_containers/vector/modifiers/swap/constexpr.cc: + Likewise. + * testsuite/23_containers/vector/requirements/version.cc: + Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/21_strings/basic_string/cons/char/105995.cc: Remove + dg-options -std=gnu++20. + * testsuite/21_strings/basic_string/cons/char/constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string/erasure.cc: Likewise. + * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: + Likewise. + * testsuite/21_strings/basic_string/literals/constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc: + Likewise. + * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/ends_with/char.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/starts_with/char.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: + Likewise. + * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc: + Likewise. + * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc: + Likewise. + * testsuite/21_strings/basic_string_view/cons/char/range.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc: + Likewise. + * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc: + Likewise. + * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc: + Likewise. + * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc: + Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/20_util/allocator/105975.cc: Remove dg-options + -std=gnu++2a. + * testsuite/20_util/allocator/rebind_c++20.cc: Likewise. + * testsuite/20_util/allocator/requirements/constexpr.cc: + Likewise. + * testsuite/20_util/allocator/requirements/typedefs_c++20.cc: + Likewise. + * testsuite/20_util/allocator_traits/header-2.cc: Likewise. + * testsuite/20_util/allocator_traits/header.cc: Likewise. + * testsuite/20_util/allocator_traits/members/92878_92947.cc: + Likewise. + * testsuite/20_util/any/assign/92878_92947.cc: Likewise. + * testsuite/20_util/any/cons/92878_92947.cc: Likewise. + * testsuite/20_util/assume_aligned/1.cc: Likewise. + * testsuite/20_util/assume_aligned/2_neg.cc: Likewise. + * testsuite/20_util/assume_aligned/3.cc: Likewise. + * testsuite/20_util/assume_aligned/97132.cc: Likewise. + * testsuite/20_util/bind/constexpr.cc: Likewise. + * testsuite/20_util/bitset/operations/96303.cc: Likewise. + * testsuite/20_util/common_reference/100894.cc: Likewise. + * testsuite/20_util/common_reference/requirements/alias_decl.cc: + Likewise. + * testsuite/20_util/common_reference/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/common_reference/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/duration/comparison_operators/three_way.cc: + Likewise. + * testsuite/20_util/exchange/constexpr.cc: Likewise. + * testsuite/20_util/exchange/noexcept.cc: Likewise. + * testsuite/20_util/from_chars/1_c++20_neg.cc: Likewise. + * testsuite/20_util/from_chars/compare.cc: Likewise. + * testsuite/20_util/function_objects/bind_front/1.cc: Likewise. + * testsuite/20_util/function_objects/bind_front/107784.cc: + Likewise. + * testsuite/20_util/function_objects/bind_front/111327.cc: + Likewise. + * testsuite/20_util/function_objects/bind_front/2.cc: Likewise. + * testsuite/20_util/function_objects/bind_front/97101.cc: + Likewise. + * testsuite/20_util/function_objects/bind_front/constexpr.cc: + Likewise. + * testsuite/20_util/function_objects/constexpr_searcher.cc: + Likewise. + * testsuite/20_util/function_objects/identity/1.cc: Likewise. + * testsuite/20_util/function_objects/invoke/constexpr.cc: + Likewise. + * testsuite/20_util/function_objects/mem_fn/constexpr.cc: + Likewise. + * testsuite/20_util/function_objects/not_fn/constexpr.cc: + Likewise. + * testsuite/20_util/integer_comparisons/1.cc: Likewise. + * testsuite/20_util/integer_comparisons/2.cc: Likewise. + * testsuite/20_util/integer_comparisons/equal.cc: Likewise. + * testsuite/20_util/integer_comparisons/equal_neg.cc: Likewise. + * testsuite/20_util/integer_comparisons/greater.cc: Likewise. + * testsuite/20_util/integer_comparisons/greater_equal.cc: + Likewise. + * testsuite/20_util/integer_comparisons/greater_equal_neg.cc: + Likewise. + * testsuite/20_util/integer_comparisons/greater_neg.cc: + Likewise. + * testsuite/20_util/integer_comparisons/in_range.cc: Likewise. + * testsuite/20_util/integer_comparisons/in_range_neg.cc: + Likewise. + * testsuite/20_util/integer_comparisons/less.cc: Likewise. + * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise. + * testsuite/20_util/integer_comparisons/less_equal_neg.cc: + Likewise. + * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise. + * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise. + * testsuite/20_util/integer_comparisons/not_equal_neg.cc: + Likewise. + * testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_bounded_array/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/is_bounded_array/value.cc: Likewise. + * testsuite/20_util/is_constant_evaluated/1.cc: Likewise. + * testsuite/20_util/is_constant_evaluated/noexcept.cc: Likewise. + * testsuite/20_util/is_constructible/92878_92947.cc: Likewise. + * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc: + Likewise. + * testsuite/20_util/is_layout_compatible/value.cc: Likewise. + * testsuite/20_util/is_layout_compatible/version.cc: Likewise. + * testsuite/20_util/is_nothrow_constructible/value_c++20.cc: + Likewise. + * testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/is_nothrow_convertible/value.cc: Likewise. + * testsuite/20_util/is_pod/deprecated-2a.cc: Likewise. + * testsuite/20_util/is_pointer_interconvertible/value.cc: + Likewise. + * testsuite/20_util/is_pointer_interconvertible/version.cc: + Likewise. + * testsuite/20_util/is_pointer_interconvertible/with_class.cc: + Likewise. + * testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/is_unbounded_array/value.cc: Likewise. + * testsuite/20_util/optional/assignment/92878_92947.cc: + Likewise. + * testsuite/20_util/optional/cons/92878_92947.cc: Likewise. + * testsuite/20_util/optional/constexpr/assign.cc: Likewise. + * testsuite/20_util/optional/constexpr/cons/conv.cc: Likewise. + * testsuite/20_util/optional/constexpr/modifiers.cc: Likewise. + * testsuite/20_util/optional/constexpr/swap.cc: Likewise. + * testsuite/20_util/optional/relops/96269.cc: Likewise. + * testsuite/20_util/optional/relops/three_way.cc: Likewise. + * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc: + Likewise. + * testsuite/20_util/pair/cons/92878_92947.cc: Likewise. + * testsuite/20_util/pair/constexpr_assign.cc: Likewise. + * testsuite/20_util/pair/constexpr_swap.cc: Likewise. + * testsuite/20_util/pair/requirements/structural.cc: Likewise. + * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc: + Likewise. + * testsuite/20_util/polymorphic_allocator/allocate_object.cc: + Likewise. + * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: + Likewise. + * testsuite/20_util/polymorphic_allocator/lwg3237.cc: Likewise. + * testsuite/20_util/reference_wrapper/constexpr.cc: Likewise. + * testsuite/20_util/reference_wrapper/incomplete.cc: Likewise. + * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: + Likewise. + * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/remove_cvref/value.cc: Likewise. + * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc: + Likewise. + * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: + Likewise. + * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise. + * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc: + Likewise. + * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/92878_92947.cc: + Likewise. + * testsuite/20_util/shared_ptr/creation/array.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/version.cc: Likewise. + * testsuite/20_util/time_point/4.cc: Likewise. + * testsuite/20_util/time_point/comparison_operators/three_way.cc: + Likewise. + * testsuite/20_util/to_address/1.cc: Likewise. + * testsuite/20_util/to_address/1_neg.cc: Likewise. + * testsuite/20_util/to_address/debug.cc: Likewise. + * testsuite/20_util/to_address/lwg3545.cc: Likewise. + * testsuite/20_util/to_chars/compare.cc: Likewise. + * testsuite/20_util/tuple/comparison_operators/three_way.cc: + Likewise. + * testsuite/20_util/tuple/cons/102270.cc: Likewise. + * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: + Likewise. + * testsuite/20_util/tuple/constexpr_swap.cc: Likewise. + * testsuite/20_util/type_identity/requirements/alias_decl.cc: + Likewise. + * testsuite/20_util/type_identity/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/type_identity/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/typeindex/comparison_operators_c++20.cc: + Likewise. + * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc: + Likewise. + * testsuite/20_util/unique_ptr/creation/92878_92947.cc: + Likewise. + * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: + Likewise. + * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc: + Likewise. + * testsuite/20_util/unique_ptr/io/lwg2948.cc: Likewise. + * testsuite/20_util/unwrap_reference/1.cc: Likewise. + * testsuite/20_util/unwrap_reference/2.cc: Likewise. + * testsuite/20_util/unwrap_reference/3.cc: Likewise. + * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise. + * testsuite/20_util/uses_allocator/lwg3527.cc: Likewise. + * testsuite/20_util/uses_allocator/make_obj.cc: Likewise. + * testsuite/20_util/uses_allocator/uninitialized_construct.cc: + Likewise. + * testsuite/20_util/variant/92878_92947.cc: Likewise. + * testsuite/20_util/variant/95915.cc: Likewise. + * testsuite/20_util/variant/constexpr.cc: Likewise. + * testsuite/20_util/variant/relops/three_way.cc: Likewise. + * testsuite/20_util/variant/visit_neg.cc: Likewise. + * testsuite/20_util/variant/visit_r.cc: Likewise. + * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/18_support/comparisons/algorithms/fallback.cc: + Remove dg-options -std=gnu++2a. + * testsuite/18_support/comparisons/algorithms/partial_order.cc: + Likewise. + * testsuite/18_support/comparisons/algorithms/strong_order.cc: + Likewise. + * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc: + Likewise. + * testsuite/18_support/comparisons/algorithms/weak_order.cc: + Likewise. + * testsuite/18_support/comparisons/categories/94565.cc: + Likewise. + * testsuite/18_support/comparisons/categories/partialord.cc: + Likewise. + * testsuite/18_support/comparisons/categories/strongord.cc: + Likewise. + * testsuite/18_support/comparisons/categories/weakord.cc: + Likewise. + * testsuite/18_support/comparisons/categories/zero_neg.cc: + Likewise. + * testsuite/18_support/comparisons/common/1.cc: Likewise. + * testsuite/18_support/comparisons/object/93479.cc: Likewise. + * testsuite/18_support/comparisons/object/lwg3530.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/29_atomics/atomic/compare_exchange_padding.cc: + Remove dg-options -std=gnu++2a. + * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise. + * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise. + * testsuite/29_atomics/atomic/requirements/types_neg.cc: + Likewise. + * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise. + * testsuite/29_atomics/atomic/wait_notify/100334.cc: Likewise. + * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise. + * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise. + * testsuite/29_atomics/atomic/wait_notify/bool.cc: Likewise. + * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise. + * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise. + * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Likewise. + * testsuite/29_atomics/atomic_flag/test/explicit.cc: Likewise. + * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise. + * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise. + * testsuite/29_atomics/atomic_float/1.cc: Likewise. + * testsuite/29_atomics/atomic_float/95282.cc: Likewise. + * testsuite/29_atomics/atomic_float/requirements.cc: Likewise. + * testsuite/29_atomics/atomic_float/value_init.cc: Likewise. + * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise. + * testsuite/29_atomics/atomic_integral/cons/value_init.cc: + Likewise. + * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise. + * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: + Likewise. + * testsuite/29_atomics/atomic_ref/deduction.cc: Likewise. + * testsuite/29_atomics/atomic_ref/float.cc: Likewise. + * testsuite/29_atomics/atomic_ref/generic.cc: Likewise. + * testsuite/29_atomics/atomic_ref/integral.cc: Likewise. + * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise. + * testsuite/29_atomics/atomic_ref/requirements.cc: Likewise. + * testsuite/29_atomics/headers/atomic/types_std_c++20.cc: + Likewise. + * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc: + Likewise. + * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc: + Likewise. + * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc: + Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: New test. + * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc: New test. + +2023-09-15 Jonathan Wakely + + * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): New + macro. + * config.h.in: Regenerate. + * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export new + basic_filebuf members. + * config/io/basic_file_stdio.cc (__basic_file::native_handle): + Define new function. + * config/io/basic_file_stdio.h (__basic_file::native_handle): + Declare new function. + * configure: Regenerate. + * configure.ac: Use GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES. + * include/bits/version.def (fstream_native_handles): New macro. + * include/bits/version.h: Regenerate. + * include/std/fstream (basic_filebuf::native_handle) + (basic_fstream::native_handle, basic_ifstream::native_handle) + (basic_ofstream::native_handle): New functions. + * src/c++11/Makefile.am: Move compilation of basic_file.cc, + locale_init.cc and localename.cc to here. + * src/c++11/Makefile.in: Regenerate. + * src/c++98/locale_init.cc: Moved to... + * src/c++11/locale_init.cc: ...here. + * src/c++98/localename.cc: Moved to... + * src/c++11/localename.cc: ...here. + * src/c++98/Makefile.am: Remove basic_file.cc, locale_init.cc + and localename.cc from here. + * src/c++98/Makefile.in: Regenerate. + * testsuite/27_io/basic_filebuf/native_handle/version.cc: New test. + * testsuite/27_io/basic_fstream/native_handle/char/1.cc: New test. + * testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc: New test. + * testsuite/27_io/basic_ifstream/native_handle/char/1.cc: New test. + * testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc: New test. + * testsuite/27_io/basic_ofstream/native_handle/char/1.cc: New test. + * testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc: New test. + +2023-09-15 Jonathan Wakely + + * testsuite/libstdc++-dg/conformance.exp: Add log line when + using testsuite_files. + +2023-09-15 Jonathan Wakely + + * testsuite/20_util/shared_ptr/atomic/3.cc: Simplify dg + directives. + * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: + Likewise. + * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/allocate.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/allocate_single.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/cons.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/cons_single.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/is_equal.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/multithreaded.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/options.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/release.cc: + Likewise. + * testsuite/20_util/synchronized_pool_resource/release_single.cc: + Likewise. + * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc: + Likewise. + * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc: + Likewise. + * testsuite/30_threads/stop_token/stop_callback/destroy.cc: + Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/23_containers/span/back_assert_neg.cc: Remove + dg-options and add effective target selector to dg-do. Add + no_pch. + * testsuite/23_containers/span/back_neg.cc: Likewise. + * testsuite/23_containers/span/cons_1_assert_neg.cc: Likewise. + * testsuite/23_containers/span/cons_2_assert_neg.cc: Likewise. + * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise. + * testsuite/23_containers/span/first_assert_neg.cc: Likewise. + * testsuite/23_containers/span/first_neg.cc: Likewise. + * testsuite/23_containers/span/front_assert_neg.cc: Likewise. + * testsuite/23_containers/span/front_neg.cc: Likewise. + * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise. + * testsuite/23_containers/span/index_op_neg.cc: Likewise. + * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise. + * testsuite/23_containers/span/last_assert_neg.cc: Likewise. + * testsuite/23_containers/span/last_neg.cc: Likewise. + * testsuite/23_containers/span/subspan_2_assert_neg.cc: + Likewise. + * testsuite/23_containers/span/subspan_3_assert_neg.cc: + Likewise. + * testsuite/23_containers/span/subspan_4_assert_neg.cc: + Likewise. + * testsuite/23_containers/span/subspan_5_assert_neg.cc: + Likewise. + * testsuite/23_containers/span/subspan_6_assert_neg.cc: + Likewise. + * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise. + * testsuite/23_containers/span/subspan_neg.cc: Likewise. + * testsuite/24_iterators/range_operations/advance_debug_neg.cc: + Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/18_support/headers/limits/synopsis_cxx23.cc: Remove + dg-options. + * testsuite/18_support/headers/stdfloat/types_std.cc: Likewise. + * testsuite/18_support/type_info/constexpr.cc: Likewise. + * testsuite/19_diagnostics/stacktrace/current.cc: Likewise. + * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise. + * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise. + * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise. + * testsuite/19_diagnostics/stacktrace/version.cc: Likewise. + * testsuite/20_util/aligned_storage/deprecated-2b.cc: Likewise. + * testsuite/20_util/aligned_union/deprecated-2b.cc: Likewise. + * testsuite/20_util/bitset/access/constexpr.cc: Likewise. + * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise. + * testsuite/20_util/bitset/count/constexpr.cc: Likewise. + * testsuite/20_util/bitset/ext/constexpr.cc: Likewise. + * testsuite/20_util/bitset/operations/constexpr_c++23.cc: + Likewise. + * testsuite/20_util/bitset/version.cc: Likewise. + * testsuite/20_util/from_chars/8.cc: Likewise. + * testsuite/20_util/from_chars/constexpr.cc: Likewise. + * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise. + * testsuite/20_util/function_objects/invoke/4.cc: Likewise. + * testsuite/20_util/function_objects/invoke/dangling_ref.cc: + Likewise. + * testsuite/20_util/is_scoped_enum/value.cc: Likewise. + * testsuite/20_util/is_scoped_enum/version.cc: Likewise. + * testsuite/20_util/move_only_function/call.cc: Likewise. + * testsuite/20_util/move_only_function/cons.cc: Likewise. + * testsuite/20_util/move_only_function/move.cc: Likewise. + * testsuite/20_util/move_only_function/version.cc: Likewise. + * testsuite/20_util/optional/monadic/and_then.cc: Likewise. + * testsuite/20_util/optional/monadic/or_else.cc: Likewise. + * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise. + * testsuite/20_util/optional/monadic/pr109242.cc: Likewise. + * testsuite/20_util/optional/monadic/transform.cc: Likewise. + * testsuite/20_util/pair/p2321r2.cc: Likewise. + * testsuite/20_util/reference_from_temporary/value.cc: Likewise. + * testsuite/20_util/reference_from_temporary/value2.cc: + Likewise. + * testsuite/20_util/reference_from_temporary/version.cc: + Likewise. + * testsuite/20_util/to_chars/constexpr.cc: Likewise. + * testsuite/20_util/to_chars/float128_c++23.cc: Likewise. + * testsuite/20_util/to_chars/float16_c++23.cc: Likewise. + * testsuite/20_util/to_chars/version.cc: Likewise. + * testsuite/20_util/to_underlying/1.cc: Likewise. + * testsuite/20_util/to_underlying/version.cc: Likewise. + * testsuite/20_util/tuple/p2321r2.cc: Likewise. + * testsuite/20_util/unique_ptr/assign/constexpr.cc: Likewise. + * testsuite/20_util/unique_ptr/comparison/constexpr.cc: + Likewise. + * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: + Likewise. + * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise. + * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: Likewise. + * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: Likewise. + * testsuite/20_util/unreachable/1.cc: Likewise. + * testsuite/20_util/unreachable/version.cc: Likewise. + * testsuite/20_util/uses_allocator/lwg3677.cc: Likewise. + * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: Likewise. + * testsuite/21_strings/basic_string/operations/contains/char.cc: + Likewise. + * testsuite/21_strings/basic_string/operations/contains/nonnull.cc: Likewise. + * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc: Likewise. + * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: Likewise. + * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: Likewise. + * testsuite/21_strings/basic_string_view/operations/contains/char.cc: Likewise. + * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: Likewise. + * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc: Likewise. + * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc: Likewise. + * testsuite/23_containers/queue/cons_from_iters.cc: Likewise. + * testsuite/23_containers/stack/cons_from_iters.cc: Likewise. + * testsuite/23_containers/vector/bool/element_access/1.cc: + Likewise. + * testsuite/24_iterators/const_iterator/1.cc: Likewise. + * testsuite/25_algorithms/contains/1.cc: Likewise. + * testsuite/25_algorithms/contains_subrange/1.cc: Likewise. + * testsuite/25_algorithms/find_last/1.cc: Likewise. + * testsuite/25_algorithms/find_last_if/1.cc: Likewise. + * testsuite/25_algorithms/find_last_if_not/1.cc: Likewise. + * testsuite/25_algorithms/fold_left/1.cc: Likewise. + * testsuite/25_algorithms/fold_right/1.cc: Likewise. + * testsuite/25_algorithms/iota/1.cc: Likewise. + * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise. + * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise. + * testsuite/26_numerics/complex/ext_c++23.cc: Likewise. + * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: Likewise. + * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: + Likewise. + * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: + Likewise. + * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc: + Likewise. + * testsuite/26_numerics/numbers/4.cc: Likewise. + * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: Likewise. + * testsuite/27_io/filesystem/path/native/conv_c++23.cc: + Likewise. + * testsuite/27_io/spanstream/1.cc: Likewise. + * testsuite/27_io/spanstream/2.cc: Likewise. + * testsuite/27_io/spanstream/version.cc: Likewise. + * testsuite/29_atomics/atomic_float/requirements_cxx23.cc: + Likewise. + * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: + Likewise. + * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise. + * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc: + Likewise. + * testsuite/experimental/filesystem/path/native/conv_c++23.cc: + Likewise. + * testsuite/std/ranges/adaptors/adjacent/1.cc: Likewise. + * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: + Likewise. + * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise. + * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise. + * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise. + * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise. + * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise. + * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise. + * testsuite/std/ranges/adaptors/lwg3715.cc: Likewise. + * testsuite/std/ranges/adaptors/slide/1.cc: Likewise. + * testsuite/std/ranges/adaptors/stride/1.cc: Likewise. + * testsuite/std/ranges/cartesian_product/1.cc: Likewise. + * testsuite/std/ranges/range_adaptor_closure.cc: Likewise. + * testsuite/std/ranges/repeat/1.cc: Likewise. + * testsuite/std/ranges/version_c++23.cc: Likewise. + * testsuite/std/ranges/zip/1.cc: Likewise. + * testsuite/std/ranges/zip_transform/1.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/20_util/expected/assign.cc: Remove dg-options. + * testsuite/20_util/expected/bad.cc: Likewise. + * testsuite/20_util/expected/cons.cc: Likewise. + * testsuite/20_util/expected/equality.cc: Likewise. + * testsuite/20_util/expected/illformed_neg.cc: Likewise. + * testsuite/20_util/expected/lwg3877.cc: Likewise. + * testsuite/20_util/expected/lwg3938.cc: Likewise. + * testsuite/20_util/expected/monadic.cc: Likewise. + * testsuite/20_util/expected/observers.cc: Likewise. + * testsuite/20_util/expected/requirements.cc: Likewise. + * testsuite/20_util/expected/swap.cc: Likewise. + * testsuite/20_util/expected/synopsis.cc: Likewise. + * testsuite/20_util/expected/unexpected.cc: Likewise. + * testsuite/20_util/expected/version.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/20_util/duration/arithmetic/overflow_c++20.cc: + Remove dg-options. + * testsuite/20_util/duration/io.cc: Likewise. + * testsuite/std/time/clock/file/io.cc: Likewise. + * testsuite/std/time/clock/file/members.cc: Likewise. + * testsuite/std/time/clock/file/overview.cc: Likewise. + * testsuite/std/time/clock/gps/1.cc: Likewise. + * testsuite/std/time/clock/gps/io.cc: Likewise. + * testsuite/std/time/clock/local/io.cc: Likewise. + * testsuite/std/time/clock/system/io.cc: Likewise. + * testsuite/std/time/clock/tai/1.cc: Likewise. + * testsuite/std/time/clock/tai/io.cc: Likewise. + * testsuite/std/time/clock/utc/1.cc: Likewise. + * testsuite/std/time/clock/utc/io.cc: Likewise. + * testsuite/std/time/clock/utc/leap_second_info.cc: Likewise. + * testsuite/std/time/day/1.cc: Likewise. + * testsuite/std/time/day/io.cc: Likewise. + * testsuite/std/time/exceptions.cc: Likewise. + * testsuite/std/time/format.cc: Likewise. + * testsuite/std/time/hh_mm_ss/1.cc: Likewise. + * testsuite/std/time/hh_mm_ss/109772.cc: Likewise. + * testsuite/std/time/hh_mm_ss/io.cc: Likewise. + * testsuite/std/time/is_am/1.cc: Likewise. + * testsuite/std/time/is_pm/1.cc: Likewise. + * testsuite/std/time/make12/1.cc: Likewise. + * testsuite/std/time/make24/1.cc: Likewise. + * testsuite/std/time/month/1.cc: Likewise. + * testsuite/std/time/month/io.cc: Likewise. + * testsuite/std/time/month_day/1.cc: Likewise. + * testsuite/std/time/month_day/io.cc: Likewise. + * testsuite/std/time/month_day_last/1.cc: Likewise. + * testsuite/std/time/month_day_last/io.cc: Likewise. + * testsuite/std/time/month_weekday/1.cc: Likewise. + * testsuite/std/time/month_weekday/io.cc: Likewise. + * testsuite/std/time/month_weekday_last/1.cc: Likewise. + * testsuite/std/time/month_weekday_last/io.cc: Likewise. + * testsuite/std/time/parse.cc: Likewise. + * testsuite/std/time/syn_c++20.cc: Likewise. + * testsuite/std/time/time_zone/get_info_local.cc: Likewise. + * testsuite/std/time/time_zone/get_info_sys.cc: Likewise. + * testsuite/std/time/time_zone/requirements.cc: Likewise. + * testsuite/std/time/traits/is_clock.cc: Likewise. + * testsuite/std/time/tzdb/1.cc: Likewise. + * testsuite/std/time/tzdb/leap_seconds.cc: Likewise. + * testsuite/std/time/tzdb_list/1.cc: Likewise. + * testsuite/std/time/tzdb_list/requirements.cc: Likewise. + * testsuite/std/time/weekday/1.cc: Likewise. + * testsuite/std/time/weekday/io.cc: Likewise. + * testsuite/std/time/weekday_indexed/io.cc: Likewise. + * testsuite/std/time/weekday_last/1.cc: Likewise. + * testsuite/std/time/weekday_last/io.cc: Likewise. + * testsuite/std/time/year/1.cc: Likewise. + * testsuite/std/time/year/2.cc: Likewise. + * testsuite/std/time/year/io.cc: Likewise. + * testsuite/std/time/weekday_indexed/1.cc: Likewise. + * testsuite/std/time/year_month/1.cc: Likewise. + * testsuite/std/time/year_month/2.cc: Likewise. + * testsuite/std/time/year_month/io.cc: Likewise. + * testsuite/std/time/year_month_day/1.cc: Likewise. + * testsuite/std/time/year_month_day/2.cc: Likewise. + * testsuite/std/time/year_month_day/3.cc: Likewise. + * testsuite/std/time/year_month_day/4.cc: Likewise. + * testsuite/std/time/year_month_day/io.cc: Likewise. + * testsuite/std/time/year_month_day_last/1.cc: Likewise. + * testsuite/std/time/year_month_day_last/2.cc: Likewise. + * testsuite/std/time/year_month_day_last/io.cc: Likewise. + * testsuite/std/time/year_month_weekday/1.cc: Likewise. + * testsuite/std/time/year_month_weekday/2.cc: Likewise. + * testsuite/std/time/year_month_weekday/3.cc: Likewise. + * testsuite/std/time/year_month_weekday/io.cc: Likewise. + * testsuite/std/time/year_month_weekday_last/1.cc: Likewise. + * testsuite/std/time/year_month_weekday_last/2.cc: Likewise. + * testsuite/std/time/year_month_weekday_last/io.cc: Likewise. + * testsuite/std/time/zoned_time/1.cc: Likewise. + * testsuite/std/time/zoned_time/custom.cc: Likewise. + * testsuite/std/time/zoned_time/deduction.cc: Likewise. + * testsuite/std/time/zoned_time/io.cc: Likewise. + * testsuite/std/time/zoned_time/req_neg.cc: Likewise. + * testsuite/std/time/zoned_time/requirements.cc: Likewise. + * testsuite/std/time/zoned_traits.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/std/format/arguments/args.cc: Remove dg-options. + * testsuite/std/format/arguments/lwg3810.cc: Likewise. + * testsuite/std/format/error.cc: Likewise. + * testsuite/std/format/format_string.cc: Likewise. + * testsuite/std/format/formatter/concept.cc: Likewise. + * testsuite/std/format/formatter/ext_float.cc: Likewise. + * testsuite/std/format/formatter/requirements.cc: Likewise. + * testsuite/std/format/functions/107871.cc: Likewise. + * testsuite/std/format/functions/format.cc: Likewise. + * testsuite/std/format/functions/format_to.cc: Likewise. + * testsuite/std/format/functions/format_to_n.cc: Likewise. + * testsuite/std/format/functions/size.cc: Likewise. + * testsuite/std/format/functions/vformat_to.cc: Likewise. + * testsuite/std/format/parse_ctx.cc: Likewise. + * testsuite/std/format/string.cc: Likewise. + * testsuite/std/format/string_neg.cc: Likewise. + * testsuite/std/format/functions/format_c++23.cc: Removed. + +2023-09-15 Jonathan Wakely + + * testsuite/20_util/function_objects/range.cmp/equal_to.cc: + Remove dg-options. + * testsuite/20_util/function_objects/range.cmp/greater.cc: + Likewise. + * testsuite/20_util/function_objects/range.cmp/greater_equal.cc: + Likewise. + * testsuite/20_util/function_objects/range.cmp/less.cc: + Likewise. + * testsuite/20_util/function_objects/range.cmp/less_equal.cc: + Likewise. + * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: + Likewise. + * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/construct_at/1.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/construct_at/95788.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/destroy/constrained.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc: + Likewise. + * testsuite/25_algorithms/adjacent_find/constexpr.cc: Likewise. + * testsuite/25_algorithms/adjacent_find/constrained.cc: + Likewise. + * testsuite/25_algorithms/all_of/constexpr.cc: Likewise. + * testsuite/25_algorithms/all_of/constrained.cc: Likewise. + * testsuite/25_algorithms/any_of/constexpr.cc: Likewise. + * testsuite/25_algorithms/any_of/constrained.cc: Likewise. + * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise. + * testsuite/25_algorithms/binary_search/constrained.cc: + Likewise. + * testsuite/25_algorithms/clamp/constrained.cc: Likewise. + * testsuite/25_algorithms/constexpr_macro.cc: Likewise. + * testsuite/25_algorithms/copy/95578.cc: Likewise. + * testsuite/25_algorithms/copy/constexpr.cc: Likewise. + * testsuite/25_algorithms/copy/constrained.cc: Likewise. + * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise. + * testsuite/25_algorithms/copy_backward/95578.cc: Likewise. + * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise. + * testsuite/25_algorithms/copy_backward/constrained.cc: + Likewise. + * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: + Likewise. + * testsuite/25_algorithms/copy_if/constexpr.cc: Likewise. + * testsuite/25_algorithms/copy_if/constrained.cc: Likewise. + * testsuite/25_algorithms/copy_n/constexpr.cc: Likewise. + * testsuite/25_algorithms/copy_n/constrained.cc: Likewise. + * testsuite/25_algorithms/count/constexpr.cc: Likewise. + * testsuite/25_algorithms/count/constrained.cc: Likewise. + * testsuite/25_algorithms/count_if/constexpr.cc: Likewise. + * testsuite/25_algorithms/count_if/constrained.cc: Likewise. + * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise. + * testsuite/25_algorithms/equal/95578.cc: Likewise. + * testsuite/25_algorithms/equal/constexpr.cc: Likewise. + * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise. + * testsuite/25_algorithms/equal/constrained.cc: Likewise. + * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: + Likewise. + * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise. + * testsuite/25_algorithms/equal_range/constrained.cc: Likewise. + * testsuite/25_algorithms/fill/94017.cc: Likewise. + * testsuite/25_algorithms/fill/constexpr.cc: Likewise. + * testsuite/25_algorithms/fill/constrained.cc: Likewise. + * testsuite/25_algorithms/fill_n/94017.cc: Likewise. + * testsuite/25_algorithms/fill_n/constexpr.cc: Likewise. + * testsuite/25_algorithms/fill_n/constrained.cc: Likewise. + * testsuite/25_algorithms/find/constexpr.cc: Likewise. + * testsuite/25_algorithms/find/constrained.cc: Likewise. + * testsuite/25_algorithms/find_end/constexpr.cc: Likewise. + * testsuite/25_algorithms/find_end/constrained.cc: Likewise. + * testsuite/25_algorithms/find_first_of/constexpr.cc: Likewise. + * testsuite/25_algorithms/find_first_of/constrained.cc: + Likewise. + * testsuite/25_algorithms/find_if/constexpr.cc: Likewise. + * testsuite/25_algorithms/find_if/constrained.cc: Likewise. + * testsuite/25_algorithms/find_if_not/constexpr.cc: Likewise. + * testsuite/25_algorithms/find_if_not/constrained.cc: Likewise. + * testsuite/25_algorithms/for_each/constexpr.cc: Likewise. + * testsuite/25_algorithms/for_each/constrained.cc: Likewise. + * testsuite/25_algorithms/generate/constexpr.cc: Likewise. + * testsuite/25_algorithms/generate/constrained.cc: Likewise. + * testsuite/25_algorithms/generate_n/constexpr.cc: Likewise. + * testsuite/25_algorithms/generate_n/constrained.cc: Likewise. + * testsuite/25_algorithms/heap/constrained.cc: Likewise. + * testsuite/25_algorithms/includes/constrained.cc: Likewise. + * testsuite/25_algorithms/inplace_merge/constrained.cc: + Likewise. + * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise. + * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise. + * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise. + * testsuite/25_algorithms/is_partitioned/constrained.cc: + Likewise. + * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise. + * testsuite/25_algorithms/is_permutation/constrained.cc: + Likewise. + * testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise. + * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise. + * testsuite/25_algorithms/is_sorted_until/constexpr.cc: + Likewise. + * testsuite/25_algorithms/is_sorted_until/constrained.cc: + Likewise. + * testsuite/25_algorithms/iter_swap/constexpr.cc: Likewise. + * testsuite/25_algorithms/lexicographical_compare/93972.cc: + Likewise. + * testsuite/25_algorithms/lexicographical_compare/95578.cc: + Likewise. + * testsuite/25_algorithms/lexicographical_compare/constexpr.cc: + Likewise. + * testsuite/25_algorithms/lexicographical_compare/constrained.cc: + Likewise. + * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc: + Likewise. + * testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc: + Likewise. + * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise. + * testsuite/25_algorithms/lower_bound/constrained.cc: Likewise. + * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: + Likewise. + * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: + Likewise. + * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: + Likewise. + * testsuite/25_algorithms/make_heap/constexpr.cc: Likewise. + * testsuite/25_algorithms/max/constrained.cc: Likewise. + * testsuite/25_algorithms/max_element/constrained.cc: Likewise. + * testsuite/25_algorithms/merge/constexpr.cc: Likewise. + * testsuite/25_algorithms/merge/constrained.cc: Likewise. + * testsuite/25_algorithms/min/constrained.cc: Likewise. + * testsuite/25_algorithms/min_element/constrained.cc: Likewise. + * testsuite/25_algorithms/minmax/constrained.cc: Likewise. + * testsuite/25_algorithms/minmax_element/constrained.cc: + Likewise. + * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise. + * testsuite/25_algorithms/mismatch/constrained.cc: Likewise. + * testsuite/25_algorithms/move/93872.cc: Likewise. + * testsuite/25_algorithms/move/95578.cc: Likewise. + * testsuite/25_algorithms/move/constexpr.cc: Likewise. + * testsuite/25_algorithms/move/constrained.cc: Likewise. + * testsuite/25_algorithms/move_backward/93872.cc: Likewise. + * testsuite/25_algorithms/move_backward/95578.cc: Likewise. + * testsuite/25_algorithms/move_backward/constrained.cc: + Likewise. + * testsuite/25_algorithms/next_permutation/constexpr.cc: + Likewise. + * testsuite/25_algorithms/next_permutation/constrained.cc: + Likewise. + * testsuite/25_algorithms/none_of/constexpr.cc: Likewise. + * testsuite/25_algorithms/none_of/constrained.cc: Likewise. + * testsuite/25_algorithms/nth_element/constexpr.cc: Likewise. + * testsuite/25_algorithms/nth_element/constrained.cc: Likewise. + * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise. + * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise. + * testsuite/25_algorithms/partial_sort_copy/constexpr.cc: + Likewise. + * testsuite/25_algorithms/partial_sort_copy/constrained.cc: + Likewise. + * testsuite/25_algorithms/partition/constexpr.cc: Likewise. + * testsuite/25_algorithms/partition/constrained.cc: Likewise. + * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise. + * testsuite/25_algorithms/partition_copy/constrained.cc: + Likewise. + * testsuite/25_algorithms/partition_point/constexpr.cc: + Likewise. + * testsuite/25_algorithms/partition_point/constrained.cc: + Likewise. + * testsuite/25_algorithms/pop_heap/constexpr.cc: Likewise. + * testsuite/25_algorithms/prev_permutation/constexpr.cc: + Likewise. + * testsuite/25_algorithms/prev_permutation/constrained.cc: + Likewise. + * testsuite/25_algorithms/push_heap/constexpr.cc: Likewise. + * testsuite/25_algorithms/remove/constexpr.cc: Likewise. + * testsuite/25_algorithms/remove/constrained.cc: Likewise. + * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise. + * testsuite/25_algorithms/remove_copy/constrained.cc: Likewise. + * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise. + * testsuite/25_algorithms/remove_copy_if/constrained.cc: + Likewise. + * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise. + * testsuite/25_algorithms/remove_if/constrained.cc: Likewise. + * testsuite/25_algorithms/replace/constrained.cc: Likewise. + * testsuite/25_algorithms/replace_copy/constexpr.cc: Likewise. + * testsuite/25_algorithms/replace_copy/constrained.cc: Likewise. + * testsuite/25_algorithms/replace_copy_if/constexpr.cc: + Likewise. + * testsuite/25_algorithms/replace_copy_if/constrained.cc: + Likewise. + * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise. + * testsuite/25_algorithms/replace_if/constrained.cc: Likewise. + * testsuite/25_algorithms/reverse/constexpr.cc: Likewise. + * testsuite/25_algorithms/reverse/constrained.cc: Likewise. + * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise. + * testsuite/25_algorithms/reverse_copy/constrained.cc: Likewise. + * testsuite/25_algorithms/rotate/constexpr.cc: Likewise. + * testsuite/25_algorithms/rotate/constrained.cc: Likewise. + * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise. + * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise. + * testsuite/25_algorithms/sample/constrained.cc: Likewise. + * testsuite/25_algorithms/search/constexpr.cc: Likewise. + * testsuite/25_algorithms/search/constrained.cc: Likewise. + * testsuite/25_algorithms/search_n/97828.cc: Likewise. + * testsuite/25_algorithms/search_n/constexpr.cc: Likewise. + * testsuite/25_algorithms/search_n/constrained.cc: Likewise. + * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise. + * testsuite/25_algorithms/set_difference/constrained.cc: + Likewise. + * testsuite/25_algorithms/set_intersection/constexpr.cc: + Likewise. + * testsuite/25_algorithms/set_intersection/constrained.cc: + Likewise. + * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc: + Likewise. + * testsuite/25_algorithms/set_symmetric_difference/constrained.cc: + Likewise. + * testsuite/25_algorithms/set_union/constexpr.cc: Likewise. + * testsuite/25_algorithms/set_union/constrained.cc: Likewise. + * testsuite/25_algorithms/shift_left/1.cc: Likewise. + * testsuite/25_algorithms/shift_right/1.cc: Likewise. + * testsuite/25_algorithms/shuffle/constrained.cc: Likewise. + * testsuite/25_algorithms/sort/constexpr.cc: Likewise. + * testsuite/25_algorithms/sort/constrained.cc: Likewise. + * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise. + * testsuite/25_algorithms/stable_partition/constrained.cc: + Likewise. + * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise. + * testsuite/25_algorithms/swap/constexpr.cc: Likewise. + * testsuite/25_algorithms/swap_ranges/constexpr.cc: Likewise. + * testsuite/25_algorithms/swap_ranges/constrained.cc: Likewise. + * testsuite/25_algorithms/transform/constexpr.cc: Likewise. + * testsuite/25_algorithms/transform/constrained.cc: Likewise. + * testsuite/25_algorithms/unique/constexpr.cc: Likewise. + * testsuite/25_algorithms/unique/constrained.cc: Likewise. + * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise. + * testsuite/25_algorithms/unique_copy/constrained.cc: Likewise. + * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise. + * testsuite/25_algorithms/upper_bound/constrained.cc: Likewise. + * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: + Likewise. + * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: + Likewise. + * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: + Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/std/concepts/1.cc: Remove dg-options. + * testsuite/std/concepts/2.cc: Likewise. + * testsuite/std/concepts/concepts.callable/invocable.cc: + Likewise. + * testsuite/std/concepts/concepts.callable/regular_invocable.cc: + Likewise. + * testsuite/std/concepts/concepts.callable/relation.cc: + Likewise. + * testsuite/std/concepts/concepts.callable/strictweakorder.cc: + Likewise. + * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc: + Likewise. + * testsuite/std/concepts/concepts.lang/concept.common/1.cc: + Likewise. + * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc: + Likewise. + * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc: + Likewise. + * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.derived/1.cc: + Likewise. + * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.same/1.cc: + Likewise. + * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: Likewise. + * testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc: Likewise. + * testsuite/std/concepts/concepts.object/copyable.cc: Likewise. + * testsuite/std/concepts/concepts.object/movable.cc: Likewise. + * testsuite/std/concepts/concepts.object/regular.cc: Likewise. + * testsuite/std/concepts/concepts.object/semiregular.cc: + Likewise. + * testsuite/std/ranges/97600.cc: Likewise. + * testsuite/std/ranges/access/101782.cc: Likewise. + * testsuite/std/ranges/access/begin.cc: Likewise. + * testsuite/std/ranges/access/begin_neg.cc: Likewise. + * testsuite/std/ranges/access/cbegin.cc: Likewise. + * testsuite/std/ranges/access/cdata.cc: Likewise. + * testsuite/std/ranges/access/cend.cc: Likewise. + * testsuite/std/ranges/access/crbegin.cc: Likewise. + * testsuite/std/ranges/access/crend.cc: Likewise. + * testsuite/std/ranges/access/data.cc: Likewise. + * testsuite/std/ranges/access/empty.cc: Likewise. + * testsuite/std/ranges/access/end.cc: Likewise. + * testsuite/std/ranges/access/end_neg.cc: Likewise. + * testsuite/std/ranges/access/lwg3467.cc: Likewise. + * testsuite/std/ranges/access/p2602.cc: Likewise. + * testsuite/std/ranges/access/rbegin.cc: Likewise. + * testsuite/std/ranges/access/rend.cc: Likewise. + * testsuite/std/ranges/access/size.cc: Likewise. + * testsuite/std/ranges/access/size_neg.cc: Likewise. + * testsuite/std/ranges/access/ssize.cc: Likewise. + * testsuite/std/ranges/adaptors/100479.cc: Likewise. + * testsuite/std/ranges/adaptors/100577.cc: Likewise. + * testsuite/std/ranges/adaptors/93978.cc: Likewise. + * testsuite/std/ranges/adaptors/95322.cc: Likewise. + * testsuite/std/ranges/adaptors/99433.cc: Likewise. + * testsuite/std/ranges/adaptors/all.cc: Likewise. + * testsuite/std/ranges/adaptors/common.cc: Likewise. + * testsuite/std/ranges/adaptors/conditionally_borrowed.cc: + Likewise. + * testsuite/std/ranges/adaptors/counted.cc: Likewise. + * testsuite/std/ranges/adaptors/detail/copyable_box.cc: + Likewise. + * testsuite/std/ranges/adaptors/drop.cc: Likewise. + * testsuite/std/ranges/adaptors/drop_while.cc: Likewise. + * testsuite/std/ranges/adaptors/elements.cc: Likewise. + * testsuite/std/ranges/adaptors/filter.cc: Likewise. + * testsuite/std/ranges/adaptors/join.cc: Likewise. + * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise. + * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise. + * testsuite/std/ranges/adaptors/lwg3286.cc: Likewise. + * testsuite/std/ranges/adaptors/lwg3313_neg.cc: Likewise. + * testsuite/std/ranges/adaptors/lwg3325_neg.cc: Likewise. + * testsuite/std/ranges/adaptors/lwg3406.cc: Likewise. + * testsuite/std/ranges/adaptors/p1739.cc: Likewise. + * testsuite/std/ranges/adaptors/p2281.cc: Likewise. + * testsuite/std/ranges/adaptors/p2770r0.cc: Likewise. + * testsuite/std/ranges/adaptors/reverse.cc: Likewise. + * testsuite/std/ranges/adaptors/sizeof.cc: Likewise. + * testsuite/std/ranges/adaptors/split.cc: Likewise. + * testsuite/std/ranges/adaptors/take.cc: Likewise. + * testsuite/std/ranges/adaptors/take_while.cc: Likewise. + * testsuite/std/ranges/adaptors/transform.cc: Likewise. + * testsuite/std/ranges/empty_view.cc: Likewise. + * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise. + * testsuite/std/ranges/iota/difference_type.cc: Likewise. + * testsuite/std/ranges/iota/iota_view.cc: Likewise. + * testsuite/std/ranges/iota/iterator.cc: Likewise. + * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise. + * testsuite/std/ranges/iota/max_size_type.cc: Likewise. + * testsuite/std/ranges/istream_view.cc: Likewise. + * testsuite/std/ranges/p2259.cc: Likewise. + * testsuite/std/ranges/p2325.cc: Likewise. + * testsuite/std/ranges/p2367.cc: Likewise. + * testsuite/std/ranges/range.cc: Likewise. + * testsuite/std/ranges/refinements.cc: Likewise. + * testsuite/std/ranges/safe_range.cc: Likewise. + * testsuite/std/ranges/safe_range_types.cc: Likewise. + * testsuite/std/ranges/single_view.cc: Likewise. + * testsuite/std/ranges/sized.cc: Likewise. + * testsuite/std/ranges/subrange/1.cc: Likewise. + * testsuite/std/ranges/subrange/97512.cc: Likewise. + * testsuite/std/ranges/subrange/constexpr.cc: Likewise. + * testsuite/std/ranges/subrange/lwg3282_neg.cc: Likewise. + * testsuite/std/ranges/subrange/lwg3286.cc: Likewise. + * testsuite/std/ranges/subrange/lwg3433.cc: Likewise. + * testsuite/std/ranges/subrange/sizeof.cc: Likewise. + * testsuite/std/ranges/subrange/tuple_like.cc: Likewise. + * testsuite/std/ranges/view.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc: + Remove dg-options. + * testsuite/23_containers/span/contiguous_range_neg.cc: + Likewise. + * testsuite/23_containers/span/everything.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/24_iterators/reverse_iterator/100639.cc: Remove + dg-options and add dg-add-options strict_std. + * testsuite/std/ranges/iota/93267.cc: Likewise. + * testsuite/std/ranges/iota/96042.cc: Likewise. + * testsuite/std/ranges/iota/size.cc: Likewise. + * testsuite/std/ranges/subrange/96042.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc: + Replace dg-options -std=c++17 with dg-add-options strict_std. + * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc: + Likewise. + +2023-09-15 Jonathan Wakely + + * testsuite/23_containers/deque/48101-2_neg.cc: Replace + dg-options with target selector. + * testsuite/23_containers/forward_list/48101-2_neg.cc: Likewise. + * testsuite/23_containers/list/48101-2_neg.cc: Likewise. + * testsuite/23_containers/map/48101-2_neg.cc: Likewise. + * testsuite/23_containers/map/48101_neg.cc: Likewise. + * testsuite/23_containers/multimap/48101-2_neg.cc: Likewise. + * testsuite/23_containers/multimap/48101_neg.cc: Likewise. + * testsuite/23_containers/multiset/48101-2_neg.cc: Likewise. + * testsuite/23_containers/set/48101-2_neg.cc: Likewise. + * testsuite/23_containers/unordered_map/48101-2_neg.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/48101-2_neg.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/48101-2_neg.cc: + Likewise. + * testsuite/23_containers/unordered_set/48101-2_neg.cc: + Likewise. + * testsuite/23_containers/vector/48101-2_neg.cc: Likewise. + +2023-09-15 Jonathan Wakely + + * doc/xml/manual/test.xml: Update documentation on running and + writing tests. + * doc/html/manual/test.html: Regenerate. + * testsuite/Makefile.am: Add v3-use-std-list to site.tmp + * testsuite/Makefile.in: Regenerate. + * testsuite/lib/dg-options.exp (add_options_for_strict_std): New + proc. + * testsuite/lib/libstdc++.exp (search_for): New utility proc. + (v3-dg-runtest): New proc to replace dg-runtest. + * testsuite/libstdc++-dg/conformance.exp: Use v3-dg-runtest. + +2023-09-15 Jonathan Wakely + + * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc: + Fix test to work for C++23 and C++26 too. + +2023-09-15 Patrick Palka + + * include/std/bit: Include . + (byteswap): Use a type-constraint instead of enable_if_t + inside the return type, and use std::integral. + (_If_is_unsigned_integer): Replace with ... + (__unsigned_integer): ... this. + (rotl): Use a type-constraint instead of enable_if_t inside + the return type. + (countl_zero): Likewise. + (countl_one): Likewise. + (countr_zero): Likewise. + (countr_one): Likewise. + (popcount): Likewise. + (has_single_bit): Likewise. + (bit_ceil): Likewise. + (bit_floor): Likewise. + (bit_width): Likewise. + +2023-09-15 Jonathan Wakely + + * include/std/variant (variant): Remove derivation from + _Enable_default_constructor base class. + (variant::variant()): Constrain. + * testsuite/20_util/variant/default_ctor.cc: New test. + +2023-09-15 Jonathan Wakely + + PR libstdc++/111172 + * include/std/variant (get): Remove !is_void static + assertions. + +2023-09-15 Jonathan Wakely + + * include/bits/version.def (to_chars): Define new value for + C++26. + * include/bits/version.h: Regenerate. + * include/std/charconv (to_chars_result::operator bool): New + function. + (from_chars_result::operator bool): New function. + * testsuite/20_util/to_chars/version.cc: Update expected value. + * testsuite/20_util/from_chars/result.cc: New test. + * testsuite/20_util/to_chars/result.cc: New test. + +2023-09-14 Jonathan Wakely + + PR c++/111357 + * testsuite/20_util/integer_sequence/pr111357.cc: New test. + +2023-09-14 Jonathan Wakely + + * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Use + dg-additional-files. Remove @require@ and @diff@ comments. + * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise. + * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Likewise. + * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Likewise. + * testsuite/lib/dg-options.exp (v3_additional_files): New + global variable. + (dg-additional-files): New proc. + * testsuite/lib/libstdc++.exp (v3_target_compile): Copy + additional files to test directory. + +2023-09-14 Jonathan Wakely + + * include/experimental/io_context (io_context) [!_GLIBCXX_HAS_GTHREADS]: + Use a plain integer for _M_work_count for single-threaded + targets. + * include/experimental/memory_resource (__get_default_resource) + [!_GLIBCXX_HAS_GTHREADS]: Use unsynchronized type for + single-threaded targets. + * src/c++17/default_resource.h: Adjust preprocessor conditions + to match memory_resource.cc. + * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS] + (atomic_mem_res): Use unsynchronized type for single-threaded + targets. + +2023-09-14 Christophe Lyon + + * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise. + * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise. + * testsuite/29_atomics/atomic_float/value_init.cc: Likewise. + * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise. + * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise. + * testsuite/29_atomics/atomic_ref/generic.cc: Likewise. + * testsuite/29_atomics/atomic_ref/integral.cc: Likewise. + * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise. + +2023-09-14 François Dumont + + * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add + { dg-require-normal-namespace "" }. + +2023-09-13 François Dumont + + * include/std/format (std::__format::_Arg_store): Explicit version + namespace on make_format_args friend declaration. + +2023-09-12 Patrick Palka + + PR libstdc++/111327 + * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Also define + a deleted fallback operator() overload. Constrain both the + enabled and deleted overloads accordingly. + * testsuite/20_util/function_objects/not_fn/111327.cc: New test. + +2023-09-12 Patrick Palka + + PR libstdc++/111327 + * include/std/functional (_Bind_front::operator()): Add deleted + fallback overloads for each const/ref qualifier pair. Give the + enabled overloads dummy constraints to make each one more + specialized than the corresponding deleted overload. + * testsuite/20_util/function_objects/bind_front/111327.cc: New test. + +2023-09-12 Patrick Palka + + * include/std/functional (_Bind_front0): Remove. + (_Bind_front_t): Adjust. + +2023-09-12 Jonathan Wakely + + * python/libstdcxx/v6/printers.py: Reformat. + * python/libstdcxx/v6/xmethods.py: Likewise. + +2023-09-11 Jonathan Wakely + + * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New + function. + (reset_sequence_ptr): New function. + (_Safe_iterator_base::_M_detach) + (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load + with acquire_sequence_ptr_for_lock. + (_Safe_iterator_base::_M_reset): Replace bare atomic_store with + reset_sequence_ptr. + +2023-09-11 Jonathan Wakely + + * src/c++11/Makefile.am: Add new file. + * src/c++11/Makefile.in: Regenerate. + * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ... + * src/c++11/assert_fail.cc: New file. + +2023-09-11 Ken Matsui + + * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Do not undef. + (_GLIBCXX_USE_BUILTIN_TRAIT): Define. + +2023-09-11 Jonathan Wakely + + * include/bits/version.def (__cpp_lib_formatters): Define. + * include/bits/version.h: Regenerate. + * include/std/stacktrace (formatter) + (formatter>): Define. + * include/std/thread (formatter): Define. + * testsuite/19_diagnostics/stacktrace/output.cc: New test. + * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add + std::formatter specializations. + * testsuite/19_diagnostics/stacktrace/version.cc: Check + __cpp_lib_formatters macro. + * testsuite/30_threads/thread/id/hash.cc: Remove gthreads + dependency. + * testsuite/30_threads/thread/id/operators.cc: Likewise. + * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise. + * testsuite/30_threads/thread/id/output.cc: New test. + +2023-09-11 Pekka Seppänen + + * src/c++11/cow-locale_init.cc: Add [[maybe_unused]] attribute. + * src/c++17/fs_path.cc (path::_S_convert_loc): Likewise. + * src/filesystem/path.cc (path::_S_convert_loc): Likewise. + +2023-09-08 Jonathan Wakely + + * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++23 directory. + * configure: Regenerate. + * doc/html/manual/*: Regenerate. + * doc/xml/manual/using.xml: Update documentation on linking. + * include/std/stacktrace: Remove declarations of libbacktrace + APIs. + (stacktrace_entry::_S_err_handler, stacktrace_entry::_S_init): + Remove. + (stacktrace_entry::_Info): New class. + (stacktrace_entry::_M_get_info): Use _Info. + (__stacktrace_impl): New class. + (basic_stacktrace): Derive from __stacktrace_impl. + (basic_stacktrace::current): Use __stacktrace_impl::_S_current. + * scripts/testsuite_flags.in: Adjust LDFLAGS to find + libstdc++exp instead of libstdc++_libbacktrace. + * src/Makefile.am (SUBDIRS): Add c++23 directory. + * src/Makefile.in: Regenerate. + * src/c++20/Makefile.am: Fix comment. + * src/c++20/Makefile.in: Regenerate. + * src/c++23/Makefile.am: New file. + * src/c++23/Makefile.in: New file. + * src/c++23/stacktrace.cc: New file with definitions of + stacktrace_entry::_Info and __stacktrace_impl members. + * src/experimental/Makefile.am: Use LIBADD to include other + libraries. + * src/experimental/Makefile.in: Regenerate. + * src/libbacktrace/Makefile.am: Use noinst_LTLIBRARIES. + * src/libbacktrace/Makefile.in: Regenerate. + * testsuite/19_diagnostics/stacktrace/current.cc: Adjust + dg-options to use -lstdc++exp. + * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise. + * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise. + * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: + Likewise. + +2023-09-08 Alexey Lapshin + + * src/libbacktrace/Makefile.am: Remove -Werror. + * src/libbacktrace/Makefile.in: Regenerate. + +2023-09-08 Jonathan Wakely + + * testsuite/Makefile.am (check-DEJAGNU): Use @ in recipe. + * testsuite/Makefile.in: Regenerate. + +2023-09-08 Yang Yujie + + * configure.host: Register t-loongarch in tmake_file. + * config/cpu/loongarch/t-loongarch: New file. Manually refresh + MULTISUBDIR with $(shell $(CXX) --print-multi-directory). + +2023-09-07 Bruno Victal + + * acinclude.m4: Update docbook xsl URI. + * configure: Regenerate. + +2023-09-07 Bruno Victal + + * doc/Makefile.am: Fix 'doc-install-info' rule. + Fix typo in commment. + * doc/Makefile.in: Regenerate. + +2023-09-07 Jonathan Wakely + + * testsuite/27_io/filesystem/path/concat/94063.cc: Simplify + dg-do target selector. + +2023-09-07 Jonathan Wakely + + * testsuite/config/default.exp: Remove trailing whitespace. + * testsuite/lib/dg-options.exp: Likewise. + * testsuite/lib/prune.exp: Likewise. + * testsuite/libstdc++-abi/abi.exp: Likewise. + * testsuite/libstdc++-dg/conformance.exp: Likewise. + * testsuite/libstdc++-prettyprinters/prettyprinters.exp: + Likewise. + * testsuite/libstdc++-xmethods/xmethods.exp: Likewise. + * testsuite/lib/libstdc++.exp: Likewise. + (check_v3_target_c_std): Fix filename for temporary source file. + +2023-09-07 Jonathan Wakely + + * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir, + chmod, chdir, and getcwd. + * config.h.in: Regenerate. + * configure: Regenerate. + * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro. + (fs::current_path): Use USE_GETCWD and USE_CHDIR macros. + (fs::permissions): Use USE_CHMOD macro. + * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS] + (chmod, mkdir, getcwd, chdir): Define new macros. + [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use + new macros. + * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro. + (fs::current_path): Use USE_GETCWD and USE_CHDIR macros. + (fs::permissions): Use USE_CHMOD macro. + +2023-09-07 Jonathan Wakely + + * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default + for avr. + * configure: Regenerate. + +2023-09-07 Jonathan Wakely + + * testsuite/23_containers/unordered_map/operations/1.cc: Add + dg-options for C++20 mode. + * testsuite/23_containers/unordered_multimap/operations/1.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/operations/1.cc: + Likewise. + * testsuite/23_containers/unordered_set/operations/1.cc: + Likewise. + * testsuite/std/time/parse.cc: Move dg-options before dg-do. + +2023-09-07 Jonathan Wakely + + * testsuite/std/ranges/access/cbegin.cc: Adjust for C++23 + compatibility. + * testsuite/std/ranges/access/cdata.cc: Likewise. + * 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/take.cc: Likewise. + * testsuite/std/ranges/adaptors/take_while.cc: Likewise. + * testsuite/std/ranges/adaptors/transform.cc: Likewise. + +2023-09-07 Jonathan Wakely + + * include/bits/iterator_concepts.h (__imove::iter_move): Define + poison pill as deleted for consistency. + (__access::begin): Replace with a single declaration. + * include/bits/ranges_base.h (__access::end, __access::rbegin) + (__access::rend, __access::size): Likewise. + * include/bits/version.def (ranges): Update value for C++23. + * include/bits/version.h: Regenerate. + * libsupc++/compare (__compare): Add missing poison pill + overloads. + * testsuite/std/ranges/version_c++23.cc: Adjust expected value + of __cpp_lib_ranges. + * testsuite/std/ranges/access/p2602.cc: New test. + +2023-09-07 Jonathan Wakely + + * include/bits/iterator_concepts.h (ranges::__cust_imove): + Rename to ranges::__imove. + (_IMove): Rename to _IterMove. + (ranges::__cust_iswap): Rename to ranges::__iswap. + (ranges::__cust): Rename to ranges::_Cpo. + (ranges::__cust_access): Rename to ranges::__access. + * include/bits/ranges_base.h (ranges::__cust_access): Rename to + ranges::__access. + (ranges::__cust): Rename to ranges::_Cpo. + * include/std/concepts (ranges::__cust_swap): Rename to + ranges::__swap. + (ranges::__cust): Rename to ranges::_Cpo. + * libsupc++/compare (__cmp_cust): Rename to __compare. + (__cmp_algo): Rename to _Cpo. + +2023-09-07 Jonathan Wakely + + * include/bits/version.def (ranges): Update value. + * include/bits/version.h: Regenerate. + * include/std/ranges (__detail::__boxable): Use + move_constructible instead of copy_constructible for C++23. + (__detail::__box): Adjust constraints for partial + specialization. + (single_view, transform_view): Use __box_constructible instead + of copy_constructible in constraints. + (zip_transform_view, adjacent_transform_view, repeat_view): Use + move_constructible instead of copy_constructible in constraints. + * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Check + construction from move-only argument. + * testsuite/std/ranges/adaptors/transform.cc: Likewise. + * testsuite/std/ranges/repeat/1.cc: Likewise. + * testsuite/std/ranges/single_view.cc: Likewise. + * testsuite/std/ranges/zip_transform/1.cc: Likewise. + * testsuite/std/ranges/version_c++23.cc: Adjust expected value + of __cpp_lib_ranges. + +2023-09-07 Jonathan Wakely + + * testsuite/util/testsuite_iterators.h (is_customization_point_object): + Remove parameter name. + +2023-09-06 Jonathan Wakely + + * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default + for freestanding. + * configure: Regenerate. + +2023-09-04 Christophe Lyon + + Revert + 2023-09-04 Christophe Lyon + + PR libstdc++/111238 + * configure: Regenerate. + * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross, + non-Canadian builds. + +2023-09-04 Christophe Lyon + + PR libstdc++/111238 + * configure: Regenerate. + * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross, + non-Canadian builds. + +2023-09-04 Jonathan Wakely + + * testsuite/26_numerics/complex/literals/types.cc: Remove + dg-options and add target selector instead. + +2023-09-04 Jonathan Wakely + + * testsuite/tr1/6_containers/utility/pair.cc: Remove dg-options + and qualify ambiguous calls to get. + * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Adjust + expected result for std::pow(float, int) as per DR 550. + +2023-09-04 Jonathan Wakely + + * testsuite/20_util/auto_ptr/1.cc: Remove dg-options -std=c++03 + and add dg-warning for deprecation warnings. + * testsuite/20_util/auto_ptr/2.cc: Likewise. + * testsuite/20_util/auto_ptr/3.cc: Likewise. + * testsuite/20_util/auto_ptr/3946.cc: Likewise. + * testsuite/20_util/auto_ptr/4.cc: Likewise. + * testsuite/20_util/auto_ptr/5.cc: Likewise. + * testsuite/20_util/auto_ptr/6.cc: Likewise. + * testsuite/20_util/auto_ptr/7.cc: Likewise. + * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise. + * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc: + Likewise. + * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc: + Likewise. + * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc: + Likewise. + * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc: + Likewise. + * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: + Likewise. + * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc: + Likewise. + * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc: + Likewise. + +2023-09-04 Jonathan Wakely + + PR libstdc++/26142 + * testsuite/23_containers/vector/26412-1.cc: Moved to... + * testsuite/23_containers/vector/26142-1.cc: ...here. + * testsuite/23_containers/vector/26412-2.cc: Moved to... + * testsuite/23_containers/vector/26142-2.cc: ...here. + +2023-09-04 Jonathan Wakely + + * testsuite/20_util/bitset/107037.cc: Add c++98_only selector. + * testsuite/26_numerics/complex/56111.cc: Likewise. + +2023-09-04 Jonathan Wakely + + * testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc: + Add dg-options to restrict the test to C++98 mode. + * testsuite/23_containers/list/requirements/explicit_instantiation/2.cc: + Likewise. + +2023-09-04 Jonathan Wakely + + * testsuite/20_util/expected/bad.cc: Add missing target + selector. + +2023-09-01 Jonathan Wakely + + * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust + expected errors. + * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: + Likewise. + +2023-09-01 Jonathan Wakely + + * testsuite/27_io/filesystem/iterators/91067.cc: Add + -Wno-self-move to options. + * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise. + +2023-09-01 Vladimir Palevich + + PR libstdc++/110879 + * include/bits/vector.tcc (_M_realloc_insert): End guard + lifetime just before assignment to class members. + (_M_default_append): Likewise. + +2023-09-01 Jonathan Wakely + + * src/c++17/fs_ops.cc (fs::absolute) [FILESYSTEM_IS_WINDOWS]: + Use __resize_and_overwrite to fill buffer. + (fs::read_symlink) [HAVE_READLINK]: Likewise. + * src/filesystem/ops-common.h (get_temp_directory_from_env) + [FILESYSTEM_IS_WINDOWS]: Likewise. + +2023-09-01 Jonathan Wakely + + PR libstdc++/111077 + * include/bits/atomic_base.h (__atomic_impl::__compare_exchange): + Add _AtomicRef non-type template parameter and use a loop if it + is true. + (__atomic_impl::compare_exchange_weak): Add _AtomicRef NTTP. + (__atomic_impl::compare_exchange_strong): Likewise. + (atomic_ref::compare_exchange_weak): Use true for NTTP. + (atomic_ref::compare_exchange_strong): Use true for NTTP. + * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: + Fix test to not rely on atomic_ref::load() to return an object + with padding preserved. + +2023-09-01 Jonathan Wakely + + * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for + filesystem support. + +2023-09-01 Jonathan Wakely + + * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros + for POSIX readlink before using filesystem::read_symlink. + +2023-09-01 Jonathan Wakely + + * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Default to yes. + * configure: Regenerate. + +2023-09-01 Jonathan Wakely + + * include/bits/chrono_io.h (_Parser::operator()): Set failbit + early if invalid values are read when _M_need & _TimeOfDay is + non-zero. + * testsuite/std/time/parse.cc: Check that "25:59" cannot be + parsed for "%H:%M". + +2023-09-01 Jonathan Wakely + + PR libstdc++/111162 + * include/bits/chrono_io.h (_Parser::Operator()): Check %C + values are in range of year::min() to year::max(). + * testsuite/std/time/parse.cc: Check out of range centuries. + +2023-09-01 Jonathan Wakely + + * include/std/format (__format::_Sink::_M_reset): Change second + argument from iterator to offset. + +2023-08-24 Paul Dreik + + PR libstdc++/111102 + * testsuite/std/format/string.cc: Check wide character format + strings with out-of-range widths. + +2023-08-24 Paul Dreik + + PR libstdc++/111102 + * include/std/format (__format::__parse_integer): Check for + non-null pointer. + +2023-08-24 Jonathan Wakely + + * testsuite/std/format/functions/format_to.cc: Avoid warning for + unused variables. + +2023-08-24 Jonathan Wakely + + * include/std/atomic: Add comment to #ifdef and fix indentation. + * include/std/ostream: Check __glibcxx_syncbuf instead of + __cplusplus and _GLIBCXX_HOSTED. + * include/std/thread: Add comment to #ifdef. + +2023-08-24 Jonathan Wakely + + * include/bits/version.def (__cpp_lib_ratio): Define. + * include/bits/version.h: Regenerate. + * include/std/ratio (quecto, ronto, yocto, zepto) + (zetta, yotta, ronna, quetta): Define. + * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Adjust + dg-error line numbers. + +2023-08-24 Jonathan Wakely + + * python/libstdcxx/v6/printers.py (StdLocalePrinter): New + printer class. + * testsuite/libstdc++-prettyprinters/locale.cc: New test. + +2023-08-24 Jonathan Wakely + + PR libstdc++/110944 + * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Do + not show template arguments. + (StdVariantPrinter): Likewise. + * testsuite/libstdc++-prettyprinters/compat.cc: Adjust expected + output. + * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise. + * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. + +2023-08-23 François Dumont + + * testsuite/util/replacement_memory_operators.h + (counter::scope): New, capture and reset counter count at construction and + restore it at destruction. + (counter::check_new): Add scope instantiation. + * testsuite/23_containers/unordered_map/96088.cc (main): + Add counter::scope instantiation. + * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise. + * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise. + * testsuite/23_containers/unordered_set/96088.cc (main): Likewise. + * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise. + * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise. + * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise. + * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global. + (operator new(size_t)): Check started. + (main): Set/Unset started. + * testsuite/17_intro/no_library_allocation.cc: New test case. + +2023-08-21 Jonathan Wakely + + * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc: + Call std::set_terminate before throwing the nested exception. + +2023-08-18 Jonathan Wakely + + PR target/111060 + * include/std/format (formatter): Only define specializations + for 16-bit floating-point types for C++23. + * include/std/limits (numeric_limits): Likewise. + +2023-08-18 Jonathan Wakely + + * include/bits/chrono_io.h (operator<<): Make uses of wide + strings with streams and std::format type-dependent on _CharT. + * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use + __to_wstring_numeric. + +2023-08-18 Jonathan Wakely + + * include/bits/chrono_io.h (operator<<): Use __format_context. + * include/std/format (__format::__format_context): New alias + template. + [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg): + Disable. + +2023-08-17 Jonathan Wakely + + Revert: + 2023-08-17 Jonathan Wakely + + * config/locale/generic/c_locale.cc (__convert_to_v): Reuse + double overload for long double if possible. + +2023-08-17 Jonathan Wakely + + * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to + std::string_view. + +2023-08-17 Jonathan Wakely + + * config/locale/generic/c_locale.cc (__convert_to_v): Reuse + double overload for long double if possible. + +2023-08-17 Jonathan Wakely + + * src/c++98/localename.cc (is_C_locale): New function. + (locale::locale(const char*)): Use is_C_locale. + +2023-08-17 Jonathan Wakely + + PR libstdc++/110945 + * include/bits/basic_string.h (basic_string::assign(Iter, Iter)): + Dispatch to _M_replace or move assignment from a temporary, + based on the iterator type. + +2023-08-17 Jonathan Wakely + + * include/std/format (formatter): Add partial specializations + for extended floating-point types. + * testsuite/std/format/functions/format.cc: Move test_float128() + to ... + * testsuite/std/format/formatter/ext_float.cc: New test. + +2023-08-17 Jonathan Wakely + + * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define + whenever __BFLT16_DIG__ is defined, not only for C++23. + * include/std/limits (numeric_limits): Likewise. + (numeric_limits<_Float16>, numeric_limits<_Float32>) + (numeric_limits<_Float64>): Likewise for other extended + floating-point types. + +2023-08-17 Jonathan Wakely + + * include/experimental/internet (address_v4::to_string): Remove + unused parameter name. + +2023-08-17 Jonathan Wakely + + * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval. + * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune + excess errors caused by invalid consteval calls. + +2023-08-17 Jonathan Wakely + + * include/bits/chrono_io.h (__units_suffix_misc): Remove. + (__units_suffix): Return a known suffix as string view, do not + write unknown suffixes to a buffer. + (__fmt_units_suffix): New function that formats the suffix using + std::format_to. + (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix. + (__chrono_formatter::_M_Z): Correct lifetime of wstring. + +2023-08-17 Jonathan Wakely + + * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide + string formatters with this macro. + (__formatter_int::_M_format_int, __formatter_fp::format) + (formatter::format): Use __to_wstring_numeric + instead of std::ctype::widen. + (__formatter_fp::_M_localize): Use hardcoded wchar_t values + instead of std::ctype::widen. + * testsuite/std/format/functions/format.cc: Add more checks for + wstring formatting of arithmetic types. + +2023-08-17 Jonathan Wakely + + * include/bits/basic_string.h (to_string(floating-point-type)): + Implement using std::to_chars for C++26. + * include/bits/version.def (__cpp_lib_to_string): Define. + * include/bits/version.h: Regenerate. + * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc: + Adjust expected result in C++26 mode. + * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc: + Likewise. + * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc: + Likewise. + * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc: + Likewise. + * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc: + New test. + * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc: + New test. + * testsuite/21_strings/basic_string/numeric_conversions/version.cc: + New test. + +2023-08-17 Jonathan Wakely + + * include/bits/basic_string.h (to_string(integral-type)): Use + resize_and_overwrite when available. + (__to_wstring_numeric): New helper functions. + (to_wstring): Use std::to_string then __to_wstring_numeric. + * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc: + Remove check for no excess capacity. + +2023-08-17 Jonathan Wakely + + * include/bits/basic_string.h (__resize_and_overwrite): New + function. + * include/bits/basic_string.tcc (__resize_and_overwrite): New + function. + (resize_and_overwrite): Simplify by using reserve instead of + growing the string manually. Adjust for C++11 compatibility. + * include/bits/cow_string.h (resize_and_overwrite): New + function. + (__resize_and_overwrite): New function. + * include/bits/version.def (__cpp_lib_string_resize_and_overwrite): + Do not depend on cxx11abi. + * include/bits/version.h: Regenerate. + * include/std/format (__formatter_fp::_S_resize_and_overwrite): + Remove. + (__formatter_fp::format, __formatter_fp::_M_localize): Use + __resize_and_overwrite instead of _S_resize_and_overwrite. + * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: + Adjust for C++11 compatibility when included by ... + * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc: + New test. + +2023-08-17 Patrick Palka + + * include/bits/regex.h (regex_iterator::iterator_concept): + Define for C++20 as per P2770R0. + (regex_token_iterator::iterator_concept): Likewise. + * include/std/ranges (__detail::__as_lvalue): Define. + (join_view::_Iterator): Befriend join_view. + (join_view::_Iterator::_M_satisfy): Use _M_get_outer + instead of _M_outer. + (join_view::_Iterator::_M_get_outer): Define. + (join_view::_Iterator::_Iterator): Split constructor taking + _Parent argument into two as per P2770R0. Remove constraint on + default constructor. + (join_view::_Iterator::_M_outer): Make this data member present + only when the underlying range is forward. + (join_view::_Iterator::operator++): Use _M_get_outer instead of + _M_outer. + (join_view::_Iterator::operator--): Use __as_lvalue helper. + (join_view::_Iterator::operator==): Adjust constraints as per + P2770R0. + (join_view::_Sentinel::__equal): Use _M_get_outer instead of + _M_outer. + (join_view::_M_outer): New data member when the underlying range + is non-forward. + (join_view::begin): Adjust definition as per P2770R0. + (join_view::end): Likewise. + (join_with_view::_M_outer_it): New data member when the + underlying range is non-forward. + (join_with_view::begin): Adjust definition as per P2770R0. + (join_with_view::end): Likewise. + (join_with_view::_Iterator::_M_outer_it): Make this data member + present only when the underlying range is forward. + (join_with_view::_Iterator::_M_get_outer): Define. + (join_with_view::_Iterator::_Iterator): Split constructor + taking _Parent argument into two as per P2770R0. Remove + constraint on default constructor. + (join_with_view::_Iterator::_M_update_inner): Adjust definition + as per P2770R0. + (join_with_view::_Iterator::_M_get_inner): Likewise. + (join_with_view::_Iterator::_M_satisfy): Adjust calls to + _M_get_inner. Use _M_get_outer instead of _M_outer_it. + (join_with_view::_Iterator::operator==): Adjust constraints + as per P2770R0. + (join_with_view::_Sentinel::operator==): Use _M_get_outer + instead of _M_outer_it. + * testsuite/std/ranges/adaptors/p2770r0.cc: New test. + +2023-08-17 Patrick Palka + + PR libstdc++/108827 + * include/std/ranges (__adaptor::_RangeAdaptorClosure): + Convert into a CRTP class template. Move hidden operator| + friends into namespace scope and adjust their constraints. + (__closure::__is_range_adaptor_closure_fn): Define. + (__closure::__is_range_adaptor_closure): Define. + (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure. + (__adaptor::_Pipe): Likewise. + (views::_All): Likewise. + (views::_Join): Likewise. + (views::_Common): Likewise. + (views::_Reverse): Likewise. + (views::_Elements): Likewise. + (views::_Adjacent): Likewise. + (views::_AsRvalue): Likewise. + (views::_Enumerate): Likewise. + (views::_AsConst): Likewise. + * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion + expecting that adding empty range adaptor closure objects to a + pipeline doesn't increase the size of a pipeline. + +2023-08-17 Jonathan Wakely + + * include/std/format (__format::_Pres_type): Add _Pres_F. + (__formatter_fp::parse): Use _Pres_F for 'F'. + (__formatter_fp::format): Set __upper for _Pres_F. + * testsuite/std/format/functions/format.cc: Check formatting of + infinity and NaN for each presentation type. + +2023-08-17 Jonathan Wakely + + * include/Makefile.in: Regenerate. + +2023-08-17 Jonathan Wakely + + * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch. + * testsuite/std/format/functions/format.cc: Likewise. + * testsuite/std/format/functions/format_c++23.cc: Likewise. + +2023-08-17 Jonathan Wakely + + * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove + any "-include bits/stdc++.h" from options and add the macro to + the existing options instead of replacing them. + +2023-08-16 Jonathan Wakely + + * include/bits/basic_string.tcc (resize_and_overwrite): Invoke + the callable with the same size as resize_and_overwrite was + called with. + * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: + Check with small values for the new size. + * testsuite/std/format/functions/format.cc: Check wide + formatting of double values that produce small strings. + * testsuite/std/format/functions/format_c++23.cc: New test. + +2023-08-16 Jonathan Wakely + + * include/bits/version.def (stds): Update value for C++23. + * include/bits/version.h: Regenerate. + +2023-08-16 Jonathan Wakely + + * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc: + Fix name of upstream file this was derived from. + * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc: + Likewise. + * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise. + +2023-08-16 Arsen Arsenović + + * libsupc++/typeinfo: Switch to bits/version.h for + __cpp_lib_constexpr_typeinfo. + * libsupc++/new: Switch to bits/version.h for + __cpp_lib_{launder,hardware_interference_size,destroying_delete}. + (launder): Guard behind __cpp_lib_launder. + (hardware_destructive_interference_size) + (hardware_constructive_interference_size): Guard behind + __cpp_lib_hardware_interference_size. + * libsupc++/exception: Switch to bits/version.h for + __cpp_lib_uncaught_exceptions. + (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions. + * libsupc++/compare: Switch to bits/version.h for + __cpp_lib_three_way_comparison. + (three_way_comparable, three_way_comparable_with) + (compare_three_way, weak_order, strong_order, partial_order): + Guard behind __cpp_lib_three_way_comparison >= 201907L. + * include/std/chrono: Drop __cpp_lib_chrono definition. + * include/std/vector: Switch to bits/version.h for + __cpp_lib_erase_if. + (erase, erase_if): Guard behind __cpp_lib_erase_if. + * include/std/variant: Switch to bits/version.h for + __cpp_lib_variant. Guard whole header behind that FTM. + * include/std/utility: Switch to bits/version.h for + __cpp_lib_{exchange_function,constexpr_algorithms,as_const}, + __cpp_lib_{integer_comparison_functions,to_underlying}, and + __cpp_lib_unreachable. + (exchange): Guard behind __cpp_lib_exchange_function. + (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal) + (cmp_greater_equal, in_range): Guard behind + __cpp_lib_integer_comparison_functions. + (to_underlying): Guard behind __cpp_lib_to_underlying. + (unreachable): Guard behind __cpp_lib_unreachable. + * include/std/type_traits: Switch to bits/version.h for + __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate}, + __cpp_lib_is_{constant_evaluated,invocable,layout_compatible}, + __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable}, + __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref}, + __cpp_lib_{result_of_sfinae,transformation_trait_aliases}, + __cpp_lib_{type_identity,type_trait_variable_templates}, + __cpp_lib_{unwrap_ref,void_t,integral_constant_callable}, + __cpp_lib_{bool_constant,bounded_array_traits}, and + __cpp_lib_has_unique_object_representations. + (integral_constant::operator()): Guard behind + __cpp_lib_integral_constant_callable. + (bool_constant): Guard behind __cpp_lib_bool_constant. + (conjunction, disjunction, negation, conjunction_v, disjunction_v) + (negation_v): Guard behind __cpp_lib_logical_traits. + (is_null_pointer): Guard behind __cpp_lib_is_null_pointer. + (is_final): Guard behind __cpp_lib_is_final. + (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind + __cpp_lib_is_nothrow_convertible. + (remove_const_t, remove_volatile_t, remove_cv_t) + (add_const_t, add_volatile_t, add_cv_t): Guard behind + __cpp_lib_transformation_trait_aliases. + (void_t): Guard behind __cpp_lib_void_t. + (is_swappable_with_v, is_nothrow_swappable_with_v) + (is_swappable_with, is_nothrow_swappable_with): Guard behind + __cpp_lib_is_swappable. + (is_nothrow_invocable_r, is_invocable_r, invoke_result) + (is_invocable, invoke_result_t): Guard behind + __cpp_lib_is_invocable. + (alignment_of_v, extent_v, has_virtual_destructor_v) + (is_abstract_v, is_arithmetic_v, is_array_v) + (is_assignable_v, is_base_of_v, is_class_v, is_compound_v) + (is_constructible_v, is_const_v, is_convertible_v) + (is_copy_assignable_v, is_copy_constructible_v) + (is_default_constructible_v, is_destructible_v) + (is_empty_v, is_enum_v, is_final_v, is_floating_point_v) + (is_function_v, is_fundamental_v, is_integral_v) + (is_invocable_r_v, is_invocable_v, is_literal_type_v) + (is_lvalue_reference_v, is_member_function_pointer_v) + (is_member_object_pointer_v, is_member_pointer_v) + (is_move_assignable_v, is_move_constructible_v) + (is_nothrow_assignable_v, is_nothrow_constructible_v) + (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v) + (is_nothrow_default_constructible_v, is_nothrow_destructible_v) + (is_nothrow_invocable_r_v, is_nothrow_invocable_v) + (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v) + (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v) + (is_polymorphic_v, is_reference_v, is_rvalue_reference_v) + (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v) + (is_trivially_assignable_v, is_trivially_constructible_v) + (is_trivially_copyable_v, is_trivially_copy_assignable_v) + (is_trivially_copy_constructible_v) + (is_trivially_default_constructible_v) + (is_trivially_destructible_v, is_trivially_move_assignable_v) + (is_trivially_move_constructible_v, is_trivial_v, is_union_v) + (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic): + Guard behind __cpp_lib_type_trait_variable_templates. + (has_unique_object_representations) + (has_unique_object_representations_v): Guard behind + __cpp_lib_has_unique_object_representation. + (is_aggregate): Guard behind __cpp_lib_is_aggregate. + (remove_cvref, remove_cvref_t): Guard behind + __cpp_lib_remove_cvref. + (type_identity, type_identity_t): Guard behind + __cpp_lib_type_identity. + (unwrap_reference, unwrap_reference_t, unwrap_ref_decay) + (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref. + (is_bounded_array_v, is_unbounded_array_v, is_bounded_array) + (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits. + (is_scoped_enum, is_scoped_enum_v): Guard behind + __cpp_lib_is_scoped_enum. + (reference_constructs_from_temporary) + (reference_constructs_from_temporary_v): Guard behind + __cpp_lib_reference_from_temporary. + * include/std/tuple: Switch to bits/version.h for + __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}. + (get): Guard behind __cpp_lib_tuple_by_type. + (apply): Guard behind __cpp_lib_apply. + (make_from_tuple): Guard behind __cpp_lib_make_from_tuple. + * include/std/syncstream: Switch to bits/version.h for + __cpp_lib_syncbuf. Guard header behind that FTM. + * include/std/string_view: Switch to bits/version.h for + __cpp_lib_{string_{view,contains},constexpr_string_view} and + __cpp_lib_starts_ends_with. + (basic_string_view::starts_with, basic_string_view::ends_with): + Guard behind __cpp_lib_starts_ends_with. + [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]: + Assert as impossible ithout a bug in C++23. + * include/std/string: Switch to bits/version.h for + __cpp_lib_erase_if. + (erase, erase_if): Guard behind __cpp_lib_erase_if. + * include/std/thread: Switch to bits/version.h for + __cpp_lib_jthread. + * include/std/stop_token: Switch to bits/version.h for + __cpp_lib_jthread. + * include/std/spanstream: Switch to bits/version.h for + __cpp_lib_spanstream. Guard header behind that FTM. + * include/std/span: Switch to bits/version.h for __cpp_lib_span. + Guard header behind that FTM. + * include/std/source_location: Switch to bits/version.h for + __cpp_lib_source_location. Guard header with that FTM. + * include/std/shared_mutex: Switch to bits/version.h for + __cpp_lib_shared{,_timed}_mutex. + (shared_mutex): Guard behind __cpp_lib_shared_mutex. + * include/std/semaphore: Switch to bits/version.h for + __cpp_lib_semaphore. Guard header behind that FTM. + * include/std/ranges: Switch to bits/version.h for + __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with}, + __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue}, + and __cpp_lib_ranges_{as_const,enumerate,iota}. + (ranges::zip et al, ranges::chunk et al, ranges::slide et al) + (ranges::chunk_by et al, ranges::join_with et al) + (ranges::stride et al, ranges::cartesian_product et al) + (ranges::as_rvalue et al, ranges::as_const et al) + (ranges::enumerate et al): Guard behind appropriate FTM. + * include/std/optional: Switch to bits/version.h for + __cpp_lib_optional. Guard header behind that FTM. + * include/std/numeric: Switch to bits/version.h for + __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate} + and __cpp_lib_parallel_algorithm. + (gcd, lcm): Guard behind __cpp_lib_gcd_lcm. + (midpoint): Guard behind __cpp_lib_interpolate. + * include/std/numbers: Switch to bits/version.h for + __cpp_lib_math_constants. Guard header behind that FTM. + * include/std/mutex: Switch to bits/version.h for + __cpp_lib_scoped_lock. + (scoped_Lock): Guard behind __cpp_lib_scoped_lock. + * include/std/memory_resource: Switch to bits/version.h for + __cpp_lib_{polymorphic_allocator,memory_resource}. + (synchronized_pool_resource): Guard behind + __cpp_lib_memory_resource >= 201603L. + (polymorphic_allocator): Guard behind + __cpp_lib_polymorphic_allocator. + * include/std/memory: Switch to bits/version.h for + __cpp_lib_{parallel_algorithm,atomic_value_initialization}. + * include/std/list: Switch to bits/version.h for + __cpp_lib_erase_if. + (erase, erase_if): Guard behind __cpp_lib_erase_if. + * include/std/latch: Switch to bits/version.h for __cpp_lib_latch. + Guard header behind that FTM. + * include/std/iterator: Switch to bits/version.h for + __cpp_lib_null_iterators. + * include/std/iomanip: Switch to bits/version.h for + __cpp_lib_quoted_string_io. + (quoted): Guard behind __cpp_lib_quoted_string_io. + * include/std/functional: Switch to bits/version.h for + __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and + __cpp_lib_{not_fn,booyer_moore_searcher}. + (invoke): Guard behind __cpp_lib_invoke. + (invoke_r): Guard behind __cpp_lib_invoke_r. + (bind_front): Guard behind __cpp_lib_bind_front. + (not_fn): Guard behind __cpp_lib_not_fn. + (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard + definition behind __cpp_lib_boyer_moore_searcher. + * include/std/forward_list: Switch to bits/version.h for + __cpp_lib_erase_if. + (erase, erase_if): Guard behind __cpp_lib_erase_if. + * include/std/format: Switch to bits/version.h for + __cpp_lib_format. Guard header behind that FTM. + * include/std/filesystem: Switch to bits/version.h for + __cpp_lib_filesystem. Guard header behind that FTM. + * include/std/expected: Switch to bits/version.h for + __cpp_lib_expected. Guard header behind it. + * include/std/execution: Switch to bits/version.h for + __cpp_lib_{execution,parallel_algorithm}. Guard header behind + either. + * include/std/deque: Switch to bits/version.h for + __cpp_lib_erase_if. + (erase, erase_if): Guard behind __cpp_lib_erase_if. + * include/std/coroutine: Switch to bits/version.h for + __cpp_lib_coroutine. Guard header behind that FTM. + * include/std/concepts: Switch to bits/version.h for + __cpp_lib_concepts. Guard header behind that FTM. + * include/std/complex: Switch to bits/version.h for + __cpp_lib_{complex_udls,constexpr_complex}. + (operator""if, operator""i, operator""il): Guard behind + __cpp_lib_complex_udls. + * include/std/charconv: Swtich to bits/version.h for + __cpp_lib_{to_chars,constexpr_charconv}. + * include/std/bitset: Switch to bits/version.h for + __cpp_lib_constexpr_bitset. + * include/std/bit: Switch to bits/version.h for + __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}. + (bit_cast): Guard behind __cpp_lib_bit_cast. + (byteswap): Guard behind __cpp_lib_byteswap. + (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one) + (popcount): Guard behind __cpp_lib_bitops. + (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind + __cpp_lib_int_pow2. + (endian): Guard behind __cpp_lib_endian. + * include/std/barrier: Switch to bits/version.h for + __cpp_lib_barrier. Guard header behind that FTM. + * include/std/atomic: Switch to bits/version.h for + __cpp_lib_atomic_{is_always_lock_free,float,ref} + and __cpp_lib_lock_free_type_aliases. + (*::is_always_lock_free): Guard behind + __cpp_lib_atomic_is_always_lock_free. + (atomic): Guard behind __cpp_lib_atomic_float. + (atomic_ref): Guard behind __cpp_lib_atomic_ref. + (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind + __cpp_lib_atomic_lock_free_type_aliases. + * include/std/array: Switch to bits/version.h for + __cpp_lib_to_array. + (to_array): Guard behind __cpp_lib_to_array. + * include/std/any: Switch to bits/version.h for __cpp_lib_any. + Guard header behind that FTM. + * include/std/algorithm: Switch to bits/version.h for + __cpp_lib_parallel_algorithm. + * include/c_global/cstddef: Switch to bits/version.h for + __cpp_lib_byte. + (byte): Guard behind __cpp_lib_byte. + * include/c_global/cmath: Switch to bits/version.h for + __cpp_lib_{hypot,interpolate}. + (hypot3): Guard behind __cpp_lib_hypot. + (lerp): Guard behind __cpp_lib_interpolate. + * include/c_compatibility/stdatomic.h: Switch to + bits/stl_version.h for __cpp_lib_atomic. Guard header behind that + FTM. + * include/bits/utility.h: Switch to bits/version.h for + __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}. + (tuple_element_t): Guard behind __cpp_lib_tuple_element_t. + (integer_sequence et al): Guard behind __cpp_lib_integer_sequence. + * include/bits/uses_allocator_args.h: Switch to bits/version.h for + __cpp_lib_make_obj_using_allocator. Guard header behind that FTM. + * include/bits/unordered_map.h: Switch to bits/version.h for + __cpp_lib_unordered_map_try_emplace. + (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace. + * include/bits/unique_ptr.h: Switch to bits/version.h for + __cpp_lib_{constexpr_memory,make_unique}. + (make_unique): Guard behind __cpp_lib_make_unique. + * include/bits/stl_vector.h: Switch to bits/version.h for + __cpp_lib_constexpr_vector. + * include/bits/stl_uninitialized.h: Switch to bits/version.h for + __cpp_lib_raw_memory_algorithms. + (uninitialized_default_construct) + (uninitialized_default_construct_n, uninitialized_move) + (uninitialized_move_n, uninitialized_value_construct) + (uninitialized_value_construct_n): Guard behind + __cpp_lib_raw_memory_algorithms. + * include/bits/stl_tree.h: Switch to bits/version.h for + __cpp_lib_generic_associative_lookup. + * include/bits/stl_stack.h: Switch to bits/version.h for + __cpp_lib_adaptor_iterator_pair_constructor. + (stack): Guard iterator-pair constructor behind + __cpp_lib_adaptor_iterator_pair_constructor. + * include/bits/stl_queue.h: Switch to bits/version.h for + __cpp_lib_adaptor_iterator_pair_constructor. + (queue): Guard iterator-pair constructor behind + __cpp_lib_adaptor_iterator_pair_constructor. + * include/bits/stl_pair.h: Switch to bits/version.h for + __cpp_lib_{concepts,tuples_by_type}. + (get): Guard type-getting overloads behind + __cpp_lib_tuples_by_type. + * include/bits/stl_map.h: Switch to bits/version.h for + __cpp_lib_map_try_emplace. + (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace. + * include/bits/stl_list.h: Switch to bits/version.h for + __cpp_lib_list_remove_return_type. + (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG) + [C++20]: guard behind __cpp_lib_list_remove_return_type instead. + * include/bits/stl_iterator.h: Switch to bits/version.h for + __cpp_lib_{constexpr_iterator,array_constexpr} and + __cpp_lib_{make_reverse_iterator,move_iterator_concept}. + (make_reverse_iterator): Guard behind + __cpp_lib_make_reverse_iterator. + (iterator_concept et al): Guard __cpp_lib_move_iterator_concept + changes behind that FTM. + * include/bits/stl_function.h: Switch to bits/version.h for + __cpp_lib_transparent_operators. + (equal_to, not_equal_to, greater, less, greater_equal) + (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and) + (logical_or, logical_not, plus, minus, multiplies, divides) + (modulus, negate): Guard '= void' fwdecls behind + __cpp_lib_transparent_operators. + (plus, minus, multiplies, divides) + (modulus, negate, logical_and, logical_or) + (logical_not, bit_and, bit_or, bit_xor) + (equal_to, not_equal_to, greater, less) + (greater_equal, less_equal, bit_not) + (__has_is_transparent): Guard behind + __cpp_lib_transparent_operators. + * include/bits/stl_algobase.h: Switch to bits/version.h for + __cpp_lib_robust_nonmodifying_seq_ops. + (robust equal, mismatch): Guard behind + __cpp_lib_nonmember_container_access. + * include/bits/stl_algo.h: Swtich to bits/version.h for + __cpp_lib_{clamp,sample}. + (clamp): Guard behind __cpp_lib_clamp. + (sample): Guard behind __cpp_lib_sample. + * include/bits/specfun.h: Switch to bits/version.h for + __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__. + * include/bits/shared_ptr_base.h: Switch to bits/version.h for + __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}. + (_Sp_overwrite_tag): Guard behind + __cpp_lib_smart_ptr_for_overwrite. + * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for + __cpp_lib_atomic_shared_ptr. + * include/bits/shared_ptr.h: Switch to bits/version.h for + __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}. + (shared_ptr::weak_type): Guard behind + __cpp_lib_shared_ptr_weak_type. + (enable_shared_from_this::weak_from_this): Guard behind + __cpp_lib_enable_shared_from_this. + * include/bits/ranges_cmp.h: Switch to bits/version.h for + __cpp_lib_ranges. + * include/bits/ranges_algo.h: Switch to bits/version.h for + __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}. + * include/bits/range_access.h: Switch to bits/version.h for + __cpp_lib_nonmember_container_access + (size, empty, data): Guard behind + __cpp_lib_nonmember_container_access. + (ssize): Guard behind __cpp_lib_ssize. + * include/bits/ptr_traits.h: Switch to bits/version.h. for + __cpp_lib_{constexpr_memory,to_address}. + (to_address): Guard behind __cpp_lib_to_address. + * include/bits/node_handle.h: Switch to bits/version.h for + __cpp_lib_node_extract. Guard header behind that FTM. + * include/bits/move_only_function.h: Switch to bits/version.h for + __cpp_lib_move_only_function. Guard header behind that FTM. + * include/bits/move.h: Switch to bits/version.h for + __cpp_lib_addressof_constexpr. + * include/bits/ios_base.h: Switch to bits/version.h for + __cpp_lib_ios_noreplace. + (noreplace): Guard with __cpp_lib_ios_noreplace. + * include/bits/hashtable.h: Switch to bits/version.h for + __cpp_lib_generic_unordered_lookup. + (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind + __cpp_lib_generic_unordered_lookup. + * include/bits/forward_list.h: Switch to bits/version.h for + __cpp_lib_list_remove_return_type. + (__remove_return_type): Guard behind + __cpp_lib_list_remove_return_type. + * include/bits/erase_if.h: Switch to bits/version.h for + __cpp_lib_erase_if. + * include/bits/cow_string.h: Switch to bits/version.h for + __cpp_lib_constexpr_string. + * include/bits/chrono.h: Swtich to bits/version.h for + __cpp_lib_chrono{,_udls}. + (ceil): Guard behind __cpp_lib_chrono. + (operator""ns et al): Guard behind __cpp_lib_chrono_udls. + * include/bits/char_traits.h: Switch to bits/version.h for + __cpp_lib_constexpr_char_traits. + * include/bits/basic_string.h: Switch to bits/version.h for + __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}. + (resize_and_overwrite): Guard behind + __cpp_lib_string_resize_and_overwrite. + (operator""s): Guard behind __cpp_lib_string_udls. + * include/bits/atomic_wait.h: Switch to bits/version.h for + __cpp_lib_atomic_wait. Guard header behind that FTM. + * include/bits/atomic_base.h: Switch to bits/version.h for + __cpp_lib_atomic_value_initialization and + __cpp_lib_atomic_flag_test. + (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test, + rather than C++20. + * include/bits/allocator.h: Switch to bits/version.h for + __cpp_lib_incomplete_container_elements. + * include/bits/alloc_traits.h: Switch to using bits/version.h for + __cpp_lib_constexpr_dynamic_alloc and + __cpp_lib_allocator_traits_is_always_equal. + * include/bits/align.h: Switch to bits/version.h for defining + __cpp_lib_assume_aligned. + (assume_aligned): Guard with __cpp_lib_assume_aligned. + * include/bits/algorithmfwd.h: Switch to bits/version.h for + defining __cpp_lib_constexpr_algorithms. + * include/std/stacktrace: Switch to bits/version.h for + __cpp_lib_stacktrace. Guard header behind that FTM. + * testsuite/23_containers/array/tuple_interface/get_neg.cc: + Update line numbers. + +2023-08-16 Arsen Arsenović + + * include/Makefile.am (bits_freestanding): Add version.h. + (allcreated): Add version.h. + (${bits_srcdir}/version.h): New rule. Regenerates + version.h out of version.{def,tpl}. + * include/Makefile.in: Regenerate. + * include/bits/version.def: New file. Declares a list of + all feature test macros, their values and their preconditions. + * include/bits/version.tpl: New file. Turns version.def + into a sequence of #if blocks. + * include/bits/version.h: New file. Generated from + version.def. + * include/std/version: Replace with a __glibcxx_want_all define + and bits/version.h include. + +2023-08-14 Paul Dreik + + PR libstdc++/110860 + * include/std/format (__formatter_fp::format): Use frexp instead + of log10. + +2023-08-12 Ken Matsui + + * include/std/type_traits (true_type): Use __bool_constant + instead. + (false_type): Likewise. + (bool_constant): Likewise. + 2023-08-11 Jonathan Wakely PR libstdc++/110990