* [committed 1/2] libstdc++: Test for feature test macros more accurately @ 2023-11-16 8:11 Jonathan Wakely 2023-11-16 8:11 ` [committed 2/2] libstdc++: Only declare feature test macros in standard headers Jonathan Wakely 0 siblings, 1 reply; 2+ messages in thread From: Jonathan Wakely @ 2023-11-16 8:11 UTC (permalink / raw) To: libstdc++, gcc-patches Tested x86_64-linux. Pushed to trunk. -- >8 -- Tests which check for feature test macros should use the no_pch option, so that we're really testing for the definition being in the intended header, and not just testing that it's present in <bits/stdc++.h> (which includes all the standard headers and so defines all the macros). libstdc++-v3/ChangeLog: * 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 <algorithm> and <iterator>. * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust dg-error line numbers. --- .../testsuite/18_support/byte/requirements.cc | 1 + .../testsuite/18_support/destroying_delete.cc | 1 + .../testsuite/18_support/source_location/1.cc | 3 +- .../18_support/source_location/version.cc | 1 + .../18_support/type_info/constexpr.cc | 1 + .../uncaught_exceptions.cc | 1 + .../19_diagnostics/stacktrace/output.cc | 1 + .../19_diagnostics/stacktrace/synopsis.cc | 1 + .../19_diagnostics/stacktrace/version.cc | 1 + .../addressof/requirements/constexpr.cc | 1 + .../20_util/allocator_traits/header-2.cc | 1 + .../20_util/allocator_traits/header.cc | 1 + libstdc++-v3/testsuite/20_util/as_const/1.cc | 1 + .../20_util/bitset/cons/constexpr_c++23.cc | 1 + .../testsuite/20_util/bitset/version.cc | 1 + .../duration/arithmetic/constexpr_c++17.cc | 1 + .../20_util/duration_cast/rounding.cc | 1 + .../members/weak_from_this.cc | 1 + .../testsuite/20_util/exchange/constexpr.cc | 1 + .../testsuite/20_util/expected/synopsis.cc | 1 + .../testsuite/20_util/expected/version.cc | 1 + .../20_util/function_objects/bind_front/1.cc | 8 +++-- .../20_util/function_objects/bind_front/2.cc | 12 ++++--- .../20_util/function_objects/invoke/3.cc | 1 + .../20_util/function_objects/invoke/4.cc | 1 + .../function_objects/invoke/constexpr.cc | 5 +-- .../function_objects/invoke/version.cc | 1 + .../20_util/function_objects/searchers.cc | 18 +++++----- .../20_util/integer_comparisons/1.cc | 1 + .../20_util/integer_comparisons/2.cc | 1 + .../20_util/is_bounded_array/value.cc | 8 +++-- .../20_util/is_layout_compatible/value.cc | 2 ++ .../20_util/is_layout_compatible/version.cc | 1 + .../requirements/explicit_instantiation.cc | 1 + .../requirements/typedefs.cc | 1 + .../20_util/is_nothrow_swappable/value.cc | 1 + .../20_util/is_nothrow_swappable/value.h | 13 ++++---- .../requirements/explicit_instantiation.cc | 6 ---- .../requirements/typedefs.cc | 6 ---- .../is_nothrow_swappable_with/value.cc | 4 ++- .../is_pointer_interconvertible/value.cc | 2 ++ .../is_pointer_interconvertible/version.cc | 1 + .../testsuite/20_util/is_scoped_enum/value.cc | 1 + .../20_util/is_scoped_enum/version.cc | 1 + .../requirements/explicit_instantiation.cc | 6 ---- .../is_swappable/requirements/typedefs.cc | 6 ---- .../testsuite/20_util/is_swappable/value.cc | 1 + .../testsuite/20_util/is_swappable/value.h | 13 ++++---- .../requirements/explicit_instantiation.cc | 6 ---- .../requirements/typedefs.cc | 6 ---- .../20_util/is_swappable_with/value.cc | 4 ++- .../20_util/is_unbounded_array/value.cc | 4 ++- .../20_util/move_only_function/cons.cc | 1 + .../20_util/move_only_function/version.cc | 1 + .../20_util/optional/monadic/and_then.cc | 1 + .../20_util/optional/requirements.cc | 1 + .../testsuite/20_util/optional/version.cc | 1 + .../testsuite/20_util/owner_less/void.cc | 3 +- .../20_util/reference_from_temporary/value.cc | 8 +++-- .../reference_from_temporary/version.cc | 1 + .../shared_ptr/atomic/atomic_shared_ptr.cc | 1 + .../20_util/shared_ptr/creation/array.cc | 1 + .../20_util/shared_ptr/creation/overwrite.cc | 1 + .../20_util/shared_ptr/creation/version.cc | 1 + .../20_util/time_point_cast/rounding.cc | 1 + .../testsuite/20_util/to_chars/constexpr.cc | 1 + .../testsuite/20_util/to_chars/result.cc | 4 ++- .../testsuite/20_util/to_chars/version.cc | 1 + .../testsuite/20_util/to_underlying/1.cc | 1 + .../20_util/to_underlying/version.cc | 1 + .../testsuite/20_util/tuple/apply/1.cc | 4 ++- .../tuple/cons/constexpr_allocator_arg_t.cc | 1 + .../20_util/tuple/make_from_tuple/1.cc | 8 +++-- .../testsuite/20_util/tuple/p2321r2.cc | 6 ++-- .../20_util/tuple/tuple_element_t.cc | 1 + .../unique_ptr/cons/constexpr_c++20.cc | 1 + .../unique_ptr/creation/for_overwrite.cc | 1 + .../testsuite/20_util/unreachable/1.cc | 1 + .../testsuite/20_util/unreachable/version.cc | 1 + .../testsuite/20_util/unwrap_reference/1.cc | 1 + .../testsuite/20_util/unwrap_reference/3.cc | 1 + .../testsuite/20_util/variant/constexpr.cc | 1 + .../testsuite/20_util/variant/version.cc | 1 + .../20_util/variant/visit_inherited.cc | 1 + libstdc++-v3/testsuite/20_util/void_t/1.cc | 1 + .../capacity/char/resize_and_overwrite.cc | 2 +- .../basic_string/cons/char/constexpr.cc | 1 + .../basic_string/cons/wchar_t/constexpr.cc | 1 + .../21_strings/basic_string/erasure.cc | 4 ++- .../char/to_string_float.cc | 33 +++++++++++-------- .../numeric_conversions/version.cc | 2 ++ .../21_strings/basic_string/version.cc | 1 + .../operations/contains/char.cc | 1 + .../operations/contains/char/2.cc | 1 + .../operations/copy/char/constexpr.cc | 1 + .../requirements/constexpr_functions_c++17.cc | 1 + .../requirements/constexpr_functions_c++20.cc | 1 + .../char_traits/requirements/version.cc | 1 + .../array/comparison_operators/constexpr.cc | 3 +- .../23_containers/array/creation/1.cc | 1 + .../23_containers/array/creation/2.cc | 1 + .../array/element_access/constexpr_c++17.cc | 1 + .../array/requirements/constexpr_fill.cc | 3 +- .../array/requirements/constexpr_iter.cc | 3 +- .../array/tuple_interface/get_neg.cc | 6 ++-- .../testsuite/23_containers/deque/erasure.cc | 4 ++- .../23_containers/forward_list/erasure.cc | 4 ++- .../testsuite/23_containers/list/erasure.cc | 4 ++- .../testsuite/23_containers/map/erasure.cc | 6 ++-- .../23_containers/queue/cons_from_iters.cc | 1 + .../testsuite/23_containers/set/erasure.cc | 4 ++- .../testsuite/23_containers/span/1.cc | 1 + .../testsuite/23_containers/span/2.cc | 1 + .../23_containers/stack/cons_from_iters.cc | 1 + .../23_containers/unordered_map/erasure.cc | 6 ++-- .../unordered_map/operations/1.cc | 1 + .../23_containers/unordered_set/erasure.cc | 4 ++- .../unordered_set/operations/1.cc | 1 + .../23_containers/vector/cons/constexpr.cc | 1 + .../testsuite/23_containers/vector/erasure.cc | 4 ++- .../vector/requirements/version.cc | 1 + .../24_iterators/insert_iterator/constexpr.cc | 1 + .../25_algorithms/clamp/constexpr.cc | 8 +++-- .../requirements/explicit_instantiation/1.cc | 6 ---- .../25_algorithms/constexpr_macro.cc | 1 + .../25_algorithms/cpp_lib_constexpr.cc | 1 + .../testsuite/25_algorithms/fold_left/1.cc | 6 ++-- .../25_algorithms/pstl/feature_test-2.cc | 1 + .../25_algorithms/pstl/feature_test-3.cc | 1 + .../25_algorithms/pstl/feature_test-4.cc | 1 + .../25_algorithms/pstl/feature_test-5.cc | 1 + .../25_algorithms/pstl/feature_test.cc | 1 + .../26_numerics/bit/bit.byteswap/byteswap.cc | 1 + .../26_numerics/bit/bit.byteswap/version.cc | 1 + .../26_numerics/bit/bit.cast/bit_cast.cc | 1 + .../26_numerics/bit/bit.cast/version.cc | 1 + .../testsuite/26_numerics/bit/header-2.cc | 1 + .../testsuite/26_numerics/bit/header.cc | 1 + .../testsuite/26_numerics/complex/1.cc | 1 + .../testsuite/26_numerics/complex/2.cc | 1 + .../testsuite/26_numerics/endian/2.cc | 1 + .../testsuite/26_numerics/endian/3.cc | 1 + libstdc++-v3/testsuite/26_numerics/gcd/1.cc | 1 + libstdc++-v3/testsuite/26_numerics/lcm/1.cc | 1 + libstdc++-v3/testsuite/26_numerics/lerp/1.cc | 1 + .../testsuite/26_numerics/lerp/version.cc | 1 + .../26_numerics/midpoint/integral.cc | 1 + .../testsuite/26_numerics/midpoint/version.cc | 1 + .../testsuite/26_numerics/numbers/1.cc | 1 + .../testsuite/26_numerics/numbers/2.cc | 1 + .../basic_filebuf/native_handle/char/1.cc | 1 + .../basic_filebuf/native_handle/version.cc | 1 + .../basic_ofstream/open/char/noreplace.cc | 1 + .../basic_ofstream/open/wchar_t/noreplace.cc | 1 + .../testsuite/27_io/basic_syncbuf/1.cc | 1 + .../testsuite/27_io/basic_syncbuf/2.cc | 1 + .../testsuite/27_io/basic_syncstream/1.cc | 1 + .../testsuite/27_io/basic_syncstream/2.cc | 1 + libstdc++-v3/testsuite/27_io/spanstream/1.cc | 1 + .../testsuite/27_io/spanstream/version.cc | 1 + .../29_atomics/atomic/cons/value_init.cc | 1 + .../29_atomics/atomic/lock_free_aliases.cc | 1 + .../29_atomics/atomic/wait_notify/1.cc | 1 + .../29_atomics/atomic/wait_notify/2.cc | 1 + .../headers/stdatomic.h/c_compat.cc | 1 + .../29_atomics/headers/stdatomic.h/version.cc | 1 + .../testsuite/30_threads/barrier/1.cc | 1 + .../testsuite/30_threads/barrier/2.cc | 1 + .../condition_variable_any/stop_token/1.cc | 1 + .../condition_variable_any/stop_token/2.cc | 1 + .../testsuite/30_threads/jthread/1.cc | 1 + .../testsuite/30_threads/jthread/version.cc | 1 + libstdc++-v3/testsuite/30_threads/latch/1.cc | 1 + libstdc++-v3/testsuite/30_threads/latch/2.cc | 1 + .../scoped_lock/requirements/typedefs.cc | 2 +- .../testsuite/30_threads/semaphore/1.cc | 1 + .../testsuite/30_threads/semaphore/2.cc | 1 + .../testsuite/30_threads/stop_token/1.cc | 1 + .../testsuite/30_threads/stop_token/2.cc | 1 + .../testsuite/experimental/feat-char8_t.cc | 1 + .../testsuite/experimental/feat-cxx14.cc | 3 ++ .../experimental/iterator/ostream_joiner.cc | 6 ++-- .../testsuite/experimental/numeric/gcd.cc | 4 ++- .../experimental/scopeguard/uniqueres.cc | 4 ++- libstdc++-v3/testsuite/std/concepts/1.cc | 1 + libstdc++-v3/testsuite/std/concepts/2.cc | 1 + .../std/ranges/adaptors/as_const/1.cc | 10 +++--- .../std/ranges/adaptors/as_rvalue/1.cc | 10 +++--- .../testsuite/std/ranges/adaptors/chunk/1.cc | 10 +++--- .../std/ranges/adaptors/chunk_by/1.cc | 10 +++--- .../std/ranges/adaptors/enumerate/1.cc | 10 +++--- .../std/ranges/adaptors/join_with/1.cc | 10 +++--- .../testsuite/std/ranges/adaptors/slide/1.cc | 10 +++--- .../testsuite/std/ranges/adaptors/stride/1.cc | 8 +++-- .../std/ranges/cartesian_product/1.cc | 10 +++--- .../std/ranges/headers/ranges/synopsis.cc | 1 + libstdc++-v3/testsuite/std/ranges/repeat/1.cc | 8 +++-- .../testsuite/std/ranges/version_c++23.cc | 1 + libstdc++-v3/testsuite/std/ranges/zip/1.cc | 10 +++--- libstdc++-v3/testsuite/std/time/syn_c++20.cc | 1 + 200 files changed, 368 insertions(+), 174 deletions(-) diff --git a/libstdc++-v3/testsuite/18_support/byte/requirements.cc b/libstdc++-v3/testsuite/18_support/byte/requirements.cc index 1d3b269a677..1c62f762e87 100644 --- a/libstdc++-v3/testsuite/18_support/byte/requirements.cc +++ b/libstdc++-v3/testsuite/18_support/byte/requirements.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <cstddef> diff --git a/libstdc++-v3/testsuite/18_support/destroying_delete.cc b/libstdc++-v3/testsuite/18_support/destroying_delete.cc index 2ee927225a0..e6c5f28d3e4 100644 --- a/libstdc++-v3/testsuite/18_support/destroying_delete.cc +++ b/libstdc++-v3/testsuite/18_support/destroying_delete.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++20 } } +// { dg-add-options no_pch } #include <new> #include <type_traits> diff --git a/libstdc++-v3/testsuite/18_support/source_location/1.cc b/libstdc++-v3/testsuite/18_support/source_location/1.cc index 48707b3c3e7..f89944cedd1 100644 --- a/libstdc++-v3/testsuite/18_support/source_location/1.cc +++ b/libstdc++-v3/testsuite/18_support/source_location/1.cc @@ -20,6 +20,7 @@ // { dg-options "-include string -include stdexcept" } // { dg-do run { target c++20 } } +// { dg-add-options no_pch } #include <source_location> @@ -125,7 +126,7 @@ int main () member_defaulted_sl.member.file_name()); std::string_view member_defaulted_sl_fn_name( member_defaulted_sl.member.function_name()); - VERIFY(member_defaulted_sl.member.line() == 46); + VERIFY(member_defaulted_sl.member.line() == 47); // closing paren of constructor declaration VERIFY(member_defaulted_sl.member.column() == 25); VERIFY(member_defaulted_sl_fn_name.starts_with("s::s(int)"sv)); diff --git a/libstdc++-v3/testsuite/18_support/source_location/version.cc b/libstdc++-v3/testsuite/18_support/source_location/version.cc index 8cb59023e12..8cf8c5b3917 100644 --- a/libstdc++-v3/testsuite/18_support/source_location/version.cc +++ b/libstdc++-v3/testsuite/18_support/source_location/version.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do preprocess { target c++20 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc b/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc index 9390aa45f80..bb4bb4485c2 100644 --- a/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc +++ b/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc @@ -1,6 +1,7 @@ // { dg-options "-frtti" } // { dg-do compile { target c++23 } } // { dg-additional-options "-fdelete-null-pointer-checks" } +// { dg-add-options no_pch } #include <typeinfo> diff --git a/libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc b/libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc index 7f3ddf05103..405f81cae4d 100644 --- a/libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc +++ b/libstdc++-v3/testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++17 } } +// { dg-add-options no_pch } #include <cassert> #include <exception> diff --git a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc index 35389ecbd85..4960ccb85b8 100644 --- a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc +++ b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++23 } } // { dg-require-effective-target stacktrace } +// { dg-add-options no_pch } #include <stacktrace> #include <sstream> diff --git a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc index 5e32527b88b..9e775b86ac9 100644 --- a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc +++ b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc @@ -1,6 +1,7 @@ // { dg-do compile { target c++23 } } // { dg-require-effective-target stacktrace } // { dg-require-normal-namespace "" } +// { dg-add-options no_pch } #include <stacktrace> diff --git a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc index ecfaf4165c3..21c2d48b7b5 100644 --- a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc +++ b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc @@ -1,5 +1,6 @@ // { dg-do preprocess { target c++23 } } // { dg-require-effective-target stacktrace } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/addressof/requirements/constexpr.cc b/libstdc++-v3/testsuite/20_util/addressof/requirements/constexpr.cc index bc024d69292..38c4f0495cd 100644 --- a/libstdc++-v3/testsuite/20_util/addressof/requirements/constexpr.cc +++ b/libstdc++-v3/testsuite/20_util/addressof/requirements/constexpr.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <utility> diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc index 9393d8a885d..0ebef20dec3 100644 --- a/libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc +++ b/libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/header.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/header.cc index 4a88abaadb7..de9327f935a 100644 --- a/libstdc++-v3/testsuite/20_util/allocator_traits/header.cc +++ b/libstdc++-v3/testsuite/20_util/allocator_traits/header.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/as_const/1.cc b/libstdc++-v3/testsuite/20_util/as_const/1.cc index bcff9f78dda..eae34018002 100644 --- a/libstdc++-v3/testsuite/20_util/as_const/1.cc +++ b/libstdc++-v3/testsuite/20_util/as_const/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <utility> diff --git a/libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc b/libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc index 871d17d9b04..7e2eba5095d 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc @@ -1,6 +1,7 @@ // { dg-do compile { target c++23 } } // This test relies on std::string. // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <bitset> diff --git a/libstdc++-v3/testsuite/20_util/bitset/version.cc b/libstdc++-v3/testsuite/20_util/bitset/version.cc index 1badb29507a..8117092b417 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/version.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/version.cc @@ -1,5 +1,6 @@ // { dg-do preprocess { target c++23 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr_c++17.cc b/libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr_c++17.cc index 6fe5475caf0..d06c5c836f3 100644 --- a/libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr_c++17.cc +++ b/libstdc++-v3/testsuite/20_util/duration/arithmetic/constexpr_c++17.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } // Copyright (C) 2011-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/duration_cast/rounding.cc b/libstdc++-v3/testsuite/20_util/duration_cast/rounding.cc index 0be51916942..77c3497a890 100644 --- a/libstdc++-v3/testsuite/20_util/duration_cast/rounding.cc +++ b/libstdc++-v3/testsuite/20_util/duration_cast/rounding.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <chrono> diff --git a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc index bd157325945..fd47e839baa 100644 --- a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc +++ b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc @@ -17,6 +17,7 @@ // { dg-do run { target c++17 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/exchange/constexpr.cc b/libstdc++-v3/testsuite/20_util/exchange/constexpr.cc index 2a7d79201b1..3c687187a24 100644 --- a/libstdc++-v3/testsuite/20_util/exchange/constexpr.cc +++ b/libstdc++-v3/testsuite/20_util/exchange/constexpr.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <utility> diff --git a/libstdc++-v3/testsuite/20_util/expected/synopsis.cc b/libstdc++-v3/testsuite/20_util/expected/synopsis.cc index 237754dd780..a0d2d5bea22 100644 --- a/libstdc++-v3/testsuite/20_util/expected/synopsis.cc +++ b/libstdc++-v3/testsuite/20_util/expected/synopsis.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++23 } } // { dg-require-normal-namespace "" } +// { dg-add-options no_pch } #include <expected> diff --git a/libstdc++-v3/testsuite/20_util/expected/version.cc b/libstdc++-v3/testsuite/20_util/expected/version.cc index b592e641003..6deaa68a75e 100644 --- a/libstdc++-v3/testsuite/20_util/expected/version.cc +++ b/libstdc++-v3/testsuite/20_util/expected/version.cc @@ -1,4 +1,5 @@ // { dg-do preprocess { target c++23 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc index 8a8c11a79c2..3baa7219b5c 100644 --- a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc +++ b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc @@ -16,16 +16,18 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++20 } } +// { dg-add-options no_pch } #include <functional> -#include <testsuite_hooks.h> #ifndef __cpp_lib_bind_front -# error "Feature test macro for bind_front is missing" +# error "Feature test macro for bind_front is missing in <functional>" #elif __cpp_lib_bind_front < 201902L -# error "Feature test macro for bind_front has wrong value" +# error "Feature test macro for bind_front has wrong value in <functional>" #endif +#include <testsuite_hooks.h> + using std::bind_front; using std::is_same_v; using std::is_invocable_v; diff --git a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc index 0ea892612f6..7d349377c89 100644 --- a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc +++ b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc @@ -16,20 +16,22 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++20 } } +// { dg-add-options no_pch } #include <functional> -#include <memory> -#include <string> -#include <testsuite_hooks.h> // P1651R0 bind_front should not unwrap reference_wrapper #ifndef __cpp_lib_bind_front -# error "Feature test macro for bind_front is missing" +# error "Feature test macro for bind_front is missing in <functional>" #elif __cpp_lib_bind_front < 201907L -# error "Feature test macro for bind_front has wrong value" +# error "Feature test macro for bind_front has wrong value in <functional>" #endif +#include <memory> +#include <string> +#include <testsuite_hooks.h> + void functionAcceptingStringView(std::string_view) { } void diff --git a/libstdc++-v3/testsuite/20_util/function_objects/invoke/3.cc b/libstdc++-v3/testsuite/20_util/function_objects/invoke/3.cc index 1a4c9327f63..6cb0875c360 100644 --- a/libstdc++-v3/testsuite/20_util/function_objects/invoke/3.cc +++ b/libstdc++-v3/testsuite/20_util/function_objects/invoke/3.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc b/libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc index 38367f70534..9356a400c01 100644 --- a/libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc +++ b/libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc b/libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc index 122e2116f1a..4e13e8701da 100644 --- a/libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc +++ b/libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc @@ -16,13 +16,14 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <functional> #ifndef __cpp_lib_constexpr_functional -# error "Feature test macro for constexpr invoke is missing" +# error "Feature test macro for constexpr invoke is missing in <functional>" #elif __cpp_lib_constexpr_functional < 201907L -# error "Feature test macro for constexpr invoke has wrong value" +# error "Feature test macro for constexpr invoke has wrong value in <functional>" #endif constexpr int inc(int i) { return i + 1; } diff --git a/libstdc++-v3/testsuite/20_util/function_objects/invoke/version.cc b/libstdc++-v3/testsuite/20_util/function_objects/invoke/version.cc index 2dc71aea504..cdd5505ba44 100644 --- a/libstdc++-v3/testsuite/20_util/function_objects/invoke/version.cc +++ b/libstdc++-v3/testsuite/20_util/function_objects/invoke/version.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/function_objects/searchers.cc b/libstdc++-v3/testsuite/20_util/function_objects/searchers.cc index 6f1a8dd3175..eb9f49f3da3 100644 --- a/libstdc++-v3/testsuite/20_util/function_objects/searchers.cc +++ b/libstdc++-v3/testsuite/20_util/function_objects/searchers.cc @@ -16,22 +16,24 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++17 } } +// { dg-add-options no_pch } #include <functional> + +#if __STDC_HOSTED__ +# ifndef __cpp_lib_boyer_moore_searcher +# error "Feature-test macro for searchers missing in <functional>" +# elif __cpp_lib_boyer_moore_searcher < 201603 +# error "Feature-test macro for searchers has wrong value in <functional>" +# endif +#endif // HOSTED + #include <string_view> #include <cstring> #include <cctype> #include <algorithm> #include <testsuite_hooks.h> -#if __STDC_HOSTED__ -# ifndef __cpp_lib_boyer_moore_searcher -# error "Feature-test macro for searchers missing" -# elif __cpp_lib_boyer_moore_searcher < 201603 -# error "Feature-test macro for searchers has wrong value" -# endif -#endif // HOSTED - using std::default_searcher; #if __STDC_HOSTED__ using std::boyer_moore_searcher; diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc index 245fec96315..585d8a1d382 100644 --- a/libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc +++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do preprocess { target c++20 } } +// { dg-add-options no_pch } #include <utility> diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc index 3e2bf573c0b..3979e16319f 100644 --- a/libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc +++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do preprocess { target c++20 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc b/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc index dd417cf6a2a..4c7d848dcb5 100644 --- a/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2019-2023 Free Software Foundation, Inc. // @@ -18,14 +19,15 @@ // <http://www.gnu.org/licenses/>. #include <type_traits> -#include <testsuite_tr1.h> #ifndef __cpp_lib_bounded_array_traits -# error "Feature test macro for is_bounded_array is missing" +# error "Feature test macro for is_bounded_array is missing in <type_traits>" #elif __cpp_lib_bounded_array_traits < 201902L -# error "Feature test macro for is_bounded_array has wrong value" +# error "Feature test macro for is_bounded_array has wrong value in <type_traits>" #endif +#include <testsuite_tr1.h> + void test01() { using std::is_bounded_array; diff --git a/libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc b/libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc index 6232f6ac671..51ca384ee71 100644 --- a/libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc @@ -1,4 +1,6 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } + #include <type_traits> #ifndef __cpp_lib_is_layout_compatible diff --git a/libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc b/libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc index be6079d6b5e..d44442e6a2c 100644 --- a/libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc +++ b/libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc index 87695bcd6e8..27268eec08f 100644 --- a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc +++ b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } // Copyright (C) 2015-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc index ac39c8c7b2f..c5d4afbe709 100644 --- a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc +++ b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } // Copyright (C) 2015-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.cc b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.cc index 247daf21fab..185f4aaee74 100644 --- a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } // Copyright (C) 2015-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.h b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.h index 45cee6915f0..fa5a642197f 100644 --- a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.h +++ b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable/value.h @@ -16,12 +16,6 @@ // <http://www.gnu.org/licenses/>. #include <type_traits> -#include <testsuite_tr1.h> -#include <utility> -#include <array> -#include <tuple> -#include <queue> -#include <stack> #if defined(test_std_is_nothrow_swappable) # ifndef __cpp_lib_is_swappable @@ -41,6 +35,13 @@ using is_nothrow_swappable = std::__is_nothrow_swappable<T>; "test_std_is_nothrow_swappable_ext need to be defined" #endif +#include <utility> +#include <array> +#include <tuple> +#include <queue> +#include <stack> +#include <testsuite_tr1.h> + namespace funny { struct F {}; void swap(F&, F&) = delete; diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc index aa2bade16c2..1b0dc1e2a8c 100644 --- a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc +++ b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc @@ -19,12 +19,6 @@ #include <type_traits> -#ifndef __cpp_lib_is_swappable -# error "Feature-test macro for is_nothrow_swappable_with missing" -#elif __cpp_lib_is_swappable != 201603 -# error "Feature-test macro for is_nothrow_swappable_with has wrong value" -#endif - namespace std { typedef short test_type; diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc index f90f19cb747..509b5e78d3f 100644 --- a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc +++ b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc @@ -19,12 +19,6 @@ #include <type_traits> -#ifndef __cpp_lib_is_swappable -# error "Feature-test macro for is_nothrow_swappable_with missing" -#elif __cpp_lib_is_swappable != 201603 -# error "Feature-test macro for is_nothrow_swappable_with has wrong value" -#endif - void test01() { // Check for required typedefs diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/value.cc b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/value.cc index 50fa29723c5..b138f84ddab 100644 --- a/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_nothrow_swappable_with/value.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } // Copyright (C) 2016-2023 Free Software Foundation, Inc. // @@ -18,7 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <type_traits> -#include <testsuite_tr1.h> #ifndef __cpp_lib_is_swappable # error "Feature-test macro for is_nothrow_swappable_with missing" @@ -26,6 +26,8 @@ # error "Feature-test macro for is_nothrow_swappable_with has wrong value" #endif +#include <testsuite_tr1.h> + namespace funny { struct T0 {}; diff --git a/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc b/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc index fb4652d932d..4d67c8c8df1 100644 --- a/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc @@ -1,4 +1,6 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } + #include <type_traits> #ifndef __cpp_lib_is_pointer_interconvertible diff --git a/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc b/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc index 82882237e9d..9347cc0a2ce 100644 --- a/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc +++ b/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc b/libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc index 43dc03be8a8..9f3bd0277ec 100644 --- a/libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <type_traits> diff --git a/libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc b/libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc index 698cb48d3b3..7ef8a257401 100644 --- a/libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc +++ b/libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc index ad3e12e5a71..0d47bd59ca8 100644 --- a/libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc +++ b/libstdc++-v3/testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc @@ -19,12 +19,6 @@ #include <type_traits> -#ifndef __cpp_lib_is_swappable -# error "Feature-test macro for is_swappable missing" -#elif __cpp_lib_is_swappable != 201603 -# error "Feature-test macro for is_swappable has wrong value" -#endif - namespace std { typedef short test_type; diff --git a/libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs.cc index 3356d08ef69..ac742473066 100644 --- a/libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs.cc +++ b/libstdc++-v3/testsuite/20_util/is_swappable/requirements/typedefs.cc @@ -19,12 +19,6 @@ #include <type_traits> -#ifndef __cpp_lib_is_swappable -# error "Feature-test macro for is_swappable missing" -#elif __cpp_lib_is_swappable != 201603 -# error "Feature-test macro for is_swappable has wrong value" -#endif - void test01() { // Check for required typedefs diff --git a/libstdc++-v3/testsuite/20_util/is_swappable/value.cc b/libstdc++-v3/testsuite/20_util/is_swappable/value.cc index ac875393158..6b3ee1857bd 100644 --- a/libstdc++-v3/testsuite/20_util/is_swappable/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_swappable/value.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } // Copyright (C) 2015-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/is_swappable/value.h b/libstdc++-v3/testsuite/20_util/is_swappable/value.h index c532c8323d1..210509a2e7b 100644 --- a/libstdc++-v3/testsuite/20_util/is_swappable/value.h +++ b/libstdc++-v3/testsuite/20_util/is_swappable/value.h @@ -16,12 +16,6 @@ // <http://www.gnu.org/licenses/>. #include <type_traits> -#include <testsuite_tr1.h> -#include <utility> -#include <array> -#include <tuple> -#include <queue> -#include <stack> #if defined(test_std_is_swappable) # ifndef __cpp_lib_is_swappable @@ -41,6 +35,13 @@ using is_swappable = std::__is_swappable<T>; "need to be defined" #endif +#include <utility> +#include <array> +#include <tuple> +#include <queue> +#include <stack> +#include <testsuite_tr1.h> + namespace funny { struct F {}; void swap(F&, F&) = delete; diff --git a/libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc index 1f3bc6b12d8..c1c90aef5a2 100644 --- a/libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc +++ b/libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc @@ -19,12 +19,6 @@ #include <type_traits> -#ifndef __cpp_lib_is_swappable -# error "Feature-test macro for is_swappable_with missing" -#elif __cpp_lib_is_swappable != 201603 -# error "Feature-test macro for is_swappable_with has wrong value" -#endif - namespace std { typedef short test_type; diff --git a/libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/typedefs.cc index d7354e74351..8fc3b9a5d52 100644 --- a/libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/typedefs.cc +++ b/libstdc++-v3/testsuite/20_util/is_swappable_with/requirements/typedefs.cc @@ -19,12 +19,6 @@ #include <type_traits> -#ifndef __cpp_lib_is_swappable -# error "Feature-test macro for is_swappable_with missing" -#elif __cpp_lib_is_swappable != 201603 -# error "Feature-test macro for is_swappable_with has wrong value" -#endif - void test01() { // Check for required typedefs diff --git a/libstdc++-v3/testsuite/20_util/is_swappable_with/value.cc b/libstdc++-v3/testsuite/20_util/is_swappable_with/value.cc index c5294485ae1..51ee09abf91 100644 --- a/libstdc++-v3/testsuite/20_util/is_swappable_with/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_swappable_with/value.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } // Copyright (C) 2016-2023 Free Software Foundation, Inc. // @@ -18,7 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <type_traits> -#include <testsuite_tr1.h> #ifndef __cpp_lib_is_swappable # error "Feature-test macro for is_swappable_with missing" @@ -26,6 +26,8 @@ # error "Feature-test macro for is_swappable_with has wrong value" #endif +#include <testsuite_tr1.h> + namespace funny { struct T0 {}; diff --git a/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc b/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc index 495e1e9d89e..7c0b422746e 100644 --- a/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc +++ b/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2019-2023 Free Software Foundation, Inc. // @@ -18,7 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <type_traits> -#include <testsuite_tr1.h> #ifndef __cpp_lib_bounded_array_traits # error "Feature test macro for is_unbounded_array is missing" @@ -26,6 +26,8 @@ # error "Feature test macro for is_unbounded_array has wrong value" #endif +#include <testsuite_tr1.h> + void test01() { using std::is_unbounded_array; diff --git a/libstdc++-v3/testsuite/20_util/move_only_function/cons.cc b/libstdc++-v3/testsuite/20_util/move_only_function/cons.cc index ffe2398f80c..5498f42add5 100644 --- a/libstdc++-v3/testsuite/20_util/move_only_function/cons.cc +++ b/libstdc++-v3/testsuite/20_util/move_only_function/cons.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++23 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/move_only_function/version.cc b/libstdc++-v3/testsuite/20_util/move_only_function/version.cc index b051a63f729..7721141b8b4 100644 --- a/libstdc++-v3/testsuite/20_util/move_only_function/version.cc +++ b/libstdc++-v3/testsuite/20_util/move_only_function/version.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++23 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc b/libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc index a969ca5077e..dd392e2ec00 100644 --- a/libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc +++ b/libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <optional> diff --git a/libstdc++-v3/testsuite/20_util/optional/requirements.cc b/libstdc++-v3/testsuite/20_util/optional/requirements.cc index 3edfb5cf9b1..cb523c8dc16 100644 --- a/libstdc++-v3/testsuite/20_util/optional/requirements.cc +++ b/libstdc++-v3/testsuite/20_util/optional/requirements.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++17 } } +// { dg-add-options no_pch } // Copyright (C) 2013-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/optional/version.cc b/libstdc++-v3/testsuite/20_util/optional/version.cc index 2fd52f7c194..7e63d425796 100644 --- a/libstdc++-v3/testsuite/20_util/optional/version.cc +++ b/libstdc++-v3/testsuite/20_util/optional/version.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/owner_less/void.cc b/libstdc++-v3/testsuite/20_util/owner_less/void.cc index 3c86eda9e65..e5de0bf8de6 100644 --- a/libstdc++-v3/testsuite/20_util/owner_less/void.cc +++ b/libstdc++-v3/testsuite/20_util/owner_less/void.cc @@ -17,13 +17,14 @@ // { dg-do compile { target c++11 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <memory> #if __cplusplus >= 201402L // The feature-test macro is only defined for C++14 and later. # if __cpp_lib_transparent_operators < 201510 -# error "__cpp_lib_transparent_operators < 201510" +# error "__cpp_lib_transparent_operators < 201510 in <memory>" # endif #endif diff --git a/libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc b/libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc index 2df559bd0dd..877c1c93b46 100644 --- a/libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc +++ b/libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc @@ -16,16 +16,18 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <type_traits> -#include <testsuite_tr1.h> #ifndef __cpp_lib_reference_from_temporary -# error "Feature test macro for reference_from_temporary is missing in <version>" +# error "Feature test macro for reference_from_temporary is missing in <type_traits>" #elif __cpp_lib_reference_from_temporary < 202202L -# error "Feature test macro for reference_from_temporary has wrong value in <version>" +# error "Feature test macro for reference_from_temporary has wrong value in <type_traits>" #endif +#include <testsuite_tr1.h> + void test01() { using std::reference_constructs_from_temporary; diff --git a/libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc b/libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc index 7f42c190961..761b9505c34 100644 --- a/libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc +++ b/libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc index 6f790ac6c8e..e972f8af9e5 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc @@ -2,6 +2,7 @@ // { dg-require-effective-target gthreads } // { dg-additional-options "-pthread" { target pthread } } // { dg-add-options libatomic } +// { dg-add-options no_pch } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc index 534036287fc..5062a3d1ebf 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++20 } } +// { dg-add-options no_pch } // C++20 20.11.3.7 shared_ptr Creation [util.smartptr.shared.create] diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc index d78ee698eb1..5b8af326b67 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc @@ -1,6 +1,7 @@ // { dg-options "-fno-lifetime-dse -O0" } // { dg-do run { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } // C++20 20.11.3.7 shared_ptr Creation [util.smartptr.shared.create] diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc index 9c0fc5dda39..bc83c332564 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc @@ -1,5 +1,6 @@ // { dg-do preprocess { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } // C++20 20.11.3.7 shared_ptr Creation [util.smartptr.shared.create] diff --git a/libstdc++-v3/testsuite/20_util/time_point_cast/rounding.cc b/libstdc++-v3/testsuite/20_util/time_point_cast/rounding.cc index ae1ee684a50..43d902f3768 100644 --- a/libstdc++-v3/testsuite/20_util/time_point_cast/rounding.cc +++ b/libstdc++-v3/testsuite/20_util/time_point_cast/rounding.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <chrono> diff --git a/libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc b/libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc index e51ea4dbbbe..86b01ee3053 100644 --- a/libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc +++ b/libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <charconv> diff --git a/libstdc++-v3/testsuite/20_util/to_chars/result.cc b/libstdc++-v3/testsuite/20_util/to_chars/result.cc index 5284680460a..c1010534e80 100644 --- a/libstdc++-v3/testsuite/20_util/to_chars/result.cc +++ b/libstdc++-v3/testsuite/20_util/to_chars/result.cc @@ -1,12 +1,14 @@ // { dg-do run { target c++26 } } +// { dg-add-options no_pch } #include <charconv> -#include <testsuite_hooks.h> #if defined(__cpp_lib_to_chars) && __cpp_lib_to_chars < 202306L # error "Feature-test macro for std::to_chars has wrong value in <charconv>" #endif +#include <testsuite_hooks.h> + void test_result() { diff --git a/libstdc++-v3/testsuite/20_util/to_chars/version.cc b/libstdc++-v3/testsuite/20_util/to_chars/version.cc index df1804e1ff4..41bb35b93f6 100644 --- a/libstdc++-v3/testsuite/20_util/to_chars/version.cc +++ b/libstdc++-v3/testsuite/20_util/to_chars/version.cc @@ -1,5 +1,6 @@ // { dg-do preprocess { target c++23 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/to_underlying/1.cc b/libstdc++-v3/testsuite/20_util/to_underlying/1.cc index c970238b297..520f3f4405b 100644 --- a/libstdc++-v3/testsuite/20_util/to_underlying/1.cc +++ b/libstdc++-v3/testsuite/20_util/to_underlying/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <utility> diff --git a/libstdc++-v3/testsuite/20_util/to_underlying/version.cc b/libstdc++-v3/testsuite/20_util/to_underlying/version.cc index f800d7c09e5..0002eb8985c 100644 --- a/libstdc++-v3/testsuite/20_util/to_underlying/version.cc +++ b/libstdc++-v3/testsuite/20_util/to_underlying/version.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/tuple/apply/1.cc b/libstdc++-v3/testsuite/20_util/tuple/apply/1.cc index 39678408b83..7863e283a61 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/apply/1.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/apply/1.cc @@ -16,14 +16,16 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++17 } } +// { dg-add-options no_pch } #include <tuple> -#include <testsuite_hooks.h> #if __cpp_lib_apply < 201603 # error "__cpp_lib_apply < 201603" #endif +#include <testsuite_hooks.h> + void test01() { diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc b/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc index 8f672c96d02..5e843038f75 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc @@ -1,6 +1,7 @@ // { dg-do compile { target c++20 } } // FIXME [!HOSTED]: avoidable std::allocator usage // { dg-require-effective-target hosted } +// { dg-add-options no_pch } // // Copyright (C) 2019-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/1.cc b/libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/1.cc index bacb401b957..a1fac7d34de 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/1.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/1.cc @@ -16,16 +16,18 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++17 } } +// { dg-add-options no_pch } #include <tuple> -#include <testsuite_hooks.h> #ifndef __cpp_lib_make_from_tuple -# error "Feature-test macro for make_from_tuple missing." +# error "Feature-test macro for make_from_tuple missing in <tuple>" #elif __cpp_lib_make_from_tuple < 201606 -# error "Feature-test macro for make_from_tuple has the wrong value." +# error "Feature-test macro for make_from_tuple has the wrong value in <tuple>" #endif +#include <testsuite_hooks.h> + template <class T, class U, class V> struct ThreeParam { diff --git a/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc b/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc index 774968d87e5..1d04ab03abd 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc @@ -2,15 +2,17 @@ // { dg-do run { target c++23 } } // FIXME [!HOSTED]: avoidable std::allocator usage // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <tuple> -#include <memory> -#include <testsuite_hooks.h> #if __cpp_lib_ranges_zip != 202110L # error "Feature-test macro __cpp_lib_ranges_zip has wrong value in <tuple>" #endif +#include <memory> +#include <testsuite_hooks.h> + using std::tuple; using std::pair; using std::allocator; diff --git a/libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc b/libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc index 79624288c21..78e5ef8fae9 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++14 } } +// { dg-add-options no_pch } // Copyright (C) 2014-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc index 02cbd929c94..3c6957c5531 100644 --- a/libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc +++ b/libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc index 37ef1b7356a..8976e6be0c8 100644 --- a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc +++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc @@ -2,6 +2,7 @@ // { dg-do run { target c++20 } } // { dg-xfail-run-if "AIX operator new" { powerpc-ibm-aix* } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } // Copyright (C) 2020-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/unreachable/1.cc b/libstdc++-v3/testsuite/20_util/unreachable/1.cc index 98d801b3969..f0a93cdaa85 100644 --- a/libstdc++-v3/testsuite/20_util/unreachable/1.cc +++ b/libstdc++-v3/testsuite/20_util/unreachable/1.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <utility> diff --git a/libstdc++-v3/testsuite/20_util/unreachable/version.cc b/libstdc++-v3/testsuite/20_util/unreachable/version.cc index b64a6cd82c0..66753f0232e 100644 --- a/libstdc++-v3/testsuite/20_util/unreachable/version.cc +++ b/libstdc++-v3/testsuite/20_util/unreachable/version.cc @@ -1,4 +1,5 @@ // { dg-do preprocess { target c++23 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc b/libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc index d3a33f842ca..ae9643b1349 100644 --- a/libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc +++ b/libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <type_traits> diff --git a/libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc b/libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc index e2e91fdb34b..12090e132d2 100644 --- a/libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc +++ b/libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/variant/constexpr.cc b/libstdc++-v3/testsuite/20_util/variant/constexpr.cc index 55fac029aaf..886fd2dab5c 100644 --- a/libstdc++-v3/testsuite/20_util/variant/constexpr.cc +++ b/libstdc++-v3/testsuite/20_util/variant/constexpr.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <variant> diff --git a/libstdc++-v3/testsuite/20_util/variant/version.cc b/libstdc++-v3/testsuite/20_util/variant/version.cc index de04c5eb294..fd251dd3768 100644 --- a/libstdc++-v3/testsuite/20_util/variant/version.cc +++ b/libstdc++-v3/testsuite/20_util/variant/version.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/variant/visit_inherited.cc b/libstdc++-v3/testsuite/20_util/variant/visit_inherited.cc index ade83096475..76e881dec75 100644 --- a/libstdc++-v3/testsuite/20_util/variant/visit_inherited.cc +++ b/libstdc++-v3/testsuite/20_util/variant/visit_inherited.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <variant> diff --git a/libstdc++-v3/testsuite/20_util/void_t/1.cc b/libstdc++-v3/testsuite/20_util/void_t/1.cc index bff88a2898a..b18ee44e3a1 100644 --- a/libstdc++-v3/testsuite/20_util/void_t/1.cc +++ b/libstdc++-v3/testsuite/20_util/void_t/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <type_traits> diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc index 3c88b7c163b..edef8c9f911 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <string> @@ -10,7 +11,6 @@ #endif #endif - #include <cstring> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc index 8c60708a3d3..7822c89497b 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target cxx11_abi } +// { dg-add-options no_pch } #include <string> diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc index 40cea53b590..44c8391ebc2 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target cxx11_abi } +// { dg-add-options no_pch } #include <string> diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc b/libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc index b85496a16f1..23aae3c4dd2 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2018-2023 Free Software Foundation, Inc. // @@ -18,7 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <string> -#include <testsuite_hooks.h> #ifndef __cpp_lib_erase_if # error "Feature-test macro for erase_if missing in <string>" @@ -26,6 +26,8 @@ # error "Feature-test macro for erase_if has wrong value in <string>" #endif +#include <testsuite_hooks.h> + void test01() { diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc index 3837c896f6b..727e9601271 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc @@ -1,9 +1,27 @@ // { dg-do run { target c++11 } } // { dg-require-namedlocale "de_DE.ISO8859-15" } +// { dg-add-options no_pch } // C++11 21.5 Numeric Conversions [string.conversions] #include <string> + +#if __cplusplus > 202302L + +#ifndef __cpp_lib_to_string +# error "Feature-test macro for std::to_string missing in <string>" +#elif __cpp_lib_to_string != 202306L +# error "Feature-test macro for std::to_string has wrong value in <string>" +#endif + +#else + +#ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined for C++23" +#endif + +#endif + #include <format> #include <limits> #include <locale> @@ -14,24 +32,11 @@ namespace test { // Canonical version of std::to_string(double) as specified in the standard. -#if __cplusplus > 202302L - -#ifndef __cpp_lib_to_string -# error "Feature-test macro for std::to_string missing in <string>" -#elif __cpp_lib_to_string != 202306L -# error "Feature-test macro for std::to_string has wrong value in <string>" -#endif - +#if __cpp_lib_to_string static std::string to_string(float val) { return std::format("{}", val); } static std::string to_string(double val) { return std::format("{}", val); } static std::string to_string(long double val) { return std::format("{}", val); } - #else - -#ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined for C++23" -#endif - static std::string to_string(double val) { std::string str(100, '9'); diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/version.cc b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/version.cc index 630e06fff8f..669becc36f1 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/version.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/version.cc @@ -1,4 +1,6 @@ // { dg-do compile } +// { dg-add-options no_pch } + #include <version> #if __cplusplus > 202302L diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/version.cc b/libstdc++-v3/testsuite/21_strings/basic_string/version.cc index 865b17905ff..71dd4dfb67f 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/version.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/version.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++17 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc index f59cad37722..629af6a9971 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } // Copyright (C) 2021-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc index 2f1b6848b76..c351d306180 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } // Copyright (C) 2021-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc index b91fea03c62..92919155cb3 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <string_view> diff --git a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc index 0db1673d8d3..34fb51a096b 100644 --- a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc +++ b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } // Copyright (C) 2017-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc index 805b84dea58..efddcb23fab 100644 --- a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc +++ b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2017-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc index 908163a2635..1a6fde2bbb7 100644 --- a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc +++ b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++17 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc b/libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc index e4029bdc06b..ff773fd9fab 100644 --- a/libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc +++ b/libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++20 } } -// +// { dg-add-options no_pch } + // Copyright (C) 2019-2023 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/23_containers/array/creation/1.cc b/libstdc++-v3/testsuite/23_containers/array/creation/1.cc index 9c2eedb5c15..1e158abc275 100644 --- a/libstdc++-v3/testsuite/23_containers/array/creation/1.cc +++ b/libstdc++-v3/testsuite/23_containers/array/creation/1.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2019-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/23_containers/array/creation/2.cc b/libstdc++-v3/testsuite/23_containers/array/creation/2.cc index be83073dc3d..a192073bdd4 100644 --- a/libstdc++-v3/testsuite/23_containers/array/creation/2.cc +++ b/libstdc++-v3/testsuite/23_containers/array/creation/2.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2019-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_c++17.cc b/libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_c++17.cc index 266df756db9..234a4f01a8b 100644 --- a/libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_c++17.cc +++ b/libstdc++-v3/testsuite/23_containers/array/element_access/constexpr_c++17.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } // Copyright (C) 2011-2023 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc b/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc index 6acf1837a68..07a64003c8e 100644 --- a/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc +++ b/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++20 } } -// +// { dg-add-options no_pch } + // Copyright (C) 2019-2023 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc b/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc index 7bccd1f79aa..5d06f2dda93 100644 --- a/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc +++ b/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++17 } } -// +// { dg-add-options no_pch } + // Copyright (C) 2019-2023 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc b/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc index 889d4aa2e0b..bf64d298579 100644 --- a/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/array/tuple_interface/get_neg.cc @@ -26,6 +26,6 @@ int n1 = std::get<1>(a); int n2 = std::get<1>(std::move(a)); int n3 = std::get<1>(ca); -// { dg-error "static assertion failed" "" { target *-*-* } 389 } -// { dg-error "static assertion failed" "" { target *-*-* } 398 } -// { dg-error "static assertion failed" "" { target *-*-* } 407 } +// { dg-error "static assertion failed" "" { target *-*-* } 391 } +// { dg-error "static assertion failed" "" { target *-*-* } 400 } +// { dg-error "static assertion failed" "" { target *-*-* } 409 } diff --git a/libstdc++-v3/testsuite/23_containers/deque/erasure.cc b/libstdc++-v3/testsuite/23_containers/deque/erasure.cc index 30885d1476a..317ce50fc57 100644 --- a/libstdc++-v3/testsuite/23_containers/deque/erasure.cc +++ b/libstdc++-v3/testsuite/23_containers/deque/erasure.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2018-2023 Free Software Foundation, Inc. // @@ -18,7 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <deque> -#include <testsuite_hooks.h> #ifndef __cpp_lib_erase_if # error "Feature-test macro for erase_if missing in <deque>" @@ -26,6 +26,8 @@ # error "Feature-test macro for erase_if has wrong value in <deque>" #endif +#include <testsuite_hooks.h> + void test01() { diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc b/libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc index 2a73b98a293..973a6323f05 100644 --- a/libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc +++ b/libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2018-2023 Free Software Foundation, Inc. // @@ -18,7 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <forward_list> -#include <testsuite_hooks.h> #ifndef __cpp_lib_erase_if # error "Feature-test macro for erase_if missing in <forward_list>" @@ -26,6 +26,8 @@ # error "Feature-test macro for erase_if has wrong value in <forward_list>" #endif +#include <testsuite_hooks.h> + void test01() { diff --git a/libstdc++-v3/testsuite/23_containers/list/erasure.cc b/libstdc++-v3/testsuite/23_containers/list/erasure.cc index d6b06b13326..5d32098c17d 100644 --- a/libstdc++-v3/testsuite/23_containers/list/erasure.cc +++ b/libstdc++-v3/testsuite/23_containers/list/erasure.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2018-2023 Free Software Foundation, Inc. // @@ -18,7 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <list> -#include <testsuite_hooks.h> #ifndef __cpp_lib_erase_if # error "Feature-test macro for erase_if missing in <list>" @@ -26,6 +26,8 @@ # error "Feature-test macro for erase_if has wrong value in <list>" #endif +#include <testsuite_hooks.h> + void test01() { diff --git a/libstdc++-v3/testsuite/23_containers/map/erasure.cc b/libstdc++-v3/testsuite/23_containers/map/erasure.cc index 078d1297404..61090eb810e 100644 --- a/libstdc++-v3/testsuite/23_containers/map/erasure.cc +++ b/libstdc++-v3/testsuite/23_containers/map/erasure.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2018-2023 Free Software Foundation, Inc. // @@ -18,8 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <map> -#include <string> -#include <testsuite_hooks.h> #ifndef __cpp_lib_erase_if # error "Feature-test macro for erase_if missing in <map>" @@ -27,6 +26,9 @@ # error "Feature-test macro for erase_if has wrong value in <map>" #endif +#include <string> +#include <testsuite_hooks.h> + auto is_odd_pair = [](const std::pair<const int, std::string>& p) { return p.first % 2 != 0; diff --git a/libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc b/libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc index 334ef00b79e..1a1009e34b3 100644 --- a/libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc +++ b/libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <queue> diff --git a/libstdc++-v3/testsuite/23_containers/set/erasure.cc b/libstdc++-v3/testsuite/23_containers/set/erasure.cc index a2bbf3ad603..8e629fa9e0c 100644 --- a/libstdc++-v3/testsuite/23_containers/set/erasure.cc +++ b/libstdc++-v3/testsuite/23_containers/set/erasure.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2018-2023 Free Software Foundation, Inc. // @@ -18,7 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <set> -#include <testsuite_hooks.h> #ifndef __cpp_lib_erase_if # error "Feature-test macro for erase_if missing in <set>" @@ -26,6 +26,8 @@ # error "Feature-test macro for erase_if has wrong value in <set>" #endif +#include <testsuite_hooks.h> + auto is_odd = [](const int i) { return i % 2 != 0; }; void diff --git a/libstdc++-v3/testsuite/23_containers/span/1.cc b/libstdc++-v3/testsuite/23_containers/span/1.cc index 40bb7a0b1f3..c1c0a7e619b 100644 --- a/libstdc++-v3/testsuite/23_containers/span/1.cc +++ b/libstdc++-v3/testsuite/23_containers/span/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <span> diff --git a/libstdc++-v3/testsuite/23_containers/span/2.cc b/libstdc++-v3/testsuite/23_containers/span/2.cc index 533d1721a53..2931c0b14ed 100644 --- a/libstdc++-v3/testsuite/23_containers/span/2.cc +++ b/libstdc++-v3/testsuite/23_containers/span/2.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc b/libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc index 77240952909..8df4d33b729 100644 --- a/libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc +++ b/libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <stack> diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc index 696fc05afa4..201145a651c 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2018-2023 Free Software Foundation, Inc. // @@ -18,8 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <unordered_map> -#include <string> -#include <testsuite_hooks.h> #ifndef __cpp_lib_erase_if # error "Feature-test macro for erase_if missing in <unordered_map>" @@ -27,6 +26,9 @@ # error "Feature-test macro for erase_if has wrong value in <unordered_map>" #endif +#include <string> +#include <testsuite_hooks.h> + auto is_odd_pair = [](const std::pair<const int, std::string>& p) { return p.first % 2 != 0; diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc index cfeca606c55..cf6ee50f9ef 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++20 } } +// { dg-add-options no_pch } #include <unordered_map> diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc index 2384136e769..7a298b7a11c 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2018-2023 Free Software Foundation, Inc. // @@ -18,7 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <unordered_set> -#include <testsuite_hooks.h> #ifndef __cpp_lib_erase_if # error "Feature-test macro for erase_if missing in <unordered_set>" @@ -26,6 +26,8 @@ # error "Feature-test macro for erase_if has wrong value in <unordered_set>" #endif +#include <testsuite_hooks.h> + void test01() { diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc index b2f13990b56..5da7c31cc52 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++20 } } +// { dg-add-options no_pch } #include <unordered_set> diff --git a/libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc index 9a784583304..7bf86511240 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } // { dg-xfail-if "not supported" { debug_mode } } #include <vector> diff --git a/libstdc++-v3/testsuite/23_containers/vector/erasure.cc b/libstdc++-v3/testsuite/23_containers/vector/erasure.cc index 2135b6b8fb3..780a9ca54ba 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/erasure.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/erasure.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++20 } } +// { dg-add-options no_pch } // Copyright (C) 2018-2023 Free Software Foundation, Inc. // @@ -18,7 +19,6 @@ // <http://www.gnu.org/licenses/>. #include <vector> -#include <testsuite_hooks.h> #ifndef __cpp_lib_erase_if # error "Feature-test macro for erase_if missing in <vector>" @@ -26,6 +26,8 @@ # error "Feature-test macro for erase_if has wrong value in <vector>" #endif +#include <testsuite_hooks.h> + void test01() { diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc index 50a10d217f6..ef11ebbbfc6 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc @@ -1,5 +1,6 @@ // { dg-do preprocess { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc index ed2b6488516..24d208cff2b 100644 --- a/libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <iterator> diff --git a/libstdc++-v3/testsuite/25_algorithms/clamp/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/clamp/constexpr.cc index 92db5388595..5fcfb1e2e62 100644 --- a/libstdc++-v3/testsuite/25_algorithms/clamp/constexpr.cc +++ b/libstdc++-v3/testsuite/25_algorithms/clamp/constexpr.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } // Copyright (C) 2016-2023 Free Software Foundation, Inc. // @@ -18,13 +19,14 @@ // <http://www.gnu.org/licenses/>. #include <algorithm> -#include <functional> #ifndef __cpp_lib_clamp -# error "Feature-test macro for clamp missing" +# error "Feature-test macro for clamp missing in <algorithm>" #elif __cpp_lib_clamp != 201603 -# error "Feature-test macro for clamp has wrong value" +# error "Feature-test macro for clamp has wrong value in <algorithm>" #endif +#include <functional> + static_assert(std::clamp(2, 0, 1) == 1); static_assert(std::clamp(2, 1, 0, std::greater<int>()) == 1); diff --git a/libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc index f696e135477..8cbe6c14835 100644 --- a/libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc @@ -21,12 +21,6 @@ #include <functional> #include <testsuite_api.h> -#ifndef __cpp_lib_clamp -# error "Feature-test macro for clamp missing" -#elif __cpp_lib_clamp != 201603 -# error "Feature-test macro for clamp has wrong value" -#endif - namespace std { using __gnu_test::NonDefaultConstructible; diff --git a/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc b/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc index d591b11bd5f..258b7495a5d 100644 --- a/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc +++ b/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc index 0774032b0a0..0f4143ea794 100644 --- a/libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc +++ b/libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <algorithm> diff --git a/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc b/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc index b08a0651174..d5cbc225412 100644 --- a/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc +++ b/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc @@ -1,13 +1,15 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <algorithm> -#include <ranges> -#include <testsuite_iterators.h> #if __cpp_lib_ranges_fold != 202207L # error "Feature-test macro __cpp_lib_ranges_fold has wrong value in <algorithm>" #endif +#include <ranges> +#include <testsuite_iterators.h> + namespace ranges = std::ranges; namespace views = std::views; diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-2.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-2.cc index bac78011837..f8dc94f640d 100644 --- a/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-2.cc @@ -17,6 +17,7 @@ // { dg-do preprocess { target c++17 } } // { dg-require-effective-target tbb_backend } +// { dg-add-options no_pch } #include <numeric> diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc index 27ae1e42c5b..000b2e0a144 100644 --- a/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc +++ b/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-3.cc @@ -17,6 +17,7 @@ // { dg-do preprocess { target c++17 } } // { dg-require-effective-target tbb_backend } +// { dg-add-options no_pch } #include <execution> diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc index a397c3db8ae..c128695a309 100644 --- a/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc +++ b/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc @@ -17,6 +17,7 @@ // { dg-do preprocess { target c++17 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-5.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-5.cc index da5b73e5859..7b9ae1bc75e 100644 --- a/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-5.cc +++ b/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-5.cc @@ -17,6 +17,7 @@ // { dg-do preprocess { target c++17 } } // { dg-require-effective-target tbb_backend } +// { dg-add-options no_pch } #include <memory> diff --git a/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test.cc b/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test.cc index 4d758eb9292..da593562428 100644 --- a/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test.cc +++ b/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test.cc @@ -17,6 +17,7 @@ // { dg-do preprocess { target c++17 } } // { dg-require-effective-target tbb_backend } +// { dg-add-options no_pch } #include <algorithm> diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc index 034019b3da2..37b42957e37 100644 --- a/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc +++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <bit> diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc index c179944e6e8..aa59604d186 100644 --- a/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc +++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc index dc7249df68a..b488a8b2df2 100644 --- a/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc +++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <bit> diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc index 296adf75682..079780a81b0 100644 --- a/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc +++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/26_numerics/bit/header-2.cc b/libstdc++-v3/testsuite/26_numerics/bit/header-2.cc index 07d0865214e..94db9e15eb6 100644 --- a/libstdc++-v3/testsuite/26_numerics/bit/header-2.cc +++ b/libstdc++-v3/testsuite/26_numerics/bit/header-2.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/26_numerics/bit/header.cc b/libstdc++-v3/testsuite/26_numerics/bit/header.cc index 36207bb5149..ecb6e1bdb11 100644 --- a/libstdc++-v3/testsuite/26_numerics/bit/header.cc +++ b/libstdc++-v3/testsuite/26_numerics/bit/header.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <bit> diff --git a/libstdc++-v3/testsuite/26_numerics/complex/1.cc b/libstdc++-v3/testsuite/26_numerics/complex/1.cc index 229926cd82c..f4d7bce2335 100644 --- a/libstdc++-v3/testsuite/26_numerics/complex/1.cc +++ b/libstdc++-v3/testsuite/26_numerics/complex/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do preprocess { target c++20 } } +// { dg-add-options no_pch } #include <complex> diff --git a/libstdc++-v3/testsuite/26_numerics/complex/2.cc b/libstdc++-v3/testsuite/26_numerics/complex/2.cc index 6276e2de405..2b1a5a932f4 100644 --- a/libstdc++-v3/testsuite/26_numerics/complex/2.cc +++ b/libstdc++-v3/testsuite/26_numerics/complex/2.cc @@ -17,6 +17,7 @@ // { dg-do preprocess { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/26_numerics/endian/2.cc b/libstdc++-v3/testsuite/26_numerics/endian/2.cc index 2822be35563..24a40e47cf4 100644 --- a/libstdc++-v3/testsuite/26_numerics/endian/2.cc +++ b/libstdc++-v3/testsuite/26_numerics/endian/2.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <bit> diff --git a/libstdc++-v3/testsuite/26_numerics/endian/3.cc b/libstdc++-v3/testsuite/26_numerics/endian/3.cc index 7e02cab4086..5f6ad56600c 100644 --- a/libstdc++-v3/testsuite/26_numerics/endian/3.cc +++ b/libstdc++-v3/testsuite/26_numerics/endian/3.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/26_numerics/gcd/1.cc b/libstdc++-v3/testsuite/26_numerics/gcd/1.cc index 1475a5a7348..3083682bd1a 100644 --- a/libstdc++-v3/testsuite/26_numerics/gcd/1.cc +++ b/libstdc++-v3/testsuite/26_numerics/gcd/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <numeric> diff --git a/libstdc++-v3/testsuite/26_numerics/lcm/1.cc b/libstdc++-v3/testsuite/26_numerics/lcm/1.cc index 18828a7d403..1fa16af8316 100644 --- a/libstdc++-v3/testsuite/26_numerics/lcm/1.cc +++ b/libstdc++-v3/testsuite/26_numerics/lcm/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-add-options no_pch } #include <numeric> diff --git a/libstdc++-v3/testsuite/26_numerics/lerp/1.cc b/libstdc++-v3/testsuite/26_numerics/lerp/1.cc index 65b715437f5..8aedc47f1ce 100644 --- a/libstdc++-v3/testsuite/26_numerics/lerp/1.cc +++ b/libstdc++-v3/testsuite/26_numerics/lerp/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++20 } } +// { dg-add-options no_pch } #include <cmath> diff --git a/libstdc++-v3/testsuite/26_numerics/lerp/version.cc b/libstdc++-v3/testsuite/26_numerics/lerp/version.cc index 63206ba8e3f..a6a57733a0f 100644 --- a/libstdc++-v3/testsuite/26_numerics/lerp/version.cc +++ b/libstdc++-v3/testsuite/26_numerics/lerp/version.cc @@ -1,5 +1,6 @@ // { dg-do preprocess { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc b/libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc index 0f8a16e656e..51218f38f2d 100644 --- a/libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc +++ b/libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++20 } } +// { dg-add-options no_pch } #include <numeric> diff --git a/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc b/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc index 63206ba8e3f..a6a57733a0f 100644 --- a/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc +++ b/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc @@ -1,5 +1,6 @@ // { dg-do preprocess { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/26_numerics/numbers/1.cc b/libstdc++-v3/testsuite/26_numerics/numbers/1.cc index f41551c2148..8443efba086 100644 --- a/libstdc++-v3/testsuite/26_numerics/numbers/1.cc +++ b/libstdc++-v3/testsuite/26_numerics/numbers/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <numbers> diff --git a/libstdc++-v3/testsuite/26_numerics/numbers/2.cc b/libstdc++-v3/testsuite/26_numerics/numbers/2.cc index d9e791e2843..d55b44c0257 100644 --- a/libstdc++-v3/testsuite/26_numerics/numbers/2.cc +++ b/libstdc++-v3/testsuite/26_numerics/numbers/2.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/char/1.cc index 749451a4c81..0551f260ade 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/char/1.cc @@ -1,5 +1,6 @@ // { dg-options "-fno-inline" } // { dg-do run { target c++26 } } +// { dg-add-options no_pch } // { dg-additional-files "filebuf_members-1.txt" } #include <fstream> diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/version.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/version.cc index 46c400d12ce..10a559859e3 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/version.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/version.cc @@ -1,5 +1,6 @@ // { dg-do preprocess { target c++26 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc index 2e99707df86..c34882fa4e9 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/char/noreplace.cc @@ -1,4 +1,5 @@ // { dg-do run { xfail *-*-vxworks* } } +// { dg-add-options no_pch } #include <ios> diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc index ddb7fd69160..55c7ad4876f 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc @@ -1,4 +1,5 @@ // { dg-do run { xfail *-*-vxworks* } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc b/libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc index d48ad090086..01ce127fbda 100644 --- a/libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target cxx11_abi } +// { dg-add-options no_pch } #include <syncstream> diff --git a/libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc index ad1ab383b1c..a973c448404 100644 --- a/libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc @@ -18,6 +18,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target cxx11_abi } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc index d48ad090086..01ce127fbda 100644 --- a/libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target cxx11_abi } +// { dg-add-options no_pch } #include <syncstream> diff --git a/libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc index ad1ab383b1c..a973c448404 100644 --- a/libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc +++ b/libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc @@ -18,6 +18,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target cxx11_abi } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/27_io/spanstream/1.cc b/libstdc++-v3/testsuite/27_io/spanstream/1.cc index bd45a38ae3c..4f384dbdd54 100644 --- a/libstdc++-v3/testsuite/27_io/spanstream/1.cc +++ b/libstdc++-v3/testsuite/27_io/spanstream/1.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <spanstream> diff --git a/libstdc++-v3/testsuite/27_io/spanstream/version.cc b/libstdc++-v3/testsuite/27_io/spanstream/version.cc index 7434e3b292e..4e01113ff98 100644 --- a/libstdc++-v3/testsuite/27_io/spanstream/version.cc +++ b/libstdc++-v3/testsuite/27_io/spanstream/version.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++23 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc b/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc index 809c6c02443..a852c42f397 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc @@ -17,6 +17,7 @@ // { dg-do run { target c++20 } } // { dg-require-thread-fence "" } +// { dg-add-options no_pch } #include <atomic> diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc b/libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc index 8192f73dd47..372a63129ff 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <atomic> diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc index 3ded103b4fe..2fe83d58aaa 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc @@ -18,6 +18,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target gthreads } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <atomic> diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc index d07bdeece20..35bff9fcf7a 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc @@ -18,6 +18,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target gthreads } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc index 70d37d4d8cd..bcdb969b0c0 100644 --- a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc +++ b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++23 } } +// { dg-add-options no_pch } #include <stdatomic.h> diff --git a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc index 26fa76d0229..5feb08936d8 100644 --- a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc +++ b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc @@ -1,4 +1,5 @@ // { dg-do preprocess { target c++23 } } +// { dg-add-options no_pch } // <stdatomic.h> is not freestanding. // { dg-require-effective-target hosted } diff --git a/libstdc++-v3/testsuite/30_threads/barrier/1.cc b/libstdc++-v3/testsuite/30_threads/barrier/1.cc index e7f62a17f24..f1e981eb2f8 100644 --- a/libstdc++-v3/testsuite/30_threads/barrier/1.cc +++ b/libstdc++-v3/testsuite/30_threads/barrier/1.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target gthreads } +// { dg-add-options no_pch } #include <barrier> diff --git a/libstdc++-v3/testsuite/30_threads/barrier/2.cc b/libstdc++-v3/testsuite/30_threads/barrier/2.cc index d33597a0c40..d11eacc825b 100644 --- a/libstdc++-v3/testsuite/30_threads/barrier/2.cc +++ b/libstdc++-v3/testsuite/30_threads/barrier/2.cc @@ -18,6 +18,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target gthreads } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc b/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc index 8c173977bcb..03a867c3131 100644 --- a/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc +++ b/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <condition_variable> diff --git a/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc b/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc index 754bd912eb4..e698915ed6f 100644 --- a/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc +++ b/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/30_threads/jthread/1.cc b/libstdc++-v3/testsuite/30_threads/jthread/1.cc index e4063af3784..ff3d428efec 100644 --- a/libstdc++-v3/testsuite/30_threads/jthread/1.cc +++ b/libstdc++-v3/testsuite/30_threads/jthread/1.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++20 } } // { dg-require-gthreads "" } +// { dg-add-options no_pch } #include <thread> diff --git a/libstdc++-v3/testsuite/30_threads/jthread/version.cc b/libstdc++-v3/testsuite/30_threads/jthread/version.cc index 48241e981ea..00dfbd881a9 100644 --- a/libstdc++-v3/testsuite/30_threads/jthread/version.cc +++ b/libstdc++-v3/testsuite/30_threads/jthread/version.cc @@ -18,6 +18,7 @@ // { dg-do compile { target c++20 } } // { dg-require-gthreads "" } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/30_threads/latch/1.cc b/libstdc++-v3/testsuite/30_threads/latch/1.cc index 6f4da112012..ba0a95bad88 100644 --- a/libstdc++-v3/testsuite/30_threads/latch/1.cc +++ b/libstdc++-v3/testsuite/30_threads/latch/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <latch> diff --git a/libstdc++-v3/testsuite/30_threads/latch/2.cc b/libstdc++-v3/testsuite/30_threads/latch/2.cc index 4ebd9e67ec7..15e325bd950 100644 --- a/libstdc++-v3/testsuite/30_threads/latch/2.cc +++ b/libstdc++-v3/testsuite/30_threads/latch/2.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc b/libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc index c171afc6a7c..438b62f4814 100644 --- a/libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc +++ b/libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc @@ -1,5 +1,6 @@ // { dg-do compile { target c++17 } } // { dg-require-gthreads "" } +// { dg-add-options no_pch } // Copyright (C) 2017-2023 Free Software Foundation, Inc. // @@ -18,7 +19,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. - // NB: This file is for testing with NO OTHER INCLUDES. #include <mutex> diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/1.cc b/libstdc++-v3/testsuite/30_threads/semaphore/1.cc index f58e7f522df..ced3c6c700c 100644 --- a/libstdc++-v3/testsuite/30_threads/semaphore/1.cc +++ b/libstdc++-v3/testsuite/30_threads/semaphore/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <semaphore> diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/2.cc b/libstdc++-v3/testsuite/30_threads/semaphore/2.cc index 0bab29417ac..111984d8e0f 100644 --- a/libstdc++-v3/testsuite/30_threads/semaphore/2.cc +++ b/libstdc++-v3/testsuite/30_threads/semaphore/2.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/1.cc b/libstdc++-v3/testsuite/30_threads/stop_token/1.cc index 099c6c1c271..c2f1d8d4d76 100644 --- a/libstdc++-v3/testsuite/30_threads/stop_token/1.cc +++ b/libstdc++-v3/testsuite/30_threads/stop_token/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <stop_token> diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/2.cc b/libstdc++-v3/testsuite/30_threads/stop_token/2.cc index 754bd912eb4..e698915ed6f 100644 --- a/libstdc++-v3/testsuite/30_threads/stop_token/2.cc +++ b/libstdc++-v3/testsuite/30_threads/stop_token/2.cc @@ -17,6 +17,7 @@ // { dg-do compile { target c++20 } } // { dg-require-effective-target hosted } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/experimental/feat-char8_t.cc b/libstdc++-v3/testsuite/experimental/feat-char8_t.cc index c9b277a4626..05c1aa21541 100644 --- a/libstdc++-v3/testsuite/experimental/feat-char8_t.cc +++ b/libstdc++-v3/testsuite/experimental/feat-char8_t.cc @@ -1,5 +1,6 @@ // { dg-do preprocess { target c++11 } } // { dg-options "-fchar8_t" } +// { dg-add-options no_pch } #include <atomic> #include <filesystem> diff --git a/libstdc++-v3/testsuite/experimental/feat-cxx14.cc b/libstdc++-v3/testsuite/experimental/feat-cxx14.cc index effe382e06e..c009062b55c 100644 --- a/libstdc++-v3/testsuite/experimental/feat-cxx14.cc +++ b/libstdc++-v3/testsuite/experimental/feat-cxx14.cc @@ -1,4 +1,5 @@ // { dg-do preprocess { target c++14 } } +// { dg-add-options no_pch } #include <utility> #include <tuple> @@ -8,10 +9,12 @@ #include <chrono> #include <string> #include <complex> +#include <algorithm> #include <iomanip> #include <shared_mutex> #include <map> #include <set> +#include <iterator> #ifndef __cpp_lib_integer_sequence # error "__cpp_lib_integer_sequence" diff --git a/libstdc++-v3/testsuite/experimental/iterator/ostream_joiner.cc b/libstdc++-v3/testsuite/experimental/iterator/ostream_joiner.cc index 61af30058bb..ed2c4da91ed 100644 --- a/libstdc++-v3/testsuite/experimental/iterator/ostream_joiner.cc +++ b/libstdc++-v3/testsuite/experimental/iterator/ostream_joiner.cc @@ -16,10 +16,9 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++14 } } +// { dg-add-options no_pch } #include <experimental/iterator> -#include <sstream> -#include <testsuite_hooks.h> #ifndef __cpp_lib_experimental_ostream_joiner # error Feature-test macro is not defined. @@ -27,6 +26,9 @@ # error Feature-test macro has bad value. #endif +#include <sstream> +#include <testsuite_hooks.h> + using std::experimental::ostream_joiner; void diff --git a/libstdc++-v3/testsuite/experimental/numeric/gcd.cc b/libstdc++-v3/testsuite/experimental/numeric/gcd.cc index 505675d618c..6d447c36ed8 100644 --- a/libstdc++-v3/testsuite/experimental/numeric/gcd.cc +++ b/libstdc++-v3/testsuite/experimental/numeric/gcd.cc @@ -16,9 +16,9 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++14 } } +// { dg-add-options no_pch } #include <experimental/numeric> -#include <experimental/type_traits> #ifndef __cpp_lib_experimental_gcd_lcm # error "Feature-test macro for gcd missing" @@ -26,6 +26,8 @@ # error "Feature-test macro for gcd has wrong value" #endif +#include <experimental/type_traits> + using std::experimental::fundamentals_v2::gcd; using std::experimental::is_same_v; diff --git a/libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc b/libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc index 27a427f7ea8..4deb60a1422 100644 --- a/libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc +++ b/libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc @@ -1,7 +1,7 @@ // { dg-do run { target c++20 } } +// { dg-add-options no_pch } #include <experimental/scope> -#include <testsuite_hooks.h> #ifndef __cpp_lib_experimental_scope # error Feature-test macro is not defined. @@ -9,6 +9,8 @@ # error Feature-test macro has bad value. #endif +#include <testsuite_hooks.h> + using std::experimental::unique_resource; void diff --git a/libstdc++-v3/testsuite/std/concepts/1.cc b/libstdc++-v3/testsuite/std/concepts/1.cc index 0301b91e869..0d056d68de8 100644 --- a/libstdc++-v3/testsuite/std/concepts/1.cc +++ b/libstdc++-v3/testsuite/std/concepts/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do preprocess { target c++20 } } +// { dg-add-options no_pch } #include <concepts> diff --git a/libstdc++-v3/testsuite/std/concepts/2.cc b/libstdc++-v3/testsuite/std/concepts/2.cc index 53a1e006993..ebb054ac33b 100644 --- a/libstdc++-v3/testsuite/std/concepts/2.cc +++ b/libstdc++-v3/testsuite/std/concepts/2.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do preprocess { target c++20 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc index 48c7d38a0a3..2d36e0a4712 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc @@ -1,6 +1,12 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <ranges> + +#if __cpp_lib_ranges_as_const != 202207L +# error "Feature-test macro __cpp_lib_ranges_as_const has wrong value in <ranges>" +#endif + #include <algorithm> #include <span> #include <utility> @@ -8,10 +14,6 @@ #include <testsuite_hooks.h> #include <testsuite_iterators.h> -#if __cpp_lib_ranges_as_const != 202207L -# error "Feature-test macro __cpp_lib_ranges_as_const has wrong value in <ranges>" -#endif - namespace ranges = std::ranges; namespace views = std::views; diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc index 74223a699b6..48770077370 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc @@ -1,15 +1,17 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <ranges> -#include <algorithm> -#include <memory> -#include <testsuite_hooks.h> -#include <testsuite_iterators.h> #if __cpp_lib_ranges_as_rvalue != 202207L # error "Feature-test macro __cpp_lib_ranges_as_rvalue has wrong value in <ranges>" #endif +#include <algorithm> +#include <memory> +#include <testsuite_hooks.h> +#include <testsuite_iterators.h> + namespace ranges = std::ranges; namespace views = std::views; diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc index 7b8d4bacc0c..90eb608ca5e 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc @@ -1,15 +1,17 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <ranges> -#include <algorithm> -#include <vector> -#include <testsuite_hooks.h> -#include <testsuite_iterators.h> #if __cpp_lib_ranges_chunk != 202202L # error "Feature-test macro __cpp_lib_ranges_chunk has wrong value in <ranges>" #endif +#include <algorithm> +#include <vector> +#include <testsuite_hooks.h> +#include <testsuite_iterators.h> + namespace ranges = std::ranges; namespace views = std::views; diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc index 656c3c0d15e..5d1ce55b485 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc @@ -1,15 +1,17 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <ranges> -#include <algorithm> -#include <vector> -#include <testsuite_hooks.h> -#include <testsuite_iterators.h> #if __cpp_lib_ranges_chunk_by != 202202L # error "Feature-test macro __cpp_lib_ranges_chunk_by has wrong value in <ranges>" #endif +#include <algorithm> +#include <vector> +#include <testsuite_hooks.h> +#include <testsuite_iterators.h> + namespace ranges = std::ranges; namespace views = std::views; diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc index d5221680d6b..c33aa9ff51e 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc @@ -1,15 +1,17 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <ranges> -#include <algorithm> -#include <memory> -#include <testsuite_hooks.h> -#include <testsuite_iterators.h> #if __cpp_lib_ranges_enumerate != 202302L # error "Feature-test macro __cpp_lib_ranges_enumerate has wrong value in <ranges>" #endif +#include <algorithm> +#include <memory> +#include <testsuite_hooks.h> +#include <testsuite_iterators.h> + namespace ranges = std::ranges; namespace views = std::views; diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc index 7bed169d127..8ab30a5277d 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc @@ -1,15 +1,17 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <ranges> -#include <algorithm> -#include <string> -#include <testsuite_hooks.h> -#include <testsuite_iterators.h> #if __cpp_lib_ranges_join_with != 202202L # error "Feature-test macro __cpp_lib_ranges_join_with has wrong value in <ranges>" #endif +#include <algorithm> +#include <string> +#include <testsuite_hooks.h> +#include <testsuite_iterators.h> + namespace ranges = std::ranges; namespace views = std::views; using namespace std::literals; diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc index 8dfb8715e5a..bafe9fbc4bf 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc @@ -1,15 +1,17 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <ranges> -#include <algorithm> -#include <utility> -#include <testsuite_hooks.h> -#include <testsuite_iterators.h> #if __cpp_lib_ranges_slide != 202202L # error "Feature-test macro __cpp_lib_ranges_slide has wrong value in <ranges>" #endif +#include <algorithm> +#include <utility> +#include <testsuite_hooks.h> +#include <testsuite_iterators.h> + namespace ranges = std::ranges; namespace views = std::views; diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc index dfc413dbb66..e0af8c874fd 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc @@ -1,14 +1,16 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <ranges> -#include <algorithm> -#include <testsuite_hooks.h> -#include <testsuite_iterators.h> #if __cpp_lib_ranges_stride != 202207L # error "Feature-test macro __cpp_lib_ranges_stride has wrong value in <ranges>" #endif +#include <algorithm> +#include <testsuite_hooks.h> +#include <testsuite_iterators.h> + namespace ranges = std::ranges; namespace views = std::views; diff --git a/libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc b/libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc index 8938e92158d..f69f965c0ce 100644 --- a/libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc @@ -1,15 +1,17 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <ranges> -#include <algorithm> -#include <sstream> -#include <testsuite_hooks.h> -#include <testsuite_iterators.h> #if __cpp_lib_ranges_cartesian_product != 202207L # error "Feature-test macro __cpp_lib_ranges_cartesian_product has wrong value in <ranges>" #endif +#include <algorithm> +#include <sstream> +#include <testsuite_hooks.h> +#include <testsuite_iterators.h> + namespace ranges = std::ranges; namespace views = std::views; diff --git a/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc b/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc index dfa3fcaa37e..e9fef0dce48 100644 --- a/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc +++ b/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <ranges> diff --git a/libstdc++-v3/testsuite/std/ranges/repeat/1.cc b/libstdc++-v3/testsuite/std/ranges/repeat/1.cc index 0f6e551c1e9..cad8c8dcbe7 100644 --- a/libstdc++-v3/testsuite/std/ranges/repeat/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/repeat/1.cc @@ -1,14 +1,16 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <ranges> -#include <algorithm> -#include <memory> -#include <testsuite_hooks.h> #if __cpp_lib_ranges_repeat != 202207L # error "Feature-test macro __cpp_lib_ranges_repeat has wrong value in <ranges>" #endif +#include <algorithm> +#include <memory> +#include <testsuite_hooks.h> + namespace ranges = std::ranges; namespace views = std::views; diff --git a/libstdc++-v3/testsuite/std/ranges/version_c++23.cc b/libstdc++-v3/testsuite/std/ranges/version_c++23.cc index f68df67d3b3..823264f32aa 100644 --- a/libstdc++-v3/testsuite/std/ranges/version_c++23.cc +++ b/libstdc++-v3/testsuite/std/ranges/version_c++23.cc @@ -1,4 +1,5 @@ // { dg-do preprocess { target c++23 } } +// { dg-add-options no_pch } #include <version> diff --git a/libstdc++-v3/testsuite/std/ranges/zip/1.cc b/libstdc++-v3/testsuite/std/ranges/zip/1.cc index f7c2c00a2cd..b7717aed92c 100644 --- a/libstdc++-v3/testsuite/std/ranges/zip/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/zip/1.cc @@ -1,16 +1,18 @@ // { dg-do run { target c++23 } } +// { dg-add-options no_pch } #include <ranges> + +#if __cpp_lib_ranges_zip != 202110L +# error "Feature-test macro __cpp_lib_ranges_zip has wrong value in <ranges>" +#endif + #include <algorithm> #include <utility> #include <vector> #include <testsuite_hooks.h> #include <testsuite_iterators.h> -#if __cpp_lib_ranges_zip != 202110L -# error "Feature-test macro __cpp_lib_ranges_zip has wrong value in <ranges>" -#endif - namespace ranges = std::ranges; namespace views = std::views; diff --git a/libstdc++-v3/testsuite/std/time/syn_c++20.cc b/libstdc++-v3/testsuite/std/time/syn_c++20.cc index 9f0e5ee5a9d..dd9e4059c1b 100644 --- a/libstdc++-v3/testsuite/std/time/syn_c++20.cc +++ b/libstdc++-v3/testsuite/std/time/syn_c++20.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++20 } } +// { dg-add-options no_pch } #include <chrono> -- 2.41.0 ^ permalink raw reply [flat|nested] 2+ messages in thread
* [committed 2/2] libstdc++: Only declare feature test macros in standard headers 2023-11-16 8:11 [committed 1/2] libstdc++: Test for feature test macros more accurately Jonathan Wakely @ 2023-11-16 8:11 ` Jonathan Wakely 0 siblings, 0 replies; 2+ messages in thread From: Jonathan Wakely @ 2023-11-16 8:11 UTC (permalink / raw) To: libstdc++, gcc-patches Tested x86_64-linux. Pushed to trunk. -- >8 -- This change moves the definitions of feature test macros (or strictly speaking, the requests for <bits/version.h> to define them) so that only standard headers define them. For example, <bits/shared_ptr.h> will no longer define macros related to std::shared_ptr, only <memory> and <version> will define them. This means that __cpp_lib_shared_ptr_arrays will not be defined by <future> or by other headers that include <bits/shared_ptr.h>. It will only be defined when <memory> has been included. This will discourage users from relying on transitive includes. As a result, internal headers that need to query the macros should use the internal macros like __glibcxx_shared_ptr_arrays instead of __cpp_lib_shared_ptr_arrays, as those internal macros are defined by the internal headers after icluding <bits/version.h>. There are some exceptions to this rule, because __cpp_lib_is_constant_evaluated is defined by bits/c++config.h and so is available everywhere, and __cpp_lib_three_way_comparison is defined by <compare> which several headers are explicitly specified to include, so its macro is guaranteed to be usable too. N.B. not many internal headers actually need an explicit include of <bits/version.h>, because most of them include <type_traits> and so get all the __glibcxx_foo internal macros from there. libstdc++-v3/ChangeLog: * 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. --- libstdc++-v3/include/bits/algorithmfwd.h | 3 - libstdc++-v3/include/bits/align.h | 10 +-- libstdc++-v3/include/bits/alloc_traits.h | 4 -- libstdc++-v3/include/bits/allocator.h | 3 - libstdc++-v3/include/bits/atomic_base.h | 42 ++++++----- libstdc++-v3/include/bits/atomic_timed_wait.h | 2 +- libstdc++-v3/include/bits/atomic_wait.h | 5 +- libstdc++-v3/include/bits/basic_string.h | 22 +++--- libstdc++-v3/include/bits/basic_string.tcc | 6 +- libstdc++-v3/include/bits/char_traits.h | 3 - libstdc++-v3/include/bits/chrono.h | 16 ++--- libstdc++-v3/include/bits/cow_string.h | 11 ++- libstdc++-v3/include/bits/erase_if.h | 4 +- libstdc++-v3/include/bits/forward_list.h | 5 +- libstdc++-v3/include/bits/hashtable.h | 7 +- libstdc++-v3/include/bits/ios_base.h | 5 +- libstdc++-v3/include/bits/memory_resource.h | 6 +- libstdc++-v3/include/bits/move.h | 3 - .../include/bits/move_only_function.h | 5 +- libstdc++-v3/include/bits/node_handle.h | 5 +- libstdc++-v3/include/bits/ptr_traits.h | 8 +-- libstdc++-v3/include/bits/range_access.h | 12 ++-- libstdc++-v3/include/bits/ranges_algo.h | 25 +++---- libstdc++-v3/include/bits/ranges_cmp.h | 7 +- libstdc++-v3/include/bits/ranges_util.h | 2 +- libstdc++-v3/include/bits/semaphore_base.h | 6 +- libstdc++-v3/include/bits/shared_ptr.h | 22 +++--- libstdc++-v3/include/bits/shared_ptr_atomic.h | 18 +++-- libstdc++-v3/include/bits/shared_ptr_base.h | 28 ++++---- libstdc++-v3/include/bits/stl_algo.h | 12 ++-- libstdc++-v3/include/bits/stl_algobase.h | 11 ++- libstdc++-v3/include/bits/stl_function.h | 25 +++---- libstdc++-v3/include/bits/stl_iterator.h | 72 +++++++++---------- libstdc++-v3/include/bits/stl_list.h | 5 +- libstdc++-v3/include/bits/stl_map.h | 5 +- libstdc++-v3/include/bits/stl_pair.h | 8 +-- libstdc++-v3/include/bits/stl_queue.h | 7 +- libstdc++-v3/include/bits/stl_stack.h | 7 +- libstdc++-v3/include/bits/stl_tree.h | 3 - libstdc++-v3/include/bits/stl_uninitialized.h | 7 +- libstdc++-v3/include/bits/stl_vector.h | 3 - libstdc++-v3/include/bits/unique_ptr.h | 6 +- libstdc++-v3/include/bits/unordered_map.h | 7 +- .../include/bits/uses_allocator_args.h | 5 +- libstdc++-v3/include/bits/utility.h | 11 +-- libstdc++-v3/include/std/algorithm | 8 +++ libstdc++-v3/include/std/array | 2 + libstdc++-v3/include/std/atomic | 3 + libstdc++-v3/include/std/chrono | 4 ++ libstdc++-v3/include/std/condition_variable | 2 +- libstdc++-v3/include/std/deque | 1 + libstdc++-v3/include/std/format | 5 +- libstdc++-v3/include/std/forward_list | 5 +- libstdc++-v3/include/std/functional | 19 ++--- libstdc++-v3/include/std/ios | 3 + libstdc++-v3/include/std/iterator | 7 ++ libstdc++-v3/include/std/list | 3 + libstdc++-v3/include/std/map | 7 ++ libstdc++-v3/include/std/memory | 14 ++++ libstdc++-v3/include/std/numeric | 1 + libstdc++-v3/include/std/queue | 3 + libstdc++-v3/include/std/ranges | 1 + libstdc++-v3/include/std/regex | 3 + libstdc++-v3/include/std/scoped_allocator | 6 +- libstdc++-v3/include/std/set | 6 ++ libstdc++-v3/include/std/stack | 3 + libstdc++-v3/include/std/stop_token | 2 +- libstdc++-v3/include/std/string | 6 ++ libstdc++-v3/include/std/string_view | 1 + libstdc++-v3/include/std/tuple | 2 + libstdc++-v3/include/std/unordered_map | 7 ++ libstdc++-v3/include/std/unordered_set | 6 ++ libstdc++-v3/include/std/utility | 24 ++++--- libstdc++-v3/include/std/vector | 3 + 74 files changed, 313 insertions(+), 333 deletions(-) diff --git a/libstdc++-v3/include/bits/algorithmfwd.h b/libstdc++-v3/include/bits/algorithmfwd.h index bc757c340a4..ab7641815b9 100644 --- a/libstdc++-v3/include/bits/algorithmfwd.h +++ b/libstdc++-v3/include/bits/algorithmfwd.h @@ -39,9 +39,6 @@ #include <initializer_list> #endif -#define __glibcxx_want_constexpr_algorithms -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/bits/align.h b/libstdc++-v3/include/bits/align.h index 4152639622e..68bacf4edd9 100644 --- a/libstdc++-v3/include/bits/align.h +++ b/libstdc++-v3/include/bits/align.h @@ -30,14 +30,10 @@ #ifndef _GLIBCXX_ALIGN_H #define _GLIBCXX_ALIGN_H 1 -#include <bits/c++config.h> - -#define __glibcxx_want_assume_aligned -#include <bits/version.h> - #include <bit> // std::has_single_bit #include <stdint.h> // uintptr_t #include <debug/assertions.h> // _GLIBCXX_DEBUG_ASSERT +#include <bits/version.h> namespace std _GLIBCXX_VISIBILITY(default) { @@ -78,7 +74,7 @@ align(size_t __align, size_t __size, void*& __ptr, size_t& __space) noexcept } } -#ifdef __cpp_lib_assume_aligned // C++ >= 20 +#ifdef __glibcxx_assume_aligned // C++ >= 20 /** @brief Inform the compiler that a pointer is aligned. * * @tparam _Align An alignment value (i.e. a power of two) @@ -105,7 +101,7 @@ align(size_t __align, size_t __size, void*& __ptr, size_t& __space) noexcept return static_cast<_Tp*>(__builtin_assume_aligned(__ptr, _Align)); } } -#endif // __cpp_lib_assume_aligned +#endif // __glibcxx_assume_aligned _GLIBCXX_END_NAMESPACE_VERSION } // namespace diff --git a/libstdc++-v3/include/bits/alloc_traits.h b/libstdc++-v3/include/bits/alloc_traits.h index 453278e5348..611615d6052 100644 --- a/libstdc++-v3/include/bits/alloc_traits.h +++ b/libstdc++-v3/include/bits/alloc_traits.h @@ -40,10 +40,6 @@ # endif #endif -#define __glibcxx_want_constexpr_dynamic_alloc -#define __glibcxx_want_allocator_traits_is_always_equal -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/bits/allocator.h b/libstdc++-v3/include/bits/allocator.h index 41e35f876f0..af7951a02a5 100644 --- a/libstdc++-v3/include/bits/allocator.h +++ b/libstdc++-v3/include/bits/allocator.h @@ -49,9 +49,6 @@ #include <type_traits> #endif -#define __glibcxx_want_incomplete_container_elements -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/bits/atomic_base.h b/libstdc++-v3/include/bits/atomic_base.h index 974872ad7a6..f4ce0fa5324 100644 --- a/libstdc++-v3/include/bits/atomic_base.h +++ b/libstdc++-v3/include/bits/atomic_base.h @@ -46,8 +46,6 @@ #define _GLIBCXX_ALWAYS_INLINE inline __attribute__((__always_inline__)) #endif -#define __glibcxx_want_atomic_value_initialization -#define __glibcxx_want_atomic_flag_test #include <bits/version.h> namespace std _GLIBCXX_VISIBILITY(default) @@ -161,7 +159,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } /// @cond undocumented -#if __cpp_lib_atomic_value_initialization +#if __glibcxx_atomic_value_initialization # define _GLIBCXX20_INIT(I) = I #else # define _GLIBCXX20_INIT(I) @@ -234,7 +232,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return __atomic_test_and_set (&_M_i, int(__m)); } -#ifdef __cpp_lib_atomic_flag_test // C++ >= 20 +#ifdef __glibcxx_atomic_flag_test // C++ >= 20 _GLIBCXX_ALWAYS_INLINE bool test(memory_order __m = memory_order_seq_cst) const noexcept { @@ -252,7 +250,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } #endif -#if __cpp_lib_atomic_wait // C++ >= 20 && (linux_futex || gthread) +#if __glibcxx_atomic_wait // C++ >= 20 && (linux_futex || gthread) _GLIBCXX_ALWAYS_INLINE void wait(bool __old, memory_order __m = memory_order_seq_cst) const noexcept @@ -277,7 +275,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { std::__atomic_notify_address(&_M_i, true); } // TODO add const volatile overload -#endif // __cpp_lib_atomic_wait +#endif // __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE void clear(memory_order __m = memory_order_seq_cst) noexcept @@ -603,7 +601,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __cmpexch_failure_order(__m)); } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE void wait(__int_type __old, memory_order __m = memory_order_seq_cst) const noexcept @@ -625,7 +623,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { std::__atomic_notify_address(&_M_i, true); } // TODO add const volatile overload -#endif // __cpp_lib_atomic_wait +#endif // __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE __int_type fetch_add(__int_type __i, @@ -905,7 +903,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION int(__m1), int(__m2)); } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE void wait(__pointer_type __old, memory_order __m = memory_order_seq_cst) const noexcept @@ -928,7 +926,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { std::__atomic_notify_address(&_M_p, true); } // TODO add const volatile overload -#endif // __cpp_lib_atomic_wait +#endif // __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE __pointer_type fetch_add(ptrdiff_t __d, @@ -1138,7 +1136,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION *__ptr, __expected, __desired, false, __success, __failure); } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait template<typename _Tp> _GLIBCXX_ALWAYS_INLINE void wait(const _Tp* __ptr, _Val<_Tp> __old, @@ -1163,7 +1161,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { std::__atomic_notify_address(__ptr, true); } // TODO add const volatile overload -#endif // __cpp_lib_atomic_wait +#endif // __glibcxx_atomic_wait template<typename _Tp> _GLIBCXX_ALWAYS_INLINE _Tp @@ -1418,7 +1416,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __cmpexch_failure_order(__order)); } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE void wait(_Fp __old, memory_order __m = memory_order_seq_cst) const noexcept { __atomic_impl::wait(&_M_fp, __old, __m); } @@ -1436,7 +1434,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { __atomic_impl::notify_all(&_M_fp); } // TODO add const volatile overload -#endif // __cpp_lib_atomic_wait +#endif // __glibcxx_atomic_wait value_type fetch_add(value_type __i, @@ -1573,7 +1571,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __cmpexch_failure_order(__order)); } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE void wait(_Tp __old, memory_order __m = memory_order_seq_cst) const noexcept { __atomic_impl::wait(_M_ptr, __old, __m); } @@ -1591,7 +1589,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { __atomic_impl::notify_all(_M_ptr); } // TODO add const volatile overload -#endif // __cpp_lib_atomic_wait +#endif // __glibcxx_atomic_wait private: _Tp* _M_ptr; @@ -1686,7 +1684,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __cmpexch_failure_order(__order)); } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE void wait(_Tp __old, memory_order __m = memory_order_seq_cst) const noexcept { __atomic_impl::wait(_M_ptr, __old, __m); } @@ -1704,7 +1702,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { __atomic_impl::notify_all(_M_ptr); } // TODO add const volatile overload -#endif // __cpp_lib_atomic_wait +#endif // __glibcxx_atomic_wait value_type fetch_add(value_type __i, @@ -1859,7 +1857,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __cmpexch_failure_order(__order)); } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE void wait(_Fp __old, memory_order __m = memory_order_seq_cst) const noexcept { __atomic_impl::wait(_M_ptr, __old, __m); } @@ -1877,7 +1875,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { __atomic_impl::notify_all(_M_ptr); } // TODO add const volatile overload -#endif // __cpp_lib_atomic_wait +#endif // __glibcxx_atomic_wait value_type fetch_add(value_type __i, @@ -1986,7 +1984,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __cmpexch_failure_order(__order)); } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE void wait(_Tp* __old, memory_order __m = memory_order_seq_cst) const noexcept { __atomic_impl::wait(_M_ptr, __old, __m); } @@ -2004,7 +2002,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { __atomic_impl::notify_all(_M_ptr); } // TODO add const volatile overload -#endif // __cpp_lib_atomic_wait +#endif // __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE value_type fetch_add(difference_type __d, diff --git a/libstdc++-v3/include/bits/atomic_timed_wait.h b/libstdc++-v3/include/bits/atomic_timed_wait.h index 8bb731db787..ba21ab20a11 100644 --- a/libstdc++-v3/include/bits/atomic_timed_wait.h +++ b/libstdc++-v3/include/bits/atomic_timed_wait.h @@ -34,7 +34,7 @@ #include <bits/atomic_wait.h> -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait #include <bits/functional_hash.h> #include <bits/this_thread_sleep.h> #include <bits/chrono.h> diff --git a/libstdc++-v3/include/bits/atomic_wait.h b/libstdc++-v3/include/bits/atomic_wait.h index 9cbfb99a7c2..506b7f0cc9d 100644 --- a/libstdc++-v3/include/bits/atomic_wait.h +++ b/libstdc++-v3/include/bits/atomic_wait.h @@ -32,10 +32,9 @@ #pragma GCC system_header -#define __glibcxx_want_atomic_wait #include <bits/version.h> -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait #include <bits/functional_hash.h> #include <bits/gthr.h> #include <ext/numeric_traits.h> @@ -476,5 +475,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } _GLIBCXX_END_NAMESPACE_VERSION } // namespace std -#endif // __cpp_lib_atomic_wait +#endif // __glibcxx_atomic_wait #endif // _GLIBCXX_ATOMIC_WAIT_H diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index 0fa32afeb84..9956a76f40c 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -51,10 +51,6 @@ # include <charconv> #endif -#define __glibcxx_want_constexpr_string -#define __glibcxx_want_string_resize_and_overwrite -#define __glibcxx_want_string_udls -#define __glibcxx_want_to_string #include <bits/version.h> #if ! _GLIBCXX_USE_CXX11_ABI @@ -133,7 +129,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 _S_allocate(_Char_alloc_type& __a, size_type __n) { pointer __p = _Alloc_traits::allocate(__a, __n); -#if __cpp_lib_constexpr_string >= 201907L +#if __glibcxx_constexpr_string >= 201907L // std::char_traits begins the lifetime of characters, // but custom traits might not, so do it here. if constexpr (!is_same_v<_Traits, char_traits<_CharT>>) @@ -356,7 +352,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 void _M_init_local_buf() _GLIBCXX_NOEXCEPT { -#if __cpp_lib_is_constant_evaluated +#if __glibcxx_is_constant_evaluated if (std::is_constant_evaluated()) for (size_type __i = 0; __i <= _S_local_capacity; ++__i) _M_local_buf[__i] = _CharT(); @@ -1133,7 +1129,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 #pragma GCC diagnostic pop #endif -#ifdef __cpp_lib_string_resize_and_overwrite // C++ >= 23 +#ifdef __glibcxx_string_resize_and_overwrite // C++ >= 23 /** Resize the string and call a function to fill it. * * @param __n The maximum size requested. @@ -4339,7 +4335,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 return __str; } -#if __cpp_lib_to_string >= 202306L +#if __glibcxx_to_string >= 202306L // C++ >= 26 [[nodiscard]] inline string @@ -4518,7 +4514,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 } } -#if __cpp_lib_constexpr_string >= 201907L +#if __glibcxx_constexpr_string >= 201907L constexpr #endif inline wstring @@ -4575,7 +4571,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 to_wstring(unsigned long long __val) { return std::__to_wstring_numeric(std::to_string(__val)); } -#if __cpp_lib_to_string || _GLIBCXX_USE_C99_STDIO +#if __glibcxx_to_string || _GLIBCXX_USE_C99_STDIO _GLIBCXX_NODISCARD inline wstring to_wstring(float __val) @@ -4678,7 +4674,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { }; #endif -#ifdef __cpp_lib_string_udls // C++ >= 14 +#ifdef __glibcxx_string_udls // C++ >= 14 inline namespace literals { inline namespace string_literals @@ -4686,7 +4682,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wliteral-suffix" -#if __cpp_lib_constexpr_string >= 201907L +#if __glibcxx_constexpr_string >= 201907L # define _GLIBCXX_STRING_CONSTEXPR constexpr #else # define _GLIBCXX_STRING_CONSTEXPR @@ -4723,7 +4719,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #pragma GCC diagnostic pop } // inline namespace string_literals } // inline namespace literals -#endif // __cpp_lib_string_udls +#endif // __glibcxx_string_udls #if __cplusplus >= 201703L namespace __detail::__variant diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc index f0a44e5e881..1568fc32007 100644 --- a/libstdc++-v3/include/bits/basic_string.tcc +++ b/libstdc++-v3/include/bits/basic_string.tcc @@ -566,7 +566,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return __n; } -#ifdef __cpp_lib_string_resize_and_overwrite // C++ >= 23 +#ifdef __glibcxx_string_resize_and_overwrite // C++ >= 23 template<typename _CharT, typename _Traits, typename _Alloc> template<typename _Operation> [[__gnu__::__always_inline__]] @@ -581,7 +581,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Operation> _GLIBCXX20_CONSTEXPR void basic_string<_CharT, _Traits, _Alloc>:: -#ifdef __cpp_lib_string_resize_and_overwrite // C++ >= 23 +#ifdef __glibcxx_string_resize_and_overwrite // C++ >= 23 resize_and_overwrite(const size_type __n, _Operation __op) #else __resize_and_overwrite(const size_type __n, _Operation __op) @@ -615,7 +615,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #endif // _GLIBCXX_USE_CXX11_ABI -#if __cpp_lib_constexpr_string >= 201907L +#if __glibcxx_constexpr_string >= 201907L # define _GLIBCXX_STRING_CONSTEXPR constexpr #else # define _GLIBCXX_STRING_CONSTEXPR diff --git a/libstdc++-v3/include/bits/char_traits.h b/libstdc++-v3/include/bits/char_traits.h index e9b4e84af99..824630842ee 100644 --- a/libstdc++-v3/include/bits/char_traits.h +++ b/libstdc++-v3/include/bits/char_traits.h @@ -61,9 +61,6 @@ # define _GLIBCXX_ALWAYS_INLINE inline __attribute__((__always_inline__)) #endif -#define __glibcxx_want_constexpr_char_traits -#include <bits/version.h> - namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/bits/chrono.h b/libstdc++-v3/include/bits/chrono.h index 50aca84f142..1f6daa34bcd 100644 --- a/libstdc++-v3/include/bits/chrono.h +++ b/libstdc++-v3/include/bits/chrono.h @@ -32,10 +32,6 @@ #pragma GCC system_header -#define __glibcxx_want_chrono -#define __glibcxx_want_chrono_udls -#include <bits/version.h> - #if __cplusplus >= 201103L #include <ratio> @@ -48,6 +44,8 @@ # include <compare> #endif +#include <bits/version.h> + namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -374,7 +372,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { }; #endif // C++20 -#ifdef __cpp_lib_chrono // C++ >= 17 && HOSTED +#ifdef __glibcxx_chrono // C++ >= 17 && HOSTED /** Convert a `duration` to type `ToDur` and round down. * * If the duration cannot be represented exactly in the result type, @@ -468,7 +466,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Make chrono::ceil<D> also usable as chrono::__detail::ceil<D>. namespace __detail { using chrono::ceil; } -#else // ! __cpp_lib_chrono +#else // ! __glibcxx_chrono // We want to use ceil even when compiling for earlier standards versions. // C++11 only allows a single statement in a constexpr function, so we @@ -490,7 +488,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return __detail::__ceil_impl(chrono::duration_cast<_ToDur>(__d), __d); } } -#endif // __cpp_lib_chrono +#endif // __glibcxx_chrono /// duration_values template<typename _Rep> @@ -1314,7 +1312,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2) #endif // C++20 } // namespace chrono -#ifdef __cpp_lib_chrono_udls // C++ >= 14 && HOSTED +#ifdef __glibcxx_chrono_udls // C++ >= 14 && HOSTED inline namespace literals { /** ISO C++ 2014 namespace for suffixes for duration literals. @@ -1435,7 +1433,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2) { using namespace literals::chrono_literals; } // namespace chrono -#endif // __cpp_lib_chrono_udls +#endif // __glibcxx_chrono_udls #if __cplusplus >= 201703L namespace filesystem diff --git a/libstdc++-v3/include/bits/cow_string.h b/libstdc++-v3/include/bits/cow_string.h index 5411dfe32a9..414f10a4993 100644 --- a/libstdc++-v3/include/bits/cow_string.h +++ b/libstdc++-v3/include/bits/cow_string.h @@ -36,9 +36,6 @@ #include <ext/atomicity.h> // _Atomic_word, __is_single_threaded -#define __glibcxx_want_constexpr_string -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -965,7 +962,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #pragma GCC diagnostic pop #endif -#ifdef __cpp_lib_string_resize_and_overwrite // C++ >= 23 +#ifdef __glibcxx_string_resize_and_overwrite // C++ >= 23 /** Resize the string and call a function to fill it. * * @param __n The maximum size requested. @@ -998,7 +995,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Operation> void resize_and_overwrite(size_type __n, _Operation __op); -#endif // __cpp_lib_string_resize_and_overwrite +#endif // __glibcxx_string_resize_and_overwrite #if __cplusplus >= 201103L /// Non-standard version of resize_and_overwrite for C++11 and above. @@ -3754,7 +3751,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return __n; } -#ifdef __cpp_lib_string_resize_and_overwrite // C++ >= 23 +#ifdef __glibcxx_string_resize_and_overwrite // C++ >= 23 template<typename _CharT, typename _Traits, typename _Alloc> template<typename _Operation> [[__gnu__::__always_inline__]] @@ -3769,7 +3766,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Operation> void basic_string<_CharT, _Traits, _Alloc>:: -#ifdef __cpp_lib_string_resize_and_overwrite // C++ >= 23 +#ifdef __glibcxx_string_resize_and_overwrite // C++ >= 23 resize_and_overwrite(const size_type __n, _Operation __op) #else __resize_and_overwrite(const size_type __n, _Operation __op) diff --git a/libstdc++-v3/include/bits/erase_if.h b/libstdc++-v3/include/bits/erase_if.h index 4ff81e0f98f..b807a4515b4 100644 --- a/libstdc++-v3/include/bits/erase_if.h +++ b/libstdc++-v3/include/bits/erase_if.h @@ -34,9 +34,7 @@ #include <bits/c++config.h> -#define __glibcxx_want_erase_if -#include <bits/version.h> - +// Used by C++17 containers and Library Fundamentals v2 headers. #if __cplusplus >= 201402L namespace std { diff --git a/libstdc++-v3/include/bits/forward_list.h b/libstdc++-v3/include/bits/forward_list.h index c56e430b068..5f7972d1a69 100644 --- a/libstdc++-v3/include/bits/forward_list.h +++ b/libstdc++-v3/include/bits/forward_list.h @@ -41,9 +41,6 @@ #include <ext/alloc_traits.h> #include <ext/aligned_buffer.h> -#define __glibcxx_want_list_remove_return_type -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -1183,7 +1180,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /// @} private: -#ifdef __cpp_lib_list_remove_return_type // C++20 && HOSTED +#ifdef __glibcxx_list_remove_return_type // C++20 && HOSTED using __remove_return_type = size_type; # define _GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG \ __attribute__((__abi_tag__("__cxx20"))) diff --git a/libstdc++-v3/include/bits/hashtable.h b/libstdc++-v3/include/bits/hashtable.h index 89132430f3e..9ff9104a2ab 100644 --- a/libstdc++-v3/include/bits/hashtable.h +++ b/libstdc++-v3/include/bits/hashtable.h @@ -39,9 +39,6 @@ # include <bits/node_handle.h> #endif -#define __glibcxx_want_generic_unordered_lookup -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -760,7 +757,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION std::pair<const_iterator, const_iterator> equal_range(const key_type& __k) const; -#ifdef __cpp_lib_generic_unordered_lookup // C++ >= 20 && HOSTED +#ifdef __glibcxx_generic_unordered_lookup // C++ >= 20 && HOSTED template<typename _Kt, typename = __has_is_transparent_t<_Hash, _Kt>, typename = __has_is_transparent_t<_Equal, _Kt>> @@ -790,7 +787,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION typename = __has_is_transparent_t<_Equal, _Kt>> pair<const_iterator, const_iterator> _M_equal_range_tr(const _Kt& __k) const; -#endif // __cpp_lib_generic_unordered_lookup +#endif // __glibcxx_generic_unordered_lookup private: // Bucket index computation helpers. diff --git a/libstdc++-v3/include/bits/ios_base.h b/libstdc++-v3/include/bits/ios_base.h index 3253eaaa233..9e775ccff64 100644 --- a/libstdc++-v3/include/bits/ios_base.h +++ b/libstdc++-v3/include/bits/ios_base.h @@ -46,9 +46,6 @@ # include <system_error> #endif -#define __glibcxx_want_ios_noreplace -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -476,7 +473,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static const openmode __noreplace = _S_noreplace; -#ifdef __cpp_lib_ios_noreplace // C++ >= 23 && HOSTED +#ifdef __glibcxx_ios_noreplace // C++ >= 23 && HOSTED /// Open a file in exclusive mode. static const openmode noreplace = _S_noreplace; #endif diff --git a/libstdc++-v3/include/bits/memory_resource.h b/libstdc++-v3/include/bits/memory_resource.h index f12555d4215..97bcdd5e572 100644 --- a/libstdc++-v3/include/bits/memory_resource.h +++ b/libstdc++-v3/include/bits/memory_resource.h @@ -42,7 +42,7 @@ #include <ext/numeric_traits.h> // __int_traits #include <debug/assertions.h> -#if ! __cpp_lib_make_obj_using_allocator +#if ! __glibcxx_make_obj_using_allocator # include <bits/utility.h> // index_sequence # include <tuple> // tuple, forward_as_tuple #endif @@ -220,7 +220,7 @@ namespace pmr } #endif // C++2a -#if ! __cpp_lib_make_obj_using_allocator +#if ! __glibcxx_make_obj_using_allocator template<typename _Tp1, typename... _Args> __attribute__((__nonnull__)) typename __not_pair<_Tp1>::type @@ -337,7 +337,7 @@ namespace pmr #endif private: -#if ! __cpp_lib_make_obj_using_allocator +#if ! __glibcxx_make_obj_using_allocator using __uses_alloc1_ = __uses_alloc1<polymorphic_allocator>; using __uses_alloc2_ = __uses_alloc2<polymorphic_allocator>; diff --git a/libstdc++-v3/include/bits/move.h b/libstdc++-v3/include/bits/move.h index 0151d78aff9..54606cd4e8f 100644 --- a/libstdc++-v3/include/bits/move.h +++ b/libstdc++-v3/include/bits/move.h @@ -37,9 +37,6 @@ # include <type_traits> // Brings in std::declval too. #endif -#define __glibcxx_want_addressof_constexpr -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/bits/move_only_function.h b/libstdc++-v3/include/bits/move_only_function.h index 0aa5980324a..2a40ff400de 100644 --- a/libstdc++-v3/include/bits/move_only_function.h +++ b/libstdc++-v3/include/bits/move_only_function.h @@ -32,10 +32,9 @@ #pragma GCC system_header -#define __glibcxx_want_move_only_function #include <bits/version.h> -#ifdef __cpp_lib_move_only_function // C++ >= 23 && HOSTED +#ifdef __glibcxx_move_only_function // C++ >= 23 && HOSTED #include <bits/invoke.h> #include <bits/utility.h> @@ -213,5 +212,5 @@ _GLIBCXX_END_NAMESPACE_VERSION #define _GLIBCXX_MOF_REF && #include "mofunc_impl.h" -#endif // __cpp_lib_move_only_function +#endif // __glibcxx_move_only_function #endif // _GLIBCXX_MOVE_ONLY_FUNCTION_H diff --git a/libstdc++-v3/include/bits/node_handle.h b/libstdc++-v3/include/bits/node_handle.h index 16471355c19..d3c75c7c3ef 100644 --- a/libstdc++-v3/include/bits/node_handle.h +++ b/libstdc++-v3/include/bits/node_handle.h @@ -33,10 +33,9 @@ #pragma GCC system_header -#define __glibcxx_want_node_extract #include <bits/version.h> -#ifdef __cpp_lib_node_extract // C++ >= 17 && HOSTED +#ifdef __glibcxx_node_extract // C++ >= 17 && HOSTED #include <new> #include <bits/alloc_traits.h> @@ -392,5 +391,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION } // namespace std -#endif // __cpp_lib_node_extract +#endif // __glibcxx_node_extract #endif diff --git a/libstdc++-v3/include/bits/ptr_traits.h b/libstdc++-v3/include/bits/ptr_traits.h index 9e2f4f3f216..66c39cc83fd 100644 --- a/libstdc++-v3/include/bits/ptr_traits.h +++ b/libstdc++-v3/include/bits/ptr_traits.h @@ -34,10 +34,6 @@ #include <bits/move.h> -#define __glibcxx_want_constexpr_memory -#define __glibcxx_want_to_address -#include <bits/version.h> - #if __cplusplus > 201703L #include <concepts> namespace __gnu_debug { struct _Safe_iterator_base; } @@ -212,7 +208,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return __ptr; } -#ifndef __cpp_lib_to_address // C++ < 20 +#ifndef __glibcxx_to_address // C++ < 20 template<typename _Ptr> constexpr typename std::pointer_traits<_Ptr>::element_type* __to_address(const _Ptr& __ptr) @@ -256,7 +252,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION constexpr auto to_address(const _Ptr& __ptr) noexcept { return std::__to_address(__ptr); } -#endif // __cpp_lib_to_address +#endif // __glibcxx_to_address _GLIBCXX_END_NAMESPACE_VERSION } // namespace std diff --git a/libstdc++-v3/include/bits/range_access.h b/libstdc++-v3/include/bits/range_access.h index 9751b8e88d5..63fc06dd4bf 100644 --- a/libstdc++-v3/include/bits/range_access.h +++ b/libstdc++-v3/include/bits/range_access.h @@ -32,10 +32,6 @@ #pragma GCC system_header -#define __glibcxx_want_nonmember_container_access -#define __glibcxx_want_ssize -#include <bits/version.h> - #if __cplusplus >= 201103L #include <initializer_list> #include <type_traits> // common_type_t, make_signed_t @@ -255,7 +251,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #endif // C++14 -#ifdef __cpp_lib_nonmember_container_access // C++ >= 17 +#ifdef __glibcxx_nonmember_container_access // C++ >= 17 /** * @brief Return the size of a container. * @param __cont Container. @@ -347,9 +343,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION constexpr const _Tp* data(initializer_list<_Tp> __il) noexcept { return __il.begin(); } -#endif // __cpp_lib_nonmember_container_access +#endif // __glibcxx_nonmember_container_access -#ifdef __cpp_lib_ssize // C++ >= 20 +#ifdef __glibcxx_ssize // C++ >= 20 template<typename _Container> [[nodiscard, __gnu__::__always_inline__]] constexpr auto @@ -366,7 +362,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION constexpr ptrdiff_t ssize(const _Tp (&)[_Num]) noexcept { return _Num; } -#endif // __cpp_lib_ssize +#endif // __glibcxx_ssize _GLIBCXX_END_NAMESPACE_VERSION } // namespace diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h index a06794c02c9..460893353de 100644 --- a/libstdc++-v3/include/bits/ranges_algo.h +++ b/libstdc++-v3/include/bits/ranges_algo.h @@ -39,14 +39,7 @@ #include <bits/ranges_util.h> #include <bits/uniform_int_dist.h> // concept uniform_random_bit_generator -#define __glibcxx_want_ranges_contains -#define __glibcxx_want_ranges_find_last -#define __glibcxx_want_ranges_fold -#define __glibcxx_want_ranges_iota -#define __glibcxx_want_shift -#include <bits/version.h> - -#if __cpp_lib_concepts +#if __glibcxx_concepts namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -3472,7 +3465,7 @@ namespace ranges inline constexpr __prev_permutation_fn prev_permutation{}; -#if __cpp_lib_ranges_contains >= 202207L // C++ >= 23 +#if __glibcxx_ranges_contains >= 202207L // C++ >= 23 struct __contains_fn { template<input_iterator _Iter, sentinel_for<_Iter> _Sent, @@ -3526,9 +3519,9 @@ namespace ranges inline constexpr __contains_subrange_fn contains_subrange{}; -#endif // __cpp_lib_ranges_contains +#endif // __glibcxx_ranges_contains -#if __cpp_lib_ranges_iota >= 202202L // C++ >= 23 +#if __glibcxx_ranges_iota >= 202202L // C++ >= 23 template<typename _Out, typename _Tp> struct out_value_result @@ -3578,9 +3571,9 @@ namespace ranges inline constexpr __iota_fn iota{}; -#endif // __cpp_lib_ranges_iota +#endif // __glibcxx_ranges_iota -#if __cpp_lib_ranges_find_last >= 202207L // C++ >= 23 +#if __glibcxx_ranges_find_last >= 202207L // C++ >= 23 struct __find_last_fn { @@ -3708,9 +3701,9 @@ namespace ranges inline constexpr __find_last_if_not_fn find_last_if_not{}; -#endif // __cpp_lib_ranges_find_last +#endif // __glibcxx_ranges_find_last -#if __cpp_lib_ranges_fold >= 202207L // C++ >= 23 +#if __glibcxx_ranges_fold >= 202207L // C++ >= 23 template<typename _Iter, typename _Tp> struct in_value_result @@ -3957,7 +3950,7 @@ namespace ranges }; inline constexpr __fold_right_last_fn fold_right_last{}; -#endif // __cpp_lib_ranges_fold +#endif // __glibcxx_ranges_fold } // namespace ranges template<typename _ForwardIterator> diff --git a/libstdc++-v3/include/bits/ranges_cmp.h b/libstdc++-v3/include/bits/ranges_cmp.h index 96fa79667e6..420d8bd2448 100644 --- a/libstdc++-v3/include/bits/ranges_cmp.h +++ b/libstdc++-v3/include/bits/ranges_cmp.h @@ -30,9 +30,6 @@ #ifndef _RANGES_CMP_H #define _RANGES_CMP_H 1 -#define __glibcxx_want_ranges -#include <bits/version.h> - #if __cplusplus > 201703L # include <bits/move.h> # include <concepts> @@ -58,7 +55,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using is_transparent = __is_transparent; }; -#ifdef __cpp_lib_ranges // C++ >= 20 +#ifdef __glibcxx_ranges // C++ >= 20 namespace ranges { namespace __detail @@ -175,7 +172,7 @@ namespace ranges }; } // namespace ranges -#endif // __cpp_lib_ranges +#endif // __glibcxx_ranges _GLIBCXX_END_NAMESPACE_VERSION } // namespace std #endif // C++20 diff --git a/libstdc++-v3/include/bits/ranges_util.h b/libstdc++-v3/include/bits/ranges_util.h index f7e3538af97..ab6c69c57d0 100644 --- a/libstdc++-v3/include/bits/ranges_util.h +++ b/libstdc++-v3/include/bits/ranges_util.h @@ -34,7 +34,7 @@ # include <bits/ranges_base.h> # include <bits/utility.h> -#ifdef __cpp_lib_ranges +#ifdef __glibcxx_ranges namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/bits/semaphore_base.h b/libstdc++-v3/include/bits/semaphore_base.h index 2b3c196040b..7e07b308cdc 100644 --- a/libstdc++-v3/include/bits/semaphore_base.h +++ b/libstdc++-v3/include/bits/semaphore_base.h @@ -34,7 +34,7 @@ #include <bits/atomic_base.h> #include <bits/chrono.h> -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait #include <bits/atomic_timed_wait.h> #include <ext/numeric_traits.h> #endif // __cpp_lib_atomic_wait @@ -181,7 +181,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION }; #endif // _GLIBCXX_HAVE_POSIX_SEMAPHORE -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait struct __atomic_semaphore { static constexpr ptrdiff_t _S_max = __gnu_cxx::__int_traits<int>::__max; @@ -266,7 +266,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Note: the _GLIBCXX_USE_POSIX_SEMAPHORE macro can be used to force the // use of Posix semaphores (sem_t). Doing so however, alters the ABI. -#if defined __cpp_lib_atomic_wait && !_GLIBCXX_USE_POSIX_SEMAPHORE +#if defined __glibcxx_atomic_wait && !_GLIBCXX_USE_POSIX_SEMAPHORE using __semaphore_impl = __atomic_semaphore; #elif _GLIBCXX_HAVE_POSIX_SEMAPHORE using __semaphore_impl = __platform_semaphore; diff --git a/libstdc++-v3/include/bits/shared_ptr.h b/libstdc++-v3/include/bits/shared_ptr.h index 9b5ee571c3e..02bfdabfd1c 100644 --- a/libstdc++-v3/include/bits/shared_ptr.h +++ b/libstdc++-v3/include/bits/shared_ptr.h @@ -52,10 +52,6 @@ #include <iosfwd> // std::basic_ostream #include <bits/shared_ptr_base.h> -#define __glibcxx_want_shared_ptr_weak_type -#define __glibcxx_want_enable_shared_from_this -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -107,7 +103,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// @cond undocumented // Constraint for overloads taking non-array types. -#if __cpp_concepts && __cpp_lib_type_trait_variable_templates +#if __cpp_concepts && __glibcxx_type_trait_variable_templates template<typename _Tp> requires (!is_array_v<_Tp>) using _NonArray = _Tp; @@ -116,7 +112,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using _NonArray = __enable_if_t<!is_array<_Tp>::value, _Tp>; #endif -#if __cpp_lib_shared_ptr_arrays >= 201707L +#if __glibcxx_shared_ptr_arrays >= 201707L // Constraint for overloads taking array types with unknown bound, U[]. #if __cpp_concepts template<typename _Tp> @@ -139,7 +135,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION = __enable_if_t<__is_array_known_bounds<_Tp>::value, _Tp>; #endif -#if __cpp_lib_smart_ptr_for_overwrite +#if __glibcxx_smart_ptr_for_overwrite // Constraint for overloads taking either non-array or bounded array, U[N]. #if __cpp_concepts template<typename _Tp> @@ -193,7 +189,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// The type pointed to by the stored pointer, remove_extent_t<_Tp> using element_type = typename __shared_ptr<_Tp>::element_type; -#ifdef __cpp_lib_shared_ptr_weak_type // C++ >= 17 && HOSTED +#ifdef __glibcxx_shared_ptr_weak_type // C++ >= 17 && HOSTED /// The corresponding weak_ptr type for this shared_ptr /// @since C++17 using weak_type = weak_ptr<_Tp>; @@ -475,7 +471,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION friend shared_ptr<_NonArray<_Yp>> make_shared(_Args&&...); -#if __cpp_lib_shared_ptr_arrays >= 201707L +#if __glibcxx_shared_ptr_arrays >= 201707L // This constructor is non-standard, it is used by allocate_shared<T[]>. template<typename _Alloc, typename _Init = const remove_extent_t<_Tp>*> shared_ptr(const _Sp_counted_array_base<_Alloc>& __a, @@ -515,7 +511,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION friend shared_ptr<_BoundedArray<_Yp>> make_shared(const remove_extent_t<_Yp>&); -#if __cpp_lib_smart_ptr_for_overwrite +#if __glibcxx_smart_ptr_for_overwrite template<typename _Yp, typename _Alloc> friend shared_ptr<_NotUnboundedArray<_Yp>> allocate_shared_for_overwrite(const _Alloc&); @@ -941,7 +937,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION shared_from_this() const { return shared_ptr<const _Tp>(this->_M_weak_this); } -#ifdef __cpp_lib_enable_shared_from_this // C++ >= 17 && HOSTED +#ifdef __glibcxx_enable_shared_from_this // C++ >= 17 && HOSTED /** @{ * Get a `weak_ptr` referring to the object that has `*this` as its base. * @since C++17 @@ -1012,7 +1008,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION std::forward<_Args>(__args)...); } -#if __cpp_lib_shared_ptr_arrays >= 201707L +#if __glibcxx_shared_ptr_arrays >= 201707L /// @cond undocumented template<typename _Tp, typename _Alloc = allocator<void>> auto @@ -1100,7 +1096,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION std::__addressof(__u)); } -#if __cpp_lib_smart_ptr_for_overwrite +#if __glibcxx_smart_ptr_for_overwrite template<typename _Tp, typename _Alloc> inline shared_ptr<_NotUnboundedArray<_Tp>> allocate_shared_for_overwrite(const _Alloc& __a) diff --git a/libstdc++-v3/include/bits/shared_ptr_atomic.h b/libstdc++-v3/include/bits/shared_ptr_atomic.h index 5b818fe4456..d0be43aec2d 100644 --- a/libstdc++-v3/include/bits/shared_ptr_atomic.h +++ b/libstdc++-v3/include/bits/shared_ptr_atomic.h @@ -31,9 +31,7 @@ #define _SHARED_PTR_ATOMIC_H 1 #include <bits/atomic_base.h> - -#define __glibcxx_want_atomic_shared_ptr -#include <bits/version.h> +#include <bits/shared_ptr.h> // Annotations for the custom locking in atomic<shared_ptr<T>>. #if defined _GLIBCXX_TSAN && __has_include(<sanitizer/tsan_interface.h>) @@ -380,7 +378,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// @} group pointer_abstractions -#ifdef __cpp_lib_atomic_shared_ptr // C++ >= 20 && HOSTED +#ifdef __glibcxx_atomic_shared_ptr // C++ >= 20 && HOSTED template<typename _Tp> struct atomic; @@ -451,7 +449,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION auto __current = _M_val.load(memory_order_relaxed); while (__current & _S_lock_bit) { -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait __detail::__thread_relax(); #endif __current = _M_val.load(memory_order_relaxed); @@ -465,7 +463,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION memory_order_relaxed)) { _GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED(&_M_val); -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait __detail::__thread_relax(); #endif __current = __current & ~_S_lock_bit; @@ -498,7 +496,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __c._M_pi = reinterpret_cast<pointer>(__x & ~_S_lock_bit); } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait // Precondition: caller holds lock! void _M_wait_unlock(memory_order __o) const noexcept @@ -608,7 +606,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return __result; } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait void wait(value_type __old, memory_order __o) const noexcept { @@ -731,7 +729,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return compare_exchange_strong(__expected, std::move(__desired), __o); } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait void wait(value_type __old, memory_order __o = memory_order_seq_cst) const noexcept @@ -844,7 +842,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return compare_exchange_strong(__expected, std::move(__desired), __o); } -#if __cpp_lib_atomic_wait +#if __glibcxx_atomic_wait void wait(value_type __old, memory_order __o = memory_order_seq_cst) const noexcept diff --git a/libstdc++-v3/include/bits/shared_ptr_base.h b/libstdc++-v3/include/bits/shared_ptr_base.h index 33282e596b2..edb3eb654ea 100644 --- a/libstdc++-v3/include/bits/shared_ptr_base.h +++ b/libstdc++-v3/include/bits/shared_ptr_base.h @@ -67,10 +67,6 @@ # include <bits/stl_uninitialized.h> #endif -#define __glibcxx_want_smart_ptr_for_overwrite -#define __glibcxx_want_shared_ptr_arrays -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -413,7 +409,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<_Lock_policy _Lp = __default_lock_policy> class __shared_count; -#if __cplusplus >= 202002L +#ifdef __glibcxx_atomic_shared_ptr template<typename> class _Sp_atomic; #endif @@ -656,7 +652,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _Impl _M_impl; }; -#ifdef __cpp_lib_smart_ptr_for_overwrite // C++ >= 20 && HOSTED +#ifdef __glibcxx_smart_ptr_for_overwrite // C++ >= 20 && HOSTED struct _Sp_overwrite_tag { }; // Partial specialization used for make_shared_for_overwrite<non-array>(). @@ -715,9 +711,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _M_get_deleter(const std::type_info&) noexcept override { return nullptr; } }; -#endif // __cpp_lib_smart_ptr_for_overwrite +#endif // __glibcxx_smart_ptr_for_overwrite -#if __cpp_lib_shared_ptr_arrays >= 201707L // C++ >= 20 && HOSTED +#if __glibcxx_shared_ptr_arrays >= 201707L // C++ >= 20 && HOSTED struct _Sp_overwrite_tag; // For make_shared<T[]>, make_shared<T[N]>, allocate_shared<T[]> etc. @@ -879,7 +875,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _M_get_deleter(const std::type_info&) noexcept override { return nullptr; } }; -#endif // __cpp_lib_shared_ptr_arrays >= 201707L +#endif // __glibcxx_shared_ptr_arrays >= 201707L // The default deleter for shared_ptr<T[]> and shared_ptr<T[N]>. struct __sp_array_delete @@ -898,7 +894,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Tp> struct __not_alloc_shared_tag<_Sp_alloc_shared_tag<_Tp>> { }; -#if __cpp_lib_shared_ptr_arrays >= 201707L // C++ >= 20 && HOSTED +#if __glibcxx_shared_ptr_arrays >= 201707L // C++ >= 20 && HOSTED template<typename _Alloc> struct __not_alloc_shared_tag<_Sp_counted_array_base<_Alloc>> { }; #endif @@ -974,7 +970,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __p = __pi->_M_ptr(); } -#if __cpp_lib_shared_ptr_arrays >= 201707L // C++ >= 20 && HOSTED +#if __glibcxx_shared_ptr_arrays >= 201707L // C++ >= 20 && HOSTED template<typename _Tp, typename _Alloc, typename _Init> __shared_count(_Tp*& __p, const _Sp_counted_array_base<_Alloc>& __a, _Init __init) @@ -1127,7 +1123,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION private: friend class __weak_count<_Lp>; -#if __cplusplus >= 202002L +#ifdef __glibcxx_atomic_shared_ptr template<typename> friend class _Sp_atomic; #endif @@ -1227,7 +1223,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION private: friend class __shared_count<_Lp>; -#if __cplusplus >= 202002L +#ifdef __glibcxx_atomic_shared_ptr template<typename> friend class _Sp_atomic; #endif @@ -1716,7 +1712,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION friend __shared_ptr<_Tp1, _Lp1> __allocate_shared(const _Alloc& __a, _Args&&... __args); -#if __cpp_lib_shared_ptr_arrays >= 201707L // C++ >= 20 && HOSTED +#if __glibcxx_shared_ptr_arrays >= 201707L // C++ >= 20 && HOSTED // This constructor is non-standard, it is used by allocate_shared<T[]>. template<typename _Alloc, typename _Init = const remove_extent_t<_Tp>*> __shared_ptr(const _Sp_counted_array_base<_Alloc>& __a, @@ -1777,7 +1773,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Del, typename _Tp1> friend _Del* get_deleter(const shared_ptr<_Tp1>&) noexcept; -#if __cplusplus >= 202002L +#ifdef __glibcxx_atomic_shared_ptr friend _Sp_atomic<shared_ptr<_Tp>>; #endif @@ -2111,7 +2107,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Tp1, _Lock_policy _Lp1> friend class __weak_ptr; friend class __enable_shared_from_this<_Tp, _Lp>; friend class enable_shared_from_this<_Tp>; -#if __cplusplus >= 202002L +#ifdef __glibcxx_atomic_shared_ptr friend _Sp_atomic<weak_ptr<_Tp>>; #endif diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h index 637d53d6b95..0b34a4f86b0 100644 --- a/libstdc++-v3/include/bits/stl_algo.h +++ b/libstdc++-v3/include/bits/stl_algo.h @@ -72,10 +72,6 @@ # endif #endif -#define __glibcxx_want_clamp -#define __glibcxx_want_sample -#include <bits/version.h> - // See concept_check.h for the __glibcxx_*_requires macros. namespace std _GLIBCXX_VISIBILITY(default) @@ -3604,7 +3600,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2) } #endif // C++14 -#ifdef __cpp_lib_clamp // C++ >= 17 +#ifdef __glibcxx_clamp // C++ >= 17 /** * @brief Returns the value clamped between lo and hi. * @ingroup sorting_algorithms @@ -3643,7 +3639,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2) __glibcxx_assert(!__comp(__hi, __lo)); return std::min(std::max(__val, __lo, __comp), __hi, __comp); } -#endif // __cpp_lib_clamp +#endif // __glibcxx_clamp /** * @brief Generate two uniformly distributed integers using a @@ -5815,7 +5811,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO } #endif // C++14 -#ifdef __cpp_lib_sample // C++ >= 17 +#ifdef __glibcxx_sample // C++ >= 17 /// Take a random sample from a population. template<typename _PopulationIterator, typename _SampleIterator, typename _Distance, typename _UniformRandomBitGenerator> @@ -5843,7 +5839,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO __sample(__first, __last, __pop_cat{}, __out, __samp_cat{}, __d, std::forward<_UniformRandomBitGenerator>(__g)); } -#endif // __cpp_lib_sample +#endif // __glibcxx_sample _GLIBCXX_END_NAMESPACE_ALGO _GLIBCXX_END_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h index 2f5a4bd4fd4..6276d85b86f 100644 --- a/libstdc++-v3/include/bits/stl_algobase.h +++ b/libstdc++-v3/include/bits/stl_algobase.h @@ -79,9 +79,6 @@ # include <compare> #endif -#define __glibcxx_want_robust_nonmodifying_seq_ops -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -1382,7 +1379,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER (__is_memcmp_ordered_with<_ValueType1, _ValueType2>::__value && __is_pointer<_II1>::__value && __is_pointer<_II2>::__value -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts // For C++20 iterator_traits<volatile T*>::value_type is non-volatile // so __is_byte<T> could be true, but we can't use memcmp with // volatile data. @@ -1648,7 +1645,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO } #endif // C++11 -#ifdef __cpp_lib_robust_nonmodifying_seq_ops // C++ >= 14 +#ifdef __glibcxx_robust_nonmodifying_seq_ops // C++ >= 14 /** * @brief Tests a range for element-wise equality. * @ingroup non_mutating_algorithms @@ -1710,7 +1707,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO return _GLIBCXX_STD_A::__equal4(__first1, __last1, __first2, __last2, __binary_pred); } -#endif // __cpp_lib_robust_nonmodifying_seq_ops +#endif // __glibcxx_robust_nonmodifying_seq_ops /** * @brief Performs @b dictionary comparison on ranges. @@ -1952,7 +1949,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO __gnu_cxx::__ops::__iter_comp_iter(__binary_pred)); } -#if __cpp_lib_robust_nonmodifying_seq_ops // C++ >= 14 +#if __glibcxx_robust_nonmodifying_seq_ops // C++ >= 14 template<typename _InputIterator1, typename _InputIterator2, typename _BinaryPredicate> _GLIBCXX20_CONSTEXPR diff --git a/libstdc++-v3/include/bits/stl_function.h b/libstdc++-v3/include/bits/stl_function.h index 608d4e96fb2..23d6da34d19 100644 --- a/libstdc++-v3/include/bits/stl_function.h +++ b/libstdc++-v3/include/bits/stl_function.h @@ -60,9 +60,6 @@ #include <bits/move.h> #endif -#define __glibcxx_want_transparent_operators -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -156,7 +153,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @{ */ -#if __cpp_lib_transparent_operators // C++ >= 14 +#if __glibcxx_transparent_operators // C++ >= 14 struct __is_transparent; // undefined template<typename _Tp = void> @@ -244,7 +241,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION }; #pragma GCC diagnostic pop -#ifdef __cpp_lib_transparent_operators // C++ >= 14 +#ifdef __glibcxx_transparent_operators // C++ >= 14 template<> struct plus<void> { @@ -345,7 +342,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * * @{ */ -#if __cpp_lib_transparent_operators // C++ >= 14 +#if __glibcxx_transparent_operators // C++ >= 14 template<typename _Tp = void> struct equal_to; @@ -489,7 +486,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION }; #pragma GCC diagnostic pop -#ifdef __cpp_lib_transparent_operators // C++ >= 14 +#ifdef __glibcxx_transparent_operators // C++ >= 14 /// One of the @link comparison_functors comparison functors@endlink. template<> struct equal_to<void> @@ -765,7 +762,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION is_convertible<_Tp, const volatile void*>, is_convertible<_Up, const volatile void*>>; }; -#endif // __cpp_lib_transparent_operators +#endif // __glibcxx_transparent_operators /** @} */ // 20.3.4 logical operations @@ -777,7 +774,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * * @{ */ -#ifdef __cpp_lib_transparent_operators // C++ >= 14 +#ifdef __glibcxx_transparent_operators // C++ >= 14 template<typename _Tp = void> struct logical_and; @@ -822,7 +819,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION }; #pragma GCC diagnostic pop -#ifdef __cpp_lib_transparent_operators // C++ >= 14 +#ifdef __glibcxx_transparent_operators // C++ >= 14 /// One of the @link logical_functors Boolean operations functors@endlink. template<> struct logical_and<void> @@ -867,10 +864,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION typedef __is_transparent is_transparent; }; -#endif // __cpp_lib_transparent_operators +#endif // __glibcxx_transparent_operators /** @} */ -#ifdef __cpp_lib_transparent_operators // C++ >= 14 +#ifdef __glibcxx_transparent_operators // C++ >= 14 template<typename _Tp = void> struct bit_and; @@ -926,7 +923,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION }; #pragma GCC diagnostic pop -#ifdef __cpp_lib_transparent_operators // C++ >= 14 +#ifdef __glibcxx_transparent_operators // C++ >= 14 template <> struct bit_and<void> { @@ -1416,7 +1413,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /** @} */ -#ifdef __cpp_lib_transparent_operators // C++ >= 14 +#ifdef __glibcxx_transparent_operators // C++ >= 14 template<typename _Func, typename _SfinaeType, typename = __void_t<>> struct __has_is_transparent { }; diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h index b75f87e056d..919b1633930 100644 --- a/libstdc++-v3/include/bits/stl_iterator.h +++ b/libstdc++-v3/include/bits/stl_iterator.h @@ -70,12 +70,6 @@ # include <type_traits> #endif -#define __glibcxx_want_constexpr_iterator -#define __glibcxx_want_array_constexpr -#define __glibcxx_want_make_reverse_iterator -#define __glibcxx_want_move_iterator_concept -#include <bits/version.h> - #if __cplusplus >= 202002L # include <compare> # include <new> @@ -93,7 +87,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @{ */ -#if __cpp_lib_concepts +#if __glibcxx_concepts namespace __detail { // Weaken iterator_category _Cat to _Limit if it is derived from that, @@ -142,7 +136,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Iter> friend class reverse_iterator; -#if __cpp_lib_concepts +#if __glibcxx_concepts // _GLIBCXX_RESOLVE_LIB_DEFECTS // 3435. three_way_comparable_with<reverse_iterator<int*>, [...]> template<typename _Iter> @@ -158,7 +152,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION public: typedef _Iterator iterator_type; typedef typename __traits_type::pointer pointer; -#if ! __cpp_lib_concepts +#if ! __glibcxx_concepts typedef typename __traits_type::difference_type difference_type; typedef typename __traits_type::reference reference; #else @@ -214,7 +208,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * underlying %iterator can be converted to the type of @c current. */ template<typename _Iter> -#if __cpp_lib_concepts +#if __glibcxx_concepts requires __convertible<_Iter> #endif _GLIBCXX17_CONSTEXPR @@ -225,7 +219,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #if __cplusplus >= 201103L template<typename _Iter> -#if __cpp_lib_concepts +#if __glibcxx_concepts requires __convertible<_Iter> && assignable_from<_Iterator&, const _Iter&> #endif @@ -392,7 +386,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION operator[](difference_type __n) const { return *(*this + __n); } -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts [[nodiscard]] friend constexpr iter_rvalue_reference_t<_Iterator> iter_move(const reverse_iterator& __i) @@ -440,7 +434,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * iterators. * */ -#if __cplusplus <= 201703L || ! defined __cpp_lib_concepts +#if __cplusplus <= 201703L || ! defined __glibcxx_concepts template<typename _Iterator> _GLIBCXX_NODISCARD inline _GLIBCXX17_CONSTEXPR bool @@ -641,7 +635,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __make_reverse_iterator(_Iterator __i) { return reverse_iterator<_Iterator>(__i); } -# ifdef __cpp_lib_make_reverse_iterator // C++ >= 14 +# ifdef __glibcxx_make_reverse_iterator // C++ >= 14 // _GLIBCXX_RESOLVE_LIB_DEFECTS // DR 2285. make_reverse_iterator /// Generator function for reverse_iterator. @@ -651,14 +645,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION make_reverse_iterator(_Iterator __i) { return reverse_iterator<_Iterator>(__i); } -# if __cplusplus > 201703L && defined __cpp_lib_concepts +# if __cplusplus > 201703L && defined __glibcxx_concepts template<typename _Iterator1, typename _Iterator2> requires (!sized_sentinel_for<_Iterator1, _Iterator2>) inline constexpr bool disable_sized_sentinel_for<reverse_iterator<_Iterator1>, reverse_iterator<_Iterator2>> = true; # endif // C++20 -# endif // __cpp_lib_make_reverse_iterator +# endif // __glibcxx_make_reverse_iterator template<typename _Iterator> _GLIBCXX20_CONSTEXPR @@ -901,7 +895,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION class insert_iterator : public iterator<output_iterator_tag, void, void, void, void> { -#if __cplusplus > 201703L && defined __cpp_lib_concepts +#if __cplusplus > 201703L && defined __glibcxx_concepts using _Iter = std::__detail::__range_iter_t<_Container>; #else typedef typename _Container::iterator _Iter; @@ -914,7 +908,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// A nested typedef for the type of whatever container you used. typedef _Container container_type; -#if __cplusplus > 201703L && defined __cpp_lib_concepts +#if __cplusplus > 201703L && defined __glibcxx_concepts using difference_type = ptrdiff_t; #endif @@ -1010,7 +1004,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * template parameter deduction, making the compiler match the correct * types for you. */ -#if __cplusplus > 201703L && defined __cpp_lib_concepts +#if __cplusplus > 201703L && defined __glibcxx_concepts template<typename _Container> [[nodiscard]] constexpr insert_iterator<_Container> @@ -1062,7 +1056,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION typedef typename __traits_type::reference reference; typedef typename __traits_type::pointer pointer; -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts using iterator_concept = std::__detail::__iter_concept<_Iterator>; #endif @@ -1373,7 +1367,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * @{ */ -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts template<semiregular _Sent> class move_sentinel { @@ -1417,7 +1411,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace __detail { -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts template<typename _Iterator> struct __move_iter_cat { }; @@ -1444,21 +1438,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION */ template<typename _Iterator> class move_iterator -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts : public __detail::__move_iter_cat<_Iterator> #endif { _Iterator _M_current; using __traits_type = iterator_traits<_Iterator>; -#if ! (__cplusplus > 201703L && __cpp_lib_concepts) +#if ! (__cplusplus > 201703L && __glibcxx_concepts) using __base_ref = typename __traits_type::reference; #endif template<typename _Iter2> friend class move_iterator; -#if __cpp_lib_concepts // C++20 && concepts +#if __glibcxx_concepts // C++20 && concepts // _GLIBCXX_RESOLVE_LIB_DEFECTS // 3435. three_way_comparable_with<reverse_iterator<int*>, [...]> template<typename _Iter2> @@ -1466,7 +1460,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION && convertible_to<const _Iter2&, _Iterator>; #endif -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts static auto _S_iter_concept() { @@ -1484,7 +1478,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION public: using iterator_type = _Iterator; -#ifdef __cpp_lib_move_iterator_concept // C++ >= 20 && lib_concepts +#ifdef __glibcxx_move_iterator_concept // C++ >= 20 && lib_concepts using iterator_concept = decltype(_S_iter_concept()); // iterator_category defined in __move_iter_cat @@ -1515,7 +1509,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION : _M_current(std::move(__i)) { } template<typename _Iter> -#if __cpp_lib_concepts +#if __glibcxx_concepts requires __convertible<_Iter> #endif _GLIBCXX17_CONSTEXPR @@ -1523,7 +1517,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION : _M_current(__i._M_current) { } template<typename _Iter> -#if __cpp_lib_concepts +#if __glibcxx_concepts requires __convertible<_Iter> && assignable_from<_Iterator&, const _Iter&> #endif @@ -1554,7 +1548,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION [[__nodiscard__]] _GLIBCXX17_CONSTEXPR reference operator*() const -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts { return ranges::iter_move(_M_current); } #else { return static_cast<reference>(*_M_current); } @@ -1580,7 +1574,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return __tmp; } -#if __cpp_lib_concepts +#if __glibcxx_concepts constexpr void operator++(int) requires (!forward_iterator<_Iterator>) { ++_M_current; } @@ -1628,13 +1622,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION [[__nodiscard__]] _GLIBCXX17_CONSTEXPR reference operator[](difference_type __n) const -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts { return ranges::iter_move(_M_current + __n); } #else { return std::move(_M_current[__n]); } #endif -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts template<sentinel_for<_Iterator> _Sent> [[nodiscard]] friend constexpr bool @@ -1672,7 +1666,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX17_CONSTEXPR bool operator==(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts requires requires { { __x.base() == __y.base() } -> convertible_to<bool>; } #endif { return __x.base() == __y.base(); } @@ -1699,7 +1693,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX17_CONSTEXPR bool operator<(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; } #endif { return __x.base() < __y.base(); } @@ -1709,7 +1703,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX17_CONSTEXPR bool operator<=(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts requires requires { { __y.base() < __x.base() } -> convertible_to<bool>; } #endif { return !(__y < __x); } @@ -1719,7 +1713,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX17_CONSTEXPR bool operator>(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts requires requires { { __y.base() < __x.base() } -> convertible_to<bool>; } #endif { return __y < __x; } @@ -1729,7 +1723,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX17_CONSTEXPR bool operator>=(const move_iterator<_IteratorL>& __x, const move_iterator<_IteratorR>& __y) -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts requires requires { { __x.base() < __y.base() } -> convertible_to<bool>; } #endif { return !(__x < __y); } @@ -1827,7 +1821,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __make_move_if_noexcept_iterator(_Tp* __i) { return _ReturnType(__i); } -#if __cplusplus > 201703L && __cpp_lib_concepts +#if __cplusplus > 201703L && __glibcxx_concepts // [iterators.common] Common iterators namespace __detail diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h index 82256b7f1c5..6192f227dbd 100644 --- a/libstdc++-v3/include/bits/stl_list.h +++ b/libstdc++-v3/include/bits/stl_list.h @@ -65,9 +65,6 @@ #include <ext/aligned_buffer.h> #endif -#define __glibcxx_want_list_remove_return_type -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -1764,7 +1761,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 #endif private: -#ifdef __cpp_lib_list_remove_return_type // C++ >= 20 && HOSTED +#ifdef __glibcxx_list_remove_return_type // C++ >= 20 && HOSTED typedef size_type __remove_return_type; # define _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG \ __attribute__((__abi_tag__("__cxx20"))) diff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h index 02cce9b37d8..1221bb9c59f 100644 --- a/libstdc++-v3/include/bits/stl_map.h +++ b/libstdc++-v3/include/bits/stl_map.h @@ -63,9 +63,6 @@ #include <tuple> #endif -#define __glibcxx_want_map_try_emplace -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -699,7 +696,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER { merge(__source); } #endif // C++17 -#ifdef __cpp_lib_map_try_emplace // C++ >= 17 && HOSTED +#ifdef __glibcxx_map_try_emplace // C++ >= 17 && HOSTED /** * @brief Attempts to build and insert a std::pair into the %map. * diff --git a/libstdc++-v3/include/bits/stl_pair.h b/libstdc++-v3/include/bits/stl_pair.h index 197a90987e6..0f1495aad73 100644 --- a/libstdc++-v3/include/bits/stl_pair.h +++ b/libstdc++-v3/include/bits/stl_pair.h @@ -65,10 +65,6 @@ # include <compare> #endif -#define __glibcxx_want_constexpr_utility -#define __glibcxx_want_tuples_by_type -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -1054,7 +1050,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { return __pair_get<_Int>::__const_move_get(std::move(__in)); } -#ifdef __cpp_lib_tuples_by_type // C++ >= 14 +#ifdef __glibcxx_tuples_by_type // C++ >= 14 template <typename _Tp, typename _Up> constexpr _Tp& get(pair<_Tp, _Up>& __p) noexcept @@ -1094,7 +1090,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION constexpr const _Tp&& get(const pair<_Up, _Tp>&& __p) noexcept { return std::move(__p.second); } -#endif // __cpp_lib_tuples_by_type +#endif // __glibcxx_tuples_by_type #if __cplusplus > 202002L diff --git a/libstdc++-v3/include/bits/stl_queue.h b/libstdc++-v3/include/bits/stl_queue.h index 1d22578eb1e..63373f3a7f4 100644 --- a/libstdc++-v3/include/bits/stl_queue.h +++ b/libstdc++-v3/include/bits/stl_queue.h @@ -62,9 +62,6 @@ # include <bits/uses_allocator.h> #endif -#define __glibcxx_want_adaptor_iterator_pair_constructor -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -199,7 +196,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION : c(std::move(__q.c), __a) { } #endif -#ifdef __cpp_lib_adaptor_iterator_pair_constructor // C++ >= 23 && HOSTED +#ifdef __glibcxx_adaptor_iterator_pair_constructor // C++ >= 23 && HOSTED template<typename _InputIterator, typename = _RequireInputIter<_InputIterator>> queue(_InputIterator __first, _InputIterator __last) @@ -347,7 +344,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION queue(_Container, _Allocator) -> queue<typename _Container::value_type, _Container>; -#ifdef __cpp_lib_adaptor_iterator_pair_constructor +#ifdef __glibcxx_adaptor_iterator_pair_constructor template<typename _InputIterator, typename _ValT = typename iterator_traits<_InputIterator>::value_type, diff --git a/libstdc++-v3/include/bits/stl_stack.h b/libstdc++-v3/include/bits/stl_stack.h index 2d09098ca86..4a211e452e6 100644 --- a/libstdc++-v3/include/bits/stl_stack.h +++ b/libstdc++-v3/include/bits/stl_stack.h @@ -62,9 +62,6 @@ # include <bits/uses_allocator.h> #endif -#define __glibcxx_want_adaptor_iterator_pair_constructor -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -173,7 +170,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION stack(_Sequence&& __c) : c(std::move(__c)) { } -#ifdef __cpp_lib_adaptor_iterator_pair_constructor // C++ >= 23 && HOSTED +#ifdef __glibcxx_adaptor_iterator_pair_constructor // C++ >= 23 && HOSTED template<typename _InputIterator, typename = _RequireInputIter<_InputIterator>> stack(_InputIterator __first, _InputIterator __last) @@ -322,7 +319,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION stack(_Container, _Allocator) -> stack<typename _Container::value_type, _Container>; -#ifdef __cpp_lib_adaptor_iterator_pair_constructor +#ifdef __glibcxx_adaptor_iterator_pair_constructor template<typename _InputIterator, typename _ValT = typename iterator_traits<_InputIterator>::value_type, diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h index 1cf887b028e..943bedb57f6 100644 --- a/libstdc++-v3/include/bits/stl_tree.h +++ b/libstdc++-v3/include/bits/stl_tree.h @@ -72,9 +72,6 @@ # include <bits/node_handle.h> #endif -#define __glibcxx_want_generic_associative_lookup -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/bits/stl_uninitialized.h b/libstdc++-v3/include/bits/stl_uninitialized.h index 5174cfbcbe2..1282af3bc43 100644 --- a/libstdc++-v3/include/bits/stl_uninitialized.h +++ b/libstdc++-v3/include/bits/stl_uninitialized.h @@ -67,9 +67,6 @@ #include <bits/stl_pair.h> #endif -#define __glibcxx_want_raw_memory_algorithms -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -966,7 +963,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// @endcond #endif -#ifdef __cpp_lib_raw_memory_algorithms // C++ >= 17 +#ifdef __glibcxx_raw_memory_algorithms // C++ >= 17 /** * @brief Default-initializes objects in the range [first,last). * @param __first A forward iterator. @@ -1059,7 +1056,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __count, __result); return {__res.first.base(), __res.second}; } -#endif // __cpp_lib_raw_memory_algorithms +#endif // __glibcxx_raw_memory_algorithms #if __cplusplus >= 201103L /// @cond undocumented diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h index 1a353397e07..5e18f6eedce 100644 --- a/libstdc++-v3/include/bits/stl_vector.h +++ b/libstdc++-v3/include/bits/stl_vector.h @@ -66,9 +66,6 @@ # include <compare> #endif -#define __glibcxx_want_constexpr_vector -#include <bits/version.h> - #include <debug/assertions.h> #if _GLIBCXX_SANITIZE_STD_ALLOCATOR && _GLIBCXX_SANITIZE_VECTOR diff --git a/libstdc++-v3/include/bits/unique_ptr.h b/libstdc++-v3/include/bits/unique_ptr.h index d92fe79e2f2..164f5f7e945 100644 --- a/libstdc++-v3/include/bits/unique_ptr.h +++ b/libstdc++-v3/include/bits/unique_ptr.h @@ -44,10 +44,6 @@ # endif #endif -#define __glibcxx_want_constexpr_memory -#define __glibcxx_want_make_unique -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -1027,7 +1023,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION public __uniq_ptr_hash<unique_ptr<_Tp, _Dp>> { }; -#ifdef __cpp_lib_make_unique // C++ >= 14 && HOSTED +#ifdef __glibcxx_make_unique // C++ >= 14 && HOSTED /// @cond undocumented namespace __detail { diff --git a/libstdc++-v3/include/bits/unordered_map.h b/libstdc++-v3/include/bits/unordered_map.h index 4c9a6bae2fd..1c99a83bc1e 100644 --- a/libstdc++-v3/include/bits/unordered_map.h +++ b/libstdc++-v3/include/bits/unordered_map.h @@ -35,9 +35,6 @@ #include <bits/functional_hash.h> // hash #include <bits/stl_function.h> // equal_to -#define __glibcxx_want_unordered_map_try_emplace -#include <bits/version.h> - namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION @@ -454,7 +451,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER { return _M_h._M_reinsert_node(std::move(__nh)).position; } #endif // C++17 -#ifdef __cpp_lib_unordered_map_try_emplace // C++ >= 17 && HOSTED +#ifdef __glibcxx_unordered_map_try_emplace // C++ >= 17 && HOSTED /** * @brief Attempts to build and insert a std::pair into the * %unordered_map. @@ -538,7 +535,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER return _M_h.try_emplace(__hint, std::move(__k), std::forward<_Args>(__args)...).first; } -#endif // __cpp_lib_unordered_map_try_emplace +#endif // __glibcxx_unordered_map_try_emplace ///@{ /** diff --git a/libstdc++-v3/include/bits/uses_allocator_args.h b/libstdc++-v3/include/bits/uses_allocator_args.h index a4eae74d5e9..ede11db5b46 100644 --- a/libstdc++-v3/include/bits/uses_allocator_args.h +++ b/libstdc++-v3/include/bits/uses_allocator_args.h @@ -32,10 +32,9 @@ #pragma GCC system_header -#define __glibcxx_want_make_obj_using_allocator #include <bits/version.h> -#ifdef __cpp_lib_make_obj_using_allocator // C++ >= 20 && concepts +#ifdef __glibcxx_make_obj_using_allocator // C++ >= 20 && concepts #include <new> // for placement operator new #include <tuple> // for tuple, make_tuple, make_from_tuple #include <bits/stl_construct.h> // construct_at @@ -245,5 +244,5 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// @} _GLIBCXX_END_NAMESPACE_VERSION } // namespace std -#endif // __cpp_lib_make_obj_using_allocator +#endif // __glibcxx_make_obj_using_allocator #endif // _USES_ALLOCATOR_ARGS diff --git a/libstdc++-v3/include/bits/utility.h b/libstdc++-v3/include/bits/utility.h index ebcf5ba36b2..bfcb8e78eba 100644 --- a/libstdc++-v3/include/bits/utility.h +++ b/libstdc++-v3/include/bits/utility.h @@ -35,11 +35,6 @@ #pragma GCC system_header -#define __glibcxx_want_tuple_element_t -#define __glibcxx_want_integer_sequence -#define __glibcxx_want_ranges_zip -#include <bits/version.h> - #if __cplusplus >= 201103L #include <type_traits> @@ -135,7 +130,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // _GLIBCXX_RESOLVE_LIB_DEFECTS // 3378. tuple_size_v/tuple_element_t should be available when // tuple_size/tuple_element are -#ifdef __cpp_lib_tuple_element_t // C++ >= 14 +#ifdef __glibcxx_tuple_element_t // C++ >= 14 template<size_t __i, typename _Tp> using tuple_element_t = typename tuple_element<__i, _Tp>::type; #endif @@ -160,7 +155,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #endif }; -#ifdef __cpp_lib_integer_sequence // C++ >= 14 +#ifdef __glibcxx_integer_sequence // C++ >= 14 /// Class template integer_sequence template<typename _Tp, _Tp... _Idx> @@ -193,7 +188,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// Alias template index_sequence_for template<typename... _Types> using index_sequence_for = make_index_sequence<sizeof...(_Types)>; -#endif // __cpp_lib_integer_sequence +#endif // __glibcxx_integer_sequence #if __cplusplus >= 201703L diff --git a/libstdc++-v3/include/std/algorithm b/libstdc++-v3/include/std/algorithm index c6ebb86e6a9..d7fab417111 100644 --- a/libstdc++-v3/include/std/algorithm +++ b/libstdc++-v3/include/std/algorithm @@ -63,7 +63,15 @@ # include <bits/ranges_algo.h> #endif +#define __glibcxx_want_clamp +#define __glibcxx_want_constexpr_algorithms #define __glibcxx_want_parallel_algorithm +#define __glibcxx_want_ranges_contains +#define __glibcxx_want_ranges_find_last +#define __glibcxx_want_ranges_fold +#define __glibcxx_want_robust_nonmodifying_seq_ops +#define __glibcxx_want_sample +#define __glibcxx_want_shift #include <bits/version.h> #if __cpp_lib_parallel_algorithm // C++ >= 17 && HOSTED diff --git a/libstdc++-v3/include/std/array b/libstdc++-v3/include/std/array index c4d534c3a34..d34ec5c7c43 100644 --- a/libstdc++-v3/include/std/array +++ b/libstdc++-v3/include/std/array @@ -45,6 +45,8 @@ #include <bits/utility.h> // std::index_sequence, std::tuple_size #include <debug/assertions.h> +#define __glibcxx_want_array_constexpr +#define __glibcxx_want_nonmember_container_access #define __glibcxx_want_to_array #include <bits/version.h> diff --git a/libstdc++-v3/include/std/atomic b/libstdc++-v3/include/std/atomic index 713ee2cc539..09bbe2a7245 100644 --- a/libstdc++-v3/include/std/atomic +++ b/libstdc++-v3/include/std/atomic @@ -39,9 +39,12 @@ #else #define __glibcxx_want_atomic_is_always_lock_free +#define __glibcxx_want_atomic_flag_test #define __glibcxx_want_atomic_float #define __glibcxx_want_atomic_ref #define __glibcxx_want_atomic_lock_free_type_aliases +#define __glibcxx_want_atomic_value_initialization +#define __glibcxx_want_atomic_wait #include <bits/version.h> #include <bits/atomic_base.h> diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono index 10bdd1c4ede..e4ba6eafceb 100644 --- a/libstdc++-v3/include/std/chrono +++ b/libstdc++-v3/include/std/chrono @@ -50,6 +50,10 @@ # include <bits/unique_ptr.h> #endif +#define __glibcxx_want_chrono +#define __glibcxx_want_chrono_udls +#include <bits/version.h> + namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/std/condition_variable b/libstdc++-v3/include/std/condition_variable index 5ed4d3b2519..a4c4f8400ec 100644 --- a/libstdc++-v3/include/std/condition_variable +++ b/libstdc++-v3/include/std/condition_variable @@ -363,7 +363,7 @@ _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2) const chrono::duration<_Rep, _Period>& __rtime, _Predicate __p) { return wait_until(__lock, __clock_t::now() + __rtime, std::move(__p)); } -#ifdef __cpp_lib_jthread +#ifdef __glibcxx_jthread template <class _Lock, class _Predicate> bool wait(_Lock& __lock, stop_token __stoken, diff --git a/libstdc++-v3/include/std/deque b/libstdc++-v3/include/std/deque index c0b05ddfc64..e48dc9968e8 100644 --- a/libstdc++-v3/include/std/deque +++ b/libstdc++-v3/include/std/deque @@ -69,6 +69,7 @@ #include <bits/deque.tcc> #define __glibcxx_want_erase_if +#define __glibcxx_want_nonmember_container_access #include <bits/version.h> #ifdef _GLIBCXX_DEBUG diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format index 1e7172575ec..8ec1c8a0b9a 100644 --- a/libstdc++-v3/include/std/format +++ b/libstdc++-v3/include/std/format @@ -34,6 +34,7 @@ #include <bits/requires_hosted.h> // for std::string #define __glibcxx_want_format +#define __glibcxx_want_format_ranges #include <bits/version.h> #ifdef __cpp_lib_format // C++ >= 20 && HOSTED @@ -2041,7 +2042,7 @@ namespace __format }; #endif -#if defined __cpp_lib_to_chars +#if defined __glibcxx_to_chars /// Format a floating-point value. template<__format::__formattable_float _Tp, __format::__char _CharT> struct formatter<_Tp, _CharT> @@ -3246,7 +3247,7 @@ namespace __format return std::forward<_Visitor>(__vis)(_M_val._M_ll); case _Arg_ull: return std::forward<_Visitor>(__vis)(_M_val._M_ull); -#if __cpp_lib_to_chars // FIXME: need to be able to format these types! +#if __glibcxx_to_chars // FIXME: need to be able to format these types! case _Arg_flt: return std::forward<_Visitor>(__vis)(_M_val._M_flt); case _Arg_dbl: diff --git a/libstdc++-v3/include/std/forward_list b/libstdc++-v3/include/std/forward_list index bd642a16e42..0870bc22f47 100644 --- a/libstdc++-v3/include/std/forward_list +++ b/libstdc++-v3/include/std/forward_list @@ -46,6 +46,9 @@ #endif #define __glibcxx_want_erase_if +#define __glibcxx_want_incomplete_container_elements +#define __glibcxx_want_list_remove_return_type +#define __glibcxx_want_nonmember_container_access #include <bits/version.h> #if __cplusplus >= 201703L @@ -67,7 +70,7 @@ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Tp, typename _Alloc, typename _Predicate> - inline typename forward_list<_Tp, _Alloc>::size_type + inline typename forward_list<_Tp, _Alloc>::size_type erase_if(forward_list<_Tp, _Alloc>& __cont, _Predicate __pred) { return __cont.remove_if(__pred); } diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional index 9551e38dfdb..729d11c9804 100644 --- a/libstdc++-v3/include/std/functional +++ b/libstdc++-v3/include/std/functional @@ -48,14 +48,6 @@ #include <bits/c++config.h> #include <bits/stl_function.h> // std::equal_to, std::unary_function etc. -#define __glibcxx_want_invoke -#define __glibcxx_want_constexpr_functional -#define __glibcxx_want_invoke_r -#define __glibcxx_want_bind_front -#define __glibcxx_want_not_fn -#define __glibcxx_want_boyer_moore_searcher -#include <bits/version.h> - #if __cplusplus >= 201103L #include <tuple> @@ -82,6 +74,17 @@ # include <bits/move_only_function.h> #endif +#define __glibcxx_want_boyer_moore_searcher +#define __glibcxx_want_bind_front +#define __glibcxx_want_constexpr_functional +#define __glibcxx_want_invoke +#define __glibcxx_want_invoke_r +#define __glibcxx_want_move_only_function +#define __glibcxx_want_not_fn +#define __glibcxx_want_ranges +#define __glibcxx_want_transparent_operators +#include <bits/version.h> + #endif // C++11 namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/ios b/libstdc++-v3/include/std/ios index 80be29f461e..3f4ad1c2cd6 100644 --- a/libstdc++-v3/include/std/ios +++ b/libstdc++-v3/include/std/ios @@ -45,4 +45,7 @@ #include <streambuf> #include <bits/basic_ios.h> +#define __glibcxx_want_ios_noreplace +#include <bits/version.h> + #endif /* _GLIBCXX_IOS */ diff --git a/libstdc++-v3/include/std/iterator b/libstdc++-v3/include/std/iterator index 8c8670fbdf0..7461efbdeb5 100644 --- a/libstdc++-v3/include/std/iterator +++ b/libstdc++-v3/include/std/iterator @@ -67,7 +67,14 @@ #endif #include <bits/range_access.h> +#define __glibcxx_want_array_constexpr +#define __glibcxx_want_constexpr_iterator +#define __glibcxx_want_make_reverse_iterator +#define __glibcxx_want_move_iterator_concept +#define __glibcxx_want_nonmember_container_access #define __glibcxx_want_null_iterators +#define __glibcxx_want_ranges +#define __glibcxx_want_ssize #include <bits/version.h> #if __cplusplus >= 202002L diff --git a/libstdc++-v3/include/std/list b/libstdc++-v3/include/std/list index 98415919dd4..b5185a9dec2 100644 --- a/libstdc++-v3/include/std/list +++ b/libstdc++-v3/include/std/list @@ -70,6 +70,9 @@ #endif #define __glibcxx_want_erase_if +#define __glibcxx_want_incomplete_container_elements +#define __glibcxx_want_list_remove_return_type +#define __glibcxx_want_nonmember_container_access #include <bits/version.h> #if __cplusplus >= 201703L diff --git a/libstdc++-v3/include/std/map b/libstdc++-v3/include/std/map index a0f3fce7b28..008d8d3bdef 100644 --- a/libstdc++-v3/include/std/map +++ b/libstdc++-v3/include/std/map @@ -69,6 +69,13 @@ # include <debug/map> #endif +#define __glibcxx_want_erase_if +#define __glibcxx_want_generic_associative_lookup +#define __glibcxx_want_map_try_emplace +#define __glibcxx_want_node_extract +#define __glibcxx_want_nonmember_container_access +#include <bits/version.h> + #if __cplusplus >= 201703L #include <bits/memory_resource.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/memory b/libstdc++-v3/include/std/memory index 3cce72cc036..ac83761a26c 100644 --- a/libstdc++-v3/include/std/memory +++ b/libstdc++-v3/include/std/memory @@ -91,8 +91,22 @@ # include <bits/uses_allocator_args.h> #endif +#define __glibcxx_want_allocator_traits_is_always_equal +#define __glibcxx_want_assume_aligned +#define __glibcxx_want_atomic_shared_ptr #define __glibcxx_want_atomic_value_initialization +#define __glibcxx_want_constexpr_dynamic_alloc +#define __glibcxx_want_constexpr_memory +#define __glibcxx_want_enable_shared_from_this +#define __glibcxx_want_make_unique #define __glibcxx_want_parallel_algorithm +#define __glibcxx_want_ranges +#define __glibcxx_want_raw_memory_algorithms +#define __glibcxx_want_shared_ptr_arrays +#define __glibcxx_want_shared_ptr_weak_type +#define __glibcxx_want_smart_ptr_for_overwrite +#define __glibcxx_want_to_address +#define __glibcxx_want_transparent_operators #include <bits/version.h> #if __cplusplus >= 201103L && __cplusplus <= 202002L && _GLIBCXX_HOSTED diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric index 8c8d200021f..559e6242e92 100644 --- a/libstdc++-v3/include/std/numeric +++ b/libstdc++-v3/include/std/numeric @@ -85,6 +85,7 @@ #define __glibcxx_want_interpolate #define __glibcxx_want_lcm #define __glibcxx_want_parallel_algorithm +#define __glibcxx_want_ranges_iota #include <bits/version.h> /** diff --git a/libstdc++-v3/include/std/queue b/libstdc++-v3/include/std/queue index ec620ac6d62..8980ba8a578 100644 --- a/libstdc++-v3/include/std/queue +++ b/libstdc++-v3/include/std/queue @@ -65,4 +65,7 @@ #include <bits/stl_function.h> #include <bits/stl_queue.h> +#define __glibcxx_want_adaptor_iterator_pair_constructor +#include <bits/version.h> + #endif /* _GLIBCXX_QUEUE */ diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges index 41f95dc8f78..26d6c013ad0 100644 --- a/libstdc++-v3/include/std/ranges +++ b/libstdc++-v3/include/std/ranges @@ -51,6 +51,7 @@ #include <bits/ranges_util.h> #include <bits/refwrap.h> +#define __glibcxx_want_ranges #define __glibcxx_want_ranges_as_const #define __glibcxx_want_ranges_as_rvalue #define __glibcxx_want_ranges_cartesian_product diff --git a/libstdc++-v3/include/std/regex b/libstdc++-v3/include/std/regex index 7f63d8606f7..ff3320522c1 100644 --- a/libstdc++-v3/include/std/regex +++ b/libstdc++-v3/include/std/regex @@ -68,6 +68,9 @@ #include <bits/regex.h> #include <bits/regex_executor.h> +#define __glibcxx_want_nonmember_container_access +#include <bits/version.h> + #if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI #include <bits/memory_resource.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/scoped_allocator b/libstdc++-v3/include/std/scoped_allocator index 8af432ada42..2f10479763e 100644 --- a/libstdc++-v3/include/std/scoped_allocator +++ b/libstdc++-v3/include/std/scoped_allocator @@ -196,7 +196,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION using __outermost_alloc_traits = allocator_traits<typename __outermost_type<_Alloc>::type>; -#if ! __cpp_lib_make_obj_using_allocator +#if ! __glibcxx_make_obj_using_allocator template<typename _Tp, typename... _Args> void _M_construct(__uses_alloc0, _Tp* __p, _Args&&... __args) @@ -373,7 +373,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION size_type max_size() const { return __traits::max_size(outer_allocator()); } -#if ! __cpp_lib_make_obj_using_allocator +#if ! __glibcxx_make_obj_using_allocator template<typename _Tp, typename... _Args> typename __not_pair<_Tp>::type construct(_Tp* __p, _Args&&... __args) @@ -473,7 +473,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION const scoped_allocator_adaptor<_OutA2, _InA...>& __b) noexcept; private: -#if ! __cpp_lib_make_obj_using_allocator +#if ! __glibcxx_make_obj_using_allocator template<typename _Ind, typename... _Args> tuple<_Args&&...> _M_construct_p(__uses_alloc0, _Ind, tuple<_Args...>& __t) diff --git a/libstdc++-v3/include/std/set b/libstdc++-v3/include/std/set index 5641b791668..55cabda0c2e 100644 --- a/libstdc++-v3/include/std/set +++ b/libstdc++-v3/include/std/set @@ -69,6 +69,12 @@ # include <debug/set> #endif +#define __glibcxx_want_erase_if +#define __glibcxx_want_generic_associative_lookup +#define __glibcxx_want_node_extract +#define __glibcxx_want_nonmember_container_access +#include <bits/version.h> + #if __cplusplus >= 201703L #include <bits/memory_resource.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/stack b/libstdc++-v3/include/std/stack index 4cc89f0d585..dda18b6222e 100644 --- a/libstdc++-v3/include/std/stack +++ b/libstdc++-v3/include/std/stack @@ -62,4 +62,7 @@ #include <deque> #include <bits/stl_stack.h> +#define __glibcxx_want_adaptor_iterator_pair_constructor +#include <bits/version.h> + #endif /* _GLIBCXX_STACK */ diff --git a/libstdc++-v3/include/std/stop_token b/libstdc++-v3/include/std/stop_token index 3be0f5a3ac4..fce1cf59b88 100644 --- a/libstdc++-v3/include/std/stop_token +++ b/libstdc++-v3/include/std/stop_token @@ -109,7 +109,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION this_thread::yield(); } -#ifndef __cpp_lib_semaphore +#ifndef __glibcxx_semaphore struct binary_semaphore { explicit binary_semaphore(int __d) : _M_counter(__d > 0) { } diff --git a/libstdc++-v3/include/std/string b/libstdc++-v3/include/std/string index 832e9d8915f..78e8bacc007 100644 --- a/libstdc++-v3/include/std/string +++ b/libstdc++-v3/include/std/string @@ -54,7 +54,13 @@ #include <bits/basic_string.h> #include <bits/basic_string.tcc> +#define __glibcxx_want_constexpr_char_traits +#define __glibcxx_want_constexpr_string #define __glibcxx_want_erase_if +#define __glibcxx_want_nonmember_container_access +#define __glibcxx_want_string_resize_and_overwrite +#define __glibcxx_want_string_udls +#define __glibcxx_want_to_string #include <bits/version.h> #if __cplusplus >= 201703L && _GLIBCXX_USE_CXX11_ABI diff --git a/libstdc++-v3/include/std/string_view b/libstdc++-v3/include/std/string_view index cf288ed3a36..cbb6bb0928f 100644 --- a/libstdc++-v3/include/std/string_view +++ b/libstdc++-v3/include/std/string_view @@ -35,6 +35,7 @@ #pragma GCC system_header +#define __glibcxx_want_constexpr_char_traits #define __glibcxx_want_string_view #define __glibcxx_want_constexpr_string_view #define __glibcxx_want_starts_ends_with diff --git a/libstdc++-v3/include/std/tuple b/libstdc++-v3/include/std/tuple index 797d8c03112..f2e008be34f 100644 --- a/libstdc++-v3/include/std/tuple +++ b/libstdc++-v3/include/std/tuple @@ -45,9 +45,11 @@ #endif #define __glibcxx_want_constexpr_tuple +#define __glibcxx_want_tuple_element_t #define __glibcxx_want_tuples_by_type #define __glibcxx_want_apply #define __glibcxx_want_make_from_tuple +#define __glibcxx_want_ranges_zip #include <bits/version.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/unordered_map b/libstdc++-v3/include/std/unordered_map index b72845be18e..ec92492e8ed 100644 --- a/libstdc++-v3/include/std/unordered_map +++ b/libstdc++-v3/include/std/unordered_map @@ -46,6 +46,13 @@ # include <debug/unordered_map> #endif +#define __glibcxx_want_erase_if +#define __glibcxx_want_generic_unordered_lookup +#define __glibcxx_want_node_extract +#define __glibcxx_want_nonmember_container_access +#define __glibcxx_want_unordered_map_try_emplace +#include <bits/version.h> + #if __cplusplus >= 201703L #include <bits/memory_resource.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/unordered_set b/libstdc++-v3/include/std/unordered_set index 22a1c7ca24d..b77b6229fc2 100644 --- a/libstdc++-v3/include/std/unordered_set +++ b/libstdc++-v3/include/std/unordered_set @@ -46,6 +46,12 @@ # include <debug/unordered_set> #endif +#define __glibcxx_want_erase_if +#define __glibcxx_want_generic_unordered_lookup +#define __glibcxx_want_node_extract +#define __glibcxx_want_nonmember_container_access +#include <bits/version.h> + #if __cplusplus >= 201703L #include <bits/memory_resource.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/std/utility b/libstdc++-v3/include/std/utility index bdaf5d4c31b..18bef7adccd 100644 --- a/libstdc++-v3/include/std/utility +++ b/libstdc++-v3/include/std/utility @@ -68,15 +68,6 @@ #include <bits/stl_relops.h> #include <bits/stl_pair.h> -#define __glibcxx_want_as_const -#define __glibcxx_want_constexpr_algorithms -#define __glibcxx_want_exchange_function -#define __glibcxx_want_forward_like -#define __glibcxx_want_integer_comparison_functions -#define __glibcxx_want_to_underlying -#define __glibcxx_want_unreachable -#include <bits/version.h> - #if __cplusplus >= 201103L #include <initializer_list> @@ -88,6 +79,21 @@ #include <ext/numeric_traits.h> // __is_standard_integer, __int_traits #endif +#define __glibcxx_want_addressof_constexpr +#define __glibcxx_want_as_const +#define __glibcxx_want_constexpr_algorithms +#define __glibcxx_want_constexpr_utility +#define __glibcxx_want_exchange_function +#define __glibcxx_want_forward_like +#define __glibcxx_want_integer_comparison_functions +#define __glibcxx_want_integer_sequence +#define __glibcxx_want_ranges_zip +#define __glibcxx_want_to_underlying +#define __glibcxx_want_tuple_element_t +#define __glibcxx_want_tuples_by_type +#define __glibcxx_want_unreachable +#include <bits/version.h> + namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/std/vector b/libstdc++-v3/include/std/vector index ecd9f7108f6..5e1d54a04ac 100644 --- a/libstdc++-v3/include/std/vector +++ b/libstdc++-v3/include/std/vector @@ -76,7 +76,10 @@ # include <debug/vector> #endif +#define __glibcxx_want_constexpr_vector #define __glibcxx_want_erase_if +#define __glibcxx_want_incomplete_container_elements +#define __glibcxx_want_nonmember_container_access #include <bits/version.h> #if __cplusplus >= 201703L -- 2.41.0 ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-11-16 8:11 UTC | newest] Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-11-16 8:11 [committed 1/2] libstdc++: Test for feature test macros more accurately Jonathan Wakely 2023-11-16 8:11 ` [committed 2/2] libstdc++: Only declare feature test macros in standard headers Jonathan Wakely
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).