diff options
author | Martin Liska <mliska@suse.cz> | 2022-10-04 12:04:54 +0200 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2022-10-04 12:04:54 +0200 |
commit | da0970e441345f8349522ff1abac5c223044ebb1 (patch) | |
tree | 17c2091a83c584a1eae4f8e219a460f85c5d3fd8 /libstdc++-v3 | |
parent | 54f3cfaf3a6f50958c71d79c85206a6c722e1a22 (diff) | |
parent | e886ebd17965d78f609b62479f4f48085108389c (diff) | |
download | gcc-da0970e441345f8349522ff1abac5c223044ebb1.zip gcc-da0970e441345f8349522ff1abac5c223044ebb1.tar.gz gcc-da0970e441345f8349522ff1abac5c223044ebb1.tar.bz2 |
Merge branch 'master' into devel/sphinx
Diffstat (limited to 'libstdc++-v3')
500 files changed, 2432 insertions, 767 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a1585d8..be69777 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,718 @@ +2022-10-03 Jonathan Wakely <jwakely@redhat.com> + + * doc/xml/manual/status_cxx2020.xml: Update C++20 status. + * doc/html/manual/status.html: Regenerate. + +2022-10-03 Arsen Arsenović <arsen@aarsen.me> + + PR libstdc++/103626 + * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: + Require ET hosted. + * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise. + * testsuite/18_support/new_nothrow.cc: Likewise. + * testsuite/20_util/allocator/105975.cc: Likewise. + * testsuite/20_util/allocator/14176.cc: Likewise. + * testsuite/20_util/allocator/64135.cc: Likewise. + * testsuite/20_util/allocator/89510.cc: Likewise. + * testsuite/20_util/allocator/lwg3190.cc: Likewise. + * testsuite/20_util/allocator/overaligned.cc: Likewise. + * testsuite/20_util/allocator/rebind_c++20.cc: Likewise. + * testsuite/20_util/allocator/requirements/constexpr.cc: + Likewise. + * testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc: + Likewise. + * testsuite/20_util/allocator/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/allocator/requirements/typedefs_c++20.cc: + Likewise. + * testsuite/20_util/allocator/void.cc: Likewise. + * testsuite/20_util/allocator_traits/header-2.cc: Likewise. + * testsuite/20_util/allocator_traits/header.cc: Likewise. + * testsuite/20_util/allocator_traits/members/92878_92947.cc: + Likewise. + * testsuite/20_util/allocator_traits/members/pointers.cc: + Likewise. + * testsuite/20_util/allocator_traits/requirements/typedefs.cc: + Likewise. + * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc: + Likewise. + * testsuite/20_util/bind/42593.cc: Likewise. + * testsuite/20_util/bitset/access/dr396.cc: Likewise. + * testsuite/20_util/bitset/access/to_string.cc: Likewise. + * testsuite/20_util/bitset/cons/16020.cc: Likewise. + * testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise. + * testsuite/20_util/bitset/cons/dr396.cc: Likewise. + * testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise. + * testsuite/20_util/bitset/ext/15361.cc: Likewise. + * testsuite/20_util/bitset/operations/13838.cc: Likewise. + * testsuite/20_util/bitset/operations/96303.cc: Likewise. + * testsuite/20_util/bitset/version.cc: Likewise. + * testsuite/20_util/enable_shared_from_this/56383.cc: Likewise. + * testsuite/20_util/enable_shared_from_this/89303.cc: Likewise. + * testsuite/20_util/enable_shared_from_this/members/assign.cc: + Likewise. + * testsuite/20_util/enable_shared_from_this/members/const.cc: + Likewise. + * testsuite/20_util/enable_shared_from_this/members/reinit.cc: + Likewise. + * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc: + Likewise. + * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc: + Likewise. + * testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/forward/1.cc: Likewise. + * testsuite/20_util/forward/1_neg.cc: Likewise. + * testsuite/20_util/function/1.cc: Likewise. + * testsuite/20_util/function/10.cc: Likewise. + * testsuite/20_util/function/2.cc: Likewise. + * testsuite/20_util/function/3.cc: Likewise. + * testsuite/20_util/function/4.cc: Likewise. + * testsuite/20_util/function/43397.cc: Likewise. + * testsuite/20_util/function/48541.cc: Likewise. + * testsuite/20_util/function/5.cc: Likewise. + * testsuite/20_util/function/58569.cc: Likewise. + * testsuite/20_util/function/6.cc: Likewise. + * testsuite/20_util/function/60594.cc: Likewise. + * testsuite/20_util/function/65760.cc: Likewise. + * testsuite/20_util/function/69222.cc: Likewise. + * testsuite/20_util/function/7.cc: Likewise. + * testsuite/20_util/function/77322.cc: Likewise. + * testsuite/20_util/function/8.cc: Likewise. + * testsuite/20_util/function/9.cc: Likewise. + * testsuite/20_util/function/91456.cc: Likewise. + * testsuite/20_util/function/assign/move.cc: Likewise. + * testsuite/20_util/function/assign/move_target.cc: Likewise. + * testsuite/20_util/function/cmp/cmp_neg.cc: Likewise. + * testsuite/20_util/function/cons/55320.cc: Likewise. + * testsuite/20_util/function/cons/57465.cc: Likewise. + * testsuite/20_util/function/cons/72820.cc: Likewise. + * testsuite/20_util/function/cons/addressof.cc: Likewise. + * testsuite/20_util/function/cons/callable.cc: Likewise. + * testsuite/20_util/function/cons/deduction.cc: Likewise. + * testsuite/20_util/function/cons/lwg2774.cc: Likewise. + * testsuite/20_util/function/cons/move.cc: Likewise. + * testsuite/20_util/function/cons/move_target.cc: Likewise. + * testsuite/20_util/function/cons/noexcept.cc: Likewise. + * testsuite/20_util/function/cons/non_copyconstructible.cc: + Likewise. + * testsuite/20_util/function/cons/refqual.cc: Likewise. + * testsuite/20_util/function/cons/70692.cc: Likewise. + * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise. + * testsuite/20_util/function/invoke/forwarding.cc: Likewise. + * testsuite/20_util/function/invoke/move_only.cc: Likewise. + * testsuite/20_util/function/null_pointer_comparisons.cc: + Likewise. + * testsuite/20_util/function/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/function/target_no_rtti.cc: Likewise. + * testsuite/20_util/function_objects/83607.cc: Likewise. + * testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise. + * testsuite/20_util/headers/cstdlib/functions_std.cc: Likewise. + * testsuite/20_util/headers/functional/types_std_c++0x.cc: + Likewise. + * testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise. + * testsuite/20_util/is_function/35637.cc: Likewise. + * testsuite/20_util/move/1.cc: Likewise. + * testsuite/20_util/move_only_function/call.cc: Likewise. + * testsuite/20_util/move_only_function/cons.cc: Likewise. + * testsuite/20_util/move_only_function/move.cc: Likewise. + * testsuite/20_util/move_only_function/version.cc: Likewise. + * testsuite/20_util/owner_less/cmp.cc: Likewise. + * testsuite/20_util/owner_less/noexcept.cc: Likewise. + * testsuite/20_util/owner_less/void.cc: Likewise. + * testsuite/20_util/pointer_safety/1.cc: Likewise. + * testsuite/20_util/scoped_allocator/65279.cc: Likewise. + * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise. + * testsuite/20_util/scoped_allocator/construct_pair.cc: + Likewise. + * testsuite/20_util/scoped_allocator/dr2586.cc: Likewise. + * testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc: + Likewise. + * testsuite/20_util/shared_ptr/assign/assign.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: + Likewise. + * testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/move.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/sfinae.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: + Likewise. + * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc: + Likewise. + * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: + Likewise. + * testsuite/20_util/shared_ptr/atomic/1.cc: Likewise. + * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise. + * testsuite/20_util/shared_ptr/casts/1.cc: Likewise. + * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise. + * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise. + * testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise. + * testsuite/20_util/shared_ptr/comparison/86537.cc: Likewise. + * testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise. + * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc: + Likewise. + * testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise. + * testsuite/20_util/shared_ptr/comparison/less.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/39405.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/46910.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/51365.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/52924.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/55123.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/58659.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/58839.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/61036.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/79467.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/80229.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/alias.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/array.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/copy.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/default.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/lwg2802.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/lwg3548.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/move.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc: + Likewise. + * testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: + Likewise. + * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: + Likewise. + * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc: + Likewise. + * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc: + Likewise. + * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise. + * testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/36949.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc: + Likewise. + * testsuite/20_util/shared_ptr/creation/58594.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/87278.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/92878_92947.cc: + Likewise. + * testsuite/20_util/shared_ptr/creation/99006.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/make.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/no_rtti.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/private.cc: Likewise. + * testsuite/20_util/shared_ptr/creation/single_allocation.cc: + Likewise. + * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc: + Likewise. + * testsuite/20_util/shared_ptr/creation/version.cc: Likewise. + * testsuite/20_util/shared_ptr/dest/dest.cc: Likewise. + * testsuite/20_util/shared_ptr/hash/1.cc: Likewise. + * testsuite/20_util/shared_ptr/misc/24595.cc: Likewise. + * testsuite/20_util/shared_ptr/misc/42019.cc: Likewise. + * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise. + * testsuite/20_util/shared_ptr/misc/swap.cc: Likewise. + * testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise. + * testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise. + * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: + Likewise. + * testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise. + * testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise. + * testsuite/20_util/shared_ptr/observers/array.cc: Likewise. + * testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise. + * testsuite/20_util/shared_ptr/observers/get.cc: Likewise. + * testsuite/20_util/shared_ptr/observers/owner_before.cc: + Likewise. + * testsuite/20_util/shared_ptr/observers/unique.cc: Likewise. + * testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise. + * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc: + Likewise. + * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc: + Likewise. + * testsuite/20_util/shared_ptr/requirements/weak_type.cc: + Likewise. + * testsuite/20_util/specialized_algorithms/construct_at/95788.cc: + Likewise. + * testsuite/20_util/temporary_buffer.cc: Likewise. + * testsuite/20_util/tuple/48476.cc: Likewise. + * testsuite/20_util/tuple/cons/90700.cc: Likewise. + * testsuite/20_util/tuple/cons/96803.cc: Likewise. + * testsuite/20_util/tuple/cons/allocator_with_any.cc: Likewise. + * testsuite/20_util/tuple/cons/allocators.cc: Likewise. + * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: + Likewise. + * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise. + * testsuite/20_util/tuple/p2321r2.cc: Likewise. + * testsuite/20_util/unique_ptr/creation/92878_92947.cc: + Likewise. + * testsuite/20_util/unique_ptr/creation/array.cc: Likewise. + * testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise. + * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise. + * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: + Likewise. + * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc: + Likewise. + * testsuite/20_util/unique_ptr/creation/single.cc: Likewise. + * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise. + * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise. + * testsuite/20_util/uses_allocator/uninitialized_construct.cc: + Likewise. + * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise. + * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise. + * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc: + Likewise. + * testsuite/20_util/weak_ptr/lock/1.cc: Likewise. + * testsuite/20_util/weak_ptr/observers/owner_before.cc: + Likewise. + * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc: + Likewise. + * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc: + Likewise. + * testsuite/21_strings/basic_string/version.cc: Likewise. + * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: + Likewise. + * testsuite/21_strings/c_strings/char/69626.cc: Likewise. + * testsuite/21_strings/char_traits/requirements/version.cc: + Likewise. + * testsuite/23_containers/vector/requirements/version.cc: + Likewise. + * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc: + Likewise. + * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc: + Likewise. + * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc: + Likewise. + * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc: + Likewise. + * testsuite/24_iterators/istreambuf_iterator/92285.cc: Likewise. + * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc: + Likewise. + * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc: + Likewise. + * testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc: + Likewise. + * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc: + Likewise. + * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc: + Likewise. + * testsuite/25_algorithms/constexpr_macro.cc: Likewise. + * testsuite/25_algorithms/equal/constrained.cc: Likewise. + * testsuite/25_algorithms/headers/cstdlib/functions_std.cc: + Likewise. + * testsuite/25_algorithms/inplace_merge/1.cc: Likewise. + * testsuite/25_algorithms/lexicographical_compare/constrained.cc: + Likewise. + * testsuite/25_algorithms/make_heap/movable.cc: Likewise. + * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise. + * testsuite/25_algorithms/random_shuffle/1.cc: Likewise. + * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise. + * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc: + Likewise. + * testsuite/25_algorithms/sort/35588.cc: Likewise. + * testsuite/25_algorithms/stable_partition/1.cc: Likewise. + * testsuite/25_algorithms/stable_partition/constrained.cc: + Likewise. + * testsuite/25_algorithms/stable_partition/mem_check.cc: + Likewise. + * testsuite/25_algorithms/stable_partition/moveable.cc: + Likewise. + * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc: + Likewise. + * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc: + Likewise. + * testsuite/25_algorithms/stable_sort/1.cc: Likewise. + * testsuite/26_numerics/complex/2.cc: Likewise. + * testsuite/26_numerics/headers/cstdlib/13943.cc: Likewise. + * testsuite/26_numerics/headers/cstdlib/2190.cc: Likewise. + * testsuite/26_numerics/headers/cstdlib/60401.cc: Likewise. + * testsuite/26_numerics/headers/cstdlib/dr2192.cc: Likewise. + * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: Likewise. + * testsuite/26_numerics/headers/cstdlib/dr2735.cc: Likewise. + * testsuite/26_numerics/headers/cstdlib/functions_std.cc: + Likewise. + * testsuite/26_numerics/headers/cstdlib/macros.cc: Likewise. + * testsuite/26_numerics/headers/cstdlib/types_std.cc: Likewise. + * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc: + Likewise. + * testsuite/26_numerics/lerp/version.cc: Likewise. + * testsuite/26_numerics/midpoint/version.cc: Likewise. + * testsuite/27_io/basic_syncbuf/2.cc: Likewise. + * testsuite/27_io/basic_syncstream/2.cc: Likewise. + * testsuite/27_io/fpos/14320-1.cc: Likewise. + * testsuite/27_io/fpos/14320-2.cc: Likewise. + * testsuite/27_io/fpos/14320-3.cc: Likewise. + * testsuite/27_io/fpos/14320-4.cc: Likewise. + * testsuite/27_io/spanstream/version.cc: Likewise. + * testsuite/29_atomics/atomic/lwg3220.cc: Likewise. + * testsuite/29_atomics/atomic/operators/51811.cc: Likewise. + * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise. + * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise. + * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise. + * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise. + * testsuite/30_threads/barrier/2.cc: Likewise. + * testsuite/30_threads/condition_variable_any/stop_token/2.cc: + Likewise. + * testsuite/30_threads/jthread/version.cc: Likewise. + * testsuite/30_threads/latch/2.cc: Likewise. + * testsuite/30_threads/semaphore/2.cc: Likewise. + * testsuite/30_threads/stop_token/2.cc: Likewise. + * testsuite/abi/pr42230.cc: Likewise. + * testsuite/ext/shared_ptr/1.cc: Likewise. + * testsuite/libstdc++-xmethods/shared_ptr.cc: Likewise. + * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise. + * testsuite/std/ranges/adaptors/p1739.cc: Likewise. + * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise. + * testsuite/std/ranges/p2325.cc: Likewise. + +2022-10-03 Jonathan Wakely <jwakely@redhat.com> + + * include/std/bitset (bitset(const C*, size_type n, C, C)) + [!_GLIBCXX_HOSTED]: Remove std::basic_string dependency. + (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: Abort instead of + throwing. + +2022-10-03 Arsen Arsenović <arsen@aarsen.me> + + PR libstdc++/103626 + * include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash. + * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET + hosted. + * testsuite/20_util/bitset/ext/constexpr.cc: Likewise. + +2022-10-03 Jonathan Wakely <jwakely@redhat.com> + + PR libstdc++/103626 + * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace): + Also require hosted. + (check_effective_target_hosted): New proc. + +2022-10-03 Arsen Arsenović <arsen@aarsen.me> + Jonathan Wakely <jwakely@redhat.com> + + PR libstdc++/103626 + * testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]: + Do not include C headers that aren't valid for freestanding. + * testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]: + Do not test tag types that aren't defined for freestanding. + * testsuite/18_support/headers/cstdlib/functions_std.cc: Do not + check for std::getenv and std::system for freestanding. + * testsuite/17_intro/using_namespace_std_exp_neg.cc [!__STDC_HOSTED__]: + Do not test hosted parts of the standard library. + * testsuite/17_intro/using_namespace_std_tr1_neg.cc [!__STDC_HOSTED__]: + Likewise. + * testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]: + Likewise. + * testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]: + Likewise. + * testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise. + * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]: + Likewise. + * testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]: + Likewise. + * testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]: Likewise. + * testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]: Likewise. + * testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]: Likewise. + +2022-10-03 Arsen Arsenović <arsen@aarsen.me> + + PR libstdc++/106953 + * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove + install-freestanding-headers, unifying it with the usual + install-headers + * include/Makefile.in: Regenerate. + +2022-10-03 Arsen Arsenović <arsen@aarsen.me> + Jonathan Wakely <jwakely@redhat.com> + + PR libstdc++/103626 + * include/Makefile.am: Add new header. + * include/Makefile.in: Regenerate. + * include/bits/requires_hosted.h: New header. + * include/experimental/algorithm: Include + <bits/requires_hosted.h>. + * include/experimental/any: Likewise. + * include/experimental/array: Likewise. + * include/experimental/buffer: Likewise. + * include/experimental/chrono: Likewise. + * include/experimental/deque: Likewise. + * include/experimental/executor: Likewise. + * include/experimental/filesystem: Likewise. + * include/experimental/forward_list: Likewise. + * include/experimental/functional: Likewise. + * include/experimental/internet: Likewise. + * include/experimental/io_context: Likewise. + * include/experimental/iterator: Likewise. + * include/experimental/list: Likewise. + * include/experimental/map: Likewise. + * include/experimental/memory: Likewise. + * include/experimental/memory_resource: Likewise. + * include/experimental/net: Likewise. + * include/experimental/netfwd: Likewise. + * include/experimental/numeric: Likewise. + * include/experimental/optional: Likewise. + * include/experimental/propagate_const: Likewise. + * include/experimental/random: Likewise. + * include/experimental/ratio: Likewise. + * include/experimental/regex: Likewise. + * include/experimental/scope: Likewise. + * include/experimental/set: Likewise. + * include/experimental/simd: Likewise. + * include/experimental/socket: Likewise. + * include/experimental/source_location: Likewise. + * include/experimental/string: Likewise. + * include/experimental/string_view: Likewise. + * include/experimental/system_error: Likewise. + * include/experimental/timer: Likewise. + * include/experimental/tuple: Likewise. + * include/experimental/unordered_map: Likewise. + * include/experimental/unordered_set: Likewise. + * include/experimental/utility: Likewise. + * include/experimental/vector: Likewise. + * include/std/barrier: Likewise. + * include/std/chrono: Likewise. + * include/std/condition_variable: Likewise. + * include/std/deque: Likewise. + * include/std/execution: Likewise. + * include/std/filesystem: Likewise. + * include/std/forward_list: Likewise. + * include/std/fstream: Likewise. + * include/std/future: Likewise. + * include/std/iomanip: Likewise. + * include/std/ios: Likewise. + * include/std/iosfwd: Likewise. + * include/std/iostream: Likewise. + * include/std/istream: Likewise. + * include/std/latch: Likewise. + * include/std/list: Likewise. + * include/std/locale: Likewise. + * include/std/map: Likewise. + * include/std/memory_resource: Likewise. + * include/std/mutex: Likewise. + * include/std/ostream: Likewise. + * include/std/queue: Likewise. + * include/std/random: Likewise. + * include/std/regex: Likewise. + * include/std/semaphore: Likewise. + * include/std/set: Likewise. + * include/std/shared_mutex: Likewise. + * include/std/spanstream: Likewise. + * include/std/sstream: Likewise. + * include/std/stack: Likewise. + * include/std/stacktrace: Likewise. + * include/std/stop_token: Likewise. + * include/std/streambuf: Likewise. + * include/std/string: Likewise. + * include/std/syncstream: Likewise. + * include/std/system_error: Likewise. + * include/std/thread: Likewise. + * include/std/unordered_map: Likewise. + * include/std/unordered_set: Likewise. + * include/std/valarray: Likewise. + * include/std/vector: Likewise. + * include/tr1/array: Likewise. + * include/tr1/ccomplex: Likewise. + * include/tr1/cctype: Likewise. + * include/tr1/cfenv: Likewise. + * include/tr1/cfloat: Likewise. + * include/tr1/cinttypes: Likewise. + * include/tr1/climits: Likewise. + * include/tr1/cmath: Likewise. + * include/tr1/complex: Likewise. + * include/tr1/complex.h: Likewise. + * include/tr1/cstdarg: Likewise. + * include/tr1/cstdbool: Likewise. + * include/tr1/cstdint: Likewise. + * include/tr1/cstdio: Likewise. + * include/tr1/cstdlib: Likewise. + * include/tr1/ctgmath: Likewise. + * include/tr1/ctime: Likewise. + * include/tr1/ctype.h: Likewise. + * include/tr1/cwchar: Likewise. + * include/tr1/cwctype: Likewise. + * include/tr1/fenv.h: Likewise. + * include/tr1/float.h: Likewise. + * include/tr1/functional: Likewise. + * include/tr1/inttypes.h: Likewise. + * include/tr1/limits.h: Likewise. + * include/tr1/math.h: Likewise. + * include/tr1/memory: Likewise. + * include/tr1/random: Likewise. + * include/tr1/regex: Likewise. + * include/tr1/stdarg.h: Likewise. + * include/tr1/stdbool.h: Likewise. + * include/tr1/stdint.h: Likewise. + * include/tr1/stdio.h: Likewise. + * include/tr1/stdlib.h: Likewise. + * include/tr1/tgmath.h: Likewise. + * include/tr1/tuple: Likewise. + * include/tr1/type_traits: Likewise. + * include/tr1/unordered_map: Likewise. + * include/tr1/unordered_set: Likewise. + * include/tr1/utility: Likewise. + * include/tr1/wchar.h: Likewise. + * include/tr1/wctype.h: Likewise. + * include/c_global/cmath: Likewise. + * include/ext/algorithm: Include <bits/requires_hosted.h>. + * include/ext/bitmap_allocator.h: Likewise. + * include/ext/cmath: Likewise. + * include/ext/codecvt_specializations.h: Likewise. + * include/ext/debug_allocator.h: Likewise. + * include/ext/enc_filebuf.h: Likewise. + * include/ext/extptr_allocator.h: Likewise. + * include/ext/functional: Likewise. + * include/ext/malloc_allocator.h: Likewise. + * include/ext/memory: Likewise. + * include/ext/mt_allocator.h: Likewise. + * include/ext/new_allocator.h: Likewise. + * include/ext/numeric: Likewise. + * include/ext/pod_char_traits.h: Likewise. + * include/ext/pool_allocator.h: Likewise. + * include/ext/random: Likewise. + * include/ext/random.tcc: Likewise. + * include/ext/rb_tree: Likewise. + * include/ext/rc_string_base.h: Likewise. + * include/ext/rope: Likewise. + * include/ext/ropeimpl.h: Likewise. + * include/ext/slist: Likewise. + * include/ext/sso_string_base.h: Likewise. + * include/ext/stdio_filebuf.h: Likewise. + * include/ext/stdio_sync_filebuf.h: Likewise. + * include/ext/string_conversions.h: Likewise. + * include/ext/throw_allocator.h: Likewise. + * include/ext/vstring.h: Likewise. + * include/ext/vstring.tcc: Likewise. + * include/ext/vstring_fwd.h: Likewise. + * include/ext/vstring_util.h: Likewise. + * include/std/charconv: Likewise. + (__cpp_lib_to_chars): Do not define for freestanding. + * include/std/version: Adjust which macros get defined in + freestanding. + * include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream + functionality from freestanding. + * include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos. + * include/std/memory [!_GLIBCXX_HOSTED]: Omit + <bits/stl_tempbuf.h> in freestanding + * include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover + random_shuffle and stable_partition definition. + * include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit + random_shuffle and stable_partition from freestanding. + * include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit + stable_partition from freestanding. + * include/bits/concept_check.h: Remove needless HOSTED check. + * include/std/iterator: Include <bits/ranges_base.h>. + * include/std/numeric (__cpp_lib_parallel_algorithms): Do not + define for freestanding. + * include/std/functional (__cpp_lib_boyer_moore_searcher): + Likewise. + * testsuite/lib/prune.exp: Match error for hosted-only libstdc++ + tests. + +2022-10-03 Jonathan Wakely <jwakely@redhat.com> + Arsen Arsenović <arsen@aarsen.me> + + * include/precompiled/extc++.h [!_GLIBCXX_HOSTED]: Do not + include headers that aren't valid for freestanding. + * include/precompiled/stdc++.h [!_GLIBCXX_HOSTED]: Likewise. + +2022-10-03 Arsen Arsenović <arsen@aarsen.me> + + * configure.ac: Remove any lines that unconditionally include + <stdio.h> from ac_includes_default, when running Autoconf <2.70. + * configure: Regenerate. + +2022-10-03 Jonathan Wakely <jwakely@redhat.com> + + PR libstdc++/103626 + * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED + to __STDC_HOSTED__ for non-freestanding installations. + * configure: Regenerate. + * include/Makefile.am (${host_builddir}/c++config.h): Adjust + grep pattern. + * include/Makefile.in: Regenerate. + * testsuite/lib/libstdc++.exp (v3-build_support): Use + -fno-freestanding. + * testsuite/libstdc++-abi/abi.exp: Likewise. + +2022-10-03 Jonathan Wakely <jwakely@redhat.com> + + * testsuite/27_io/basic_ostream/inserters_other/char/6.cc: + Change body of unused operator<< overload to throw if called. + * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: + Likewise. + +2022-10-03 François Dumont <fdumont@gcc.gnu.org> + + * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version + namespace for __cxx11 symbols. + (add_one_template_type_printer): Likewise. + (add_one_type_printer): Likewise. + (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al + ambiguous typedef matching both std:: and std::__cxx11:: symbols. + * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete + \#define _GLIBCXX_USE_CXX11_ABI 0. + * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept + std::__cxx11::list. + * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. + * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. + * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20 + and debug mode. + * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. + +2022-09-30 Jonathan Wakely <jwakely@redhat.com> + + * testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset + from binary literal instead of using stringstream. + +2022-09-30 Jonathan Wakely <jwakely@redhat.com> + + * include/std/bitset (operator>>): Use a simple buffer instead + of std::basic_string. + +2022-09-30 Jonathan Wakely <jwakely@redhat.com> + + * include/std/bitset (_M_copy_from_ptr, _M_copy_from_string) + (_M_copy_to_string): Change access to private. + (_M_copy_from_string(const basic_string&, size_t, size_t)): + Remove. + (_M_copy_to_string(const basic_string&)): Remove. + +2022-09-30 Jonathan Wakely <jwakely@redhat.com> + + * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output + directive. + +2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com> + Yvan ROUX <yvan.roux@foss.st.com> + + * testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too. + +2022-09-30 Arsen Arsenović <arsen@aarsen.me> + + * include/std/bitset: Include <bits/stl_algobase.h>. + +2022-09-29 François Dumont <fdumont@gcc.gnu.org> + + * python/libstdcxx/v6/printers.py (add_one_template_type_printer): Register + printer for types in std::__debug namespace with template parameters in std::__8 + namespace. + +2022-09-29 Patrick Palka <ppalka@redhat.com> + + * include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove + __remove_cv and use __remove_cv_t instead. + +2022-09-29 Jonathan Wakely <jwakely@redhat.com> + + * include/std/type_traits (__is_invocable_impl): Check + __has_builtin(__reference_converts_from_temporary) before using + built-in. + 2022-09-28 Jonathan Wakely <jwakely@redhat.com> * doc/xml/manual/evolution.xml: Document std::bind API diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 9aa81e1..1b404d7 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -2992,7 +2992,7 @@ AC_DEFUN([GLIBCXX_ENABLE_HOSTED], [ fi else is_hosted=yes - hosted_define=1 + hosted_define=__STDC_HOSTED__ fi GLIBCXX_CONDITIONAL(GLIBCXX_HOSTED, test $is_hosted = yes) AC_DEFINE_UNQUOTED(_GLIBCXX_HOSTED, $hosted_define, diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 07916d1..4f2c12f 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -3348,6 +3348,15 @@ else GLIBCXX_IS_NATIVE=true fi +# In the case that we're building without headers, we won't have <stdio.h> +# available. In these cases, we have to instruct autotools to never include +# <stdio.h> as a part of default headers. + +if test "x$with_headers" = "xno"; then + ac_includes_default=`echo "$ac_includes_default" | sed '/^#include <stdio.h>$/d'` +fi + + # Sets up automake. Must come after AC_CANONICAL_SYSTEM. Each of the # following is magically included in AUTOMAKE_OPTIONS in each Makefile.am. # 1.x: minimum required version @@ -12191,7 +12200,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12194 "configure" +#line 12203 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12297,7 +12306,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12300 "configure" +#line 12309 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -15651,7 +15660,7 @@ $as_echo "$as_me: Only freestanding libraries will be built" >&6;} fi else is_hosted=yes - hosted_define=1 + hosted_define=__STDC_HOSTED__ fi @@ -15981,7 +15990,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; } # Fake what AC_TRY_COMPILE does. cat > conftest.$ac_ext << EOF -#line 15984 "configure" +#line 15993 "configure" int main() { typedef bool atomic_type; @@ -16016,7 +16025,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; } rm -f conftest* cat > conftest.$ac_ext << EOF -#line 16019 "configure" +#line 16028 "configure" int main() { typedef short atomic_type; @@ -16051,7 +16060,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; } rm -f conftest* cat > conftest.$ac_ext << EOF -#line 16054 "configure" +#line 16063 "configure" int main() { // NB: _Atomic_word not necessarily int. @@ -16087,7 +16096,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; } rm -f conftest* cat > conftest.$ac_ext << EOF -#line 16090 "configure" +#line 16099 "configure" int main() { typedef long long atomic_type; @@ -16243,7 +16252,7 @@ $as_echo "mutex" >&6; } # unnecessary for this test. cat > conftest.$ac_ext << EOF -#line 16246 "configure" +#line 16255 "configure" int main() { _Decimal32 d1; @@ -16285,7 +16294,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # unnecessary for this test. cat > conftest.$ac_ext << EOF -#line 16288 "configure" +#line 16297 "configure" template<typename T1, typename T2> struct same { typedef T2 type; }; diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index b351622..c05fcdd 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -58,6 +58,15 @@ else GLIBCXX_IS_NATIVE=true fi +# In the case that we're building without headers, we won't have <stdio.h> +# available. In these cases, we have to instruct autotools to never include +# <stdio.h> as a part of default headers. +m4_version_prereq([2.70], [], [ +if test "x$with_headers" = "xno"; then + ac_includes_default=`echo "$ac_includes_default" | sed '/^#include <stdio.h>$/d'` +fi +]) + # Sets up automake. Must come after AC_CANONICAL_SYSTEM. Each of the # following is magically included in AUTOMAKE_OPTIONS in each Makefile.am. # 1.x: minimum required version diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index 8706d54..c1d7f68 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -1279,7 +1279,7 @@ or any notes about the implementation. </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_algorithms >= 201806L</code> </td></tr><tr><td align="left"> Constexpr for <code class="code">std::complex</code> </td><td align="left"> <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0415r1.html" target="_top"> P0415R1 </a> - </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_complex >= 201711L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> P0595R2 <code class="code">std::is_constant_evaluated()</code> </td><td align="left"> + </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_complex >= 201711L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> <code class="code">std::is_constant_evaluated()</code> </td><td align="left"> <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0595r2.html" target="_top"> P0595R2 </a> </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_is_constant_evaluated >= 201811L</code> </td></tr><tr><td align="left"> More constexpr containers </td><td align="left"> @@ -1365,10 +1365,10 @@ or any notes about the implementation. </td><td align="center"> 11.1 </td><td align="left"> <code class="code">__cpp_lib_syncbuf >= 201803L</code> </td></tr><tr><td align="left"> Make <code class="code">std::memory_order</code> a scoped enumeration </td><td align="left"> <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0439r0.html" target="_top"> P0439R0 </a> - </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange </td><td align="left"> + </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange </td><td align="left"> <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0528r3.html" target="_top"> P0528R3 </a> - </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Atomic <code class="code">shared_ptr</code> </td><td align="left"> + </td><td align="center"> 13.1 </td><td align="left"> </td></tr><tr><td align="left"> Atomic <code class="code">shared_ptr</code> </td><td align="left"> <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html" target="_top"> P0718R2 </a> </td><td align="center"> 12.1 </td><td align="left"> <code class="code"> __cpp_lib_atomic_shared_ptr >= 201711L</code> </td></tr><tr><td align="left"> std::stop_token and std::jthread </td><td align="left"> @@ -1537,6 +1537,9 @@ or any notes about the implementation. </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_assume_aligned >= 201811L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> Smart pointer creation with default initialization </td><td align="left"> <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1020r1.html" target="_top"> P1020R1 </a> + </td><td align="center"> 12.1 </td><td align="left"> <code class="code">__cpp_lib_smart_ptr_for_overwrite >= 201811L</code> </td></tr><tr><td align="left"> Rename "default_init" Functions </td><td align="left"> + <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1973r1.pdf" target="_top"> + P1973R1 </a> </td><td align="center"> 12.1 </td><td align="left"> <code class="code">__cpp_lib_smart_ptr_for_overwrite >= 201811L</code> </td></tr><tr><td align="left"> Make stateful allocator propagation more consistent for <code class="code">operator+(basic_string)</code> </td><td align="left"> <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1165r1.html" target="_top"> P1165R1 </a> diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml index d979db0..44dee44 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml @@ -94,7 +94,7 @@ or any notes about the implementation. </row> <row> - <entry> P0595R2 <code>std::is_constant_evaluated()</code> </entry> + <entry> <code>std::is_constant_evaluated()</code> </entry> <entry> <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0595r2.html"> P0595R2 </link> @@ -384,13 +384,12 @@ or any notes about the implementation. </row> <row> - <?dbhtml bgcolor="#C8B0B0" ?> <entry> The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange </entry> <entry> <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0528r3.html"> P0528R3 </link> </entry> - <entry align="center"> </entry> + <entry align="center"> 13.1 </entry> <entry /> </row> @@ -942,6 +941,16 @@ or any notes about the implementation. </row> <row> + <entry> Rename "default_init" Functions </entry> + <entry> + <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1973r1.pdf"> + P1973R1 </link> + </entry> + <entry align="center"> 12.1 </entry> + <entry> <code>__cpp_lib_smart_ptr_for_overwrite >= 201811L</code> </entry> + </row> + + <row> <entry> Make stateful allocator propagation more consistent for <code>operator+(basic_string)</code> </entry> <entry> <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1165r1.html"> diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am index 3eeb407..9754252 100644 --- a/libstdc++-v3/include/Makefile.am +++ b/libstdc++-v3/include/Makefile.am @@ -25,58 +25,70 @@ include $(top_srcdir)/fragment.am # Standard C++ includes. std_srcdir = ${glibcxx_srcdir}/include/std std_builddir = . -std_headers = \ +std_freestanding = \ ${std_srcdir}/algorithm \ - ${std_srcdir}/any \ ${std_srcdir}/array \ ${std_srcdir}/atomic \ - ${std_srcdir}/barrier \ ${std_srcdir}/bit \ ${std_srcdir}/bitset \ + ${std_srcdir}/concepts \ + ${std_srcdir}/coroutine \ + ${std_srcdir}/expected \ + ${std_srcdir}/functional \ + ${std_srcdir}/iterator \ + ${std_srcdir}/limits \ + ${std_srcdir}/memory \ + ${std_srcdir}/numbers \ + ${std_srcdir}/numeric \ + ${std_srcdir}/optional \ + ${std_srcdir}/ranges \ + ${std_srcdir}/ratio \ + ${std_srcdir}/scoped_allocator \ + ${std_srcdir}/source_location \ + ${std_srcdir}/span \ + ${std_srcdir}/tuple \ + ${std_srcdir}/type_traits \ + ${std_srcdir}/typeindex \ + ${std_srcdir}/utility \ + ${std_srcdir}/variant \ + ${std_srcdir}/version + +if !GLIBCXX_HOSTED +std_headers = ${std_freestanding} +else GLIBCXX_HOSTED +std_headers = \ + ${std_freestanding} \ + ${std_srcdir}/any \ + ${std_srcdir}/barrier \ ${std_srcdir}/charconv \ ${std_srcdir}/chrono \ ${std_srcdir}/codecvt \ ${std_srcdir}/complex \ - ${std_srcdir}/concepts \ ${std_srcdir}/condition_variable \ - ${std_srcdir}/coroutine \ ${std_srcdir}/deque \ ${std_srcdir}/execution \ - ${std_srcdir}/expected \ ${std_srcdir}/filesystem \ ${std_srcdir}/forward_list \ ${std_srcdir}/fstream \ - ${std_srcdir}/functional \ ${std_srcdir}/future \ ${std_srcdir}/iomanip \ ${std_srcdir}/ios \ ${std_srcdir}/iosfwd \ ${std_srcdir}/iostream \ ${std_srcdir}/istream \ - ${std_srcdir}/iterator \ ${std_srcdir}/latch \ - ${std_srcdir}/limits \ ${std_srcdir}/list \ ${std_srcdir}/locale \ ${std_srcdir}/map \ - ${std_srcdir}/memory \ ${std_srcdir}/memory_resource \ ${std_srcdir}/mutex \ - ${std_srcdir}/numbers \ - ${std_srcdir}/numeric \ - ${std_srcdir}/optional \ ${std_srcdir}/ostream \ ${std_srcdir}/queue \ ${std_srcdir}/random \ - ${std_srcdir}/ranges \ - ${std_srcdir}/ratio \ ${std_srcdir}/regex \ - ${std_srcdir}/scoped_allocator \ ${std_srcdir}/semaphore \ ${std_srcdir}/set \ ${std_srcdir}/shared_mutex \ - ${std_srcdir}/source_location \ - ${std_srcdir}/span \ ${std_srcdir}/spanstream \ ${std_srcdir}/sstream \ ${std_srcdir}/syncstream \ @@ -89,26 +101,68 @@ std_headers = \ ${std_srcdir}/string_view \ ${std_srcdir}/system_error \ ${std_srcdir}/thread \ - ${std_srcdir}/tuple \ - ${std_srcdir}/typeindex \ - ${std_srcdir}/type_traits \ ${std_srcdir}/unordered_map \ ${std_srcdir}/unordered_set \ - ${std_srcdir}/utility \ ${std_srcdir}/valarray \ - ${std_srcdir}/variant \ - ${std_srcdir}/vector \ - ${std_srcdir}/version + ${std_srcdir}/vector +endif GLIBCXX_HOSTED bits_srcdir = ${glibcxx_srcdir}/include/bits bits_builddir = ./bits -bits_headers = \ +bits_freestanding = \ ${bits_srcdir}/algorithmfwd.h \ ${bits_srcdir}/align.h \ - ${bits_srcdir}/alloc_traits.h \ - ${bits_srcdir}/allocated_ptr.h \ ${bits_srcdir}/allocator.h \ + ${bits_srcdir}/alloc_traits.h \ ${bits_srcdir}/atomic_base.h \ + ${bits_srcdir}/c++0x_warning.h \ + ${bits_srcdir}/boost_concept_check.h \ + ${bits_srcdir}/concept_check.h \ + ${bits_srcdir}/cpp_type_traits.h \ + ${bits_srcdir}/enable_special_members.h \ + ${bits_srcdir}/functexcept.h \ + ${bits_srcdir}/functional_hash.h \ + ${bits_srcdir}/invoke.h \ + ${bits_srcdir}/iterator_concepts.h \ + ${bits_srcdir}/max_size_type.h \ + ${bits_srcdir}/memoryfwd.h \ + ${bits_srcdir}/move.h \ + ${bits_srcdir}/predefined_ops.h \ + ${bits_srcdir}/parse_numbers.h \ + ${bits_srcdir}/ptr_traits.h \ + ${bits_srcdir}/range_access.h \ + ${bits_srcdir}/ranges_algo.h \ + ${bits_srcdir}/ranges_algobase.h \ + ${bits_srcdir}/ranges_base.h \ + ${bits_srcdir}/ranges_cmp.h \ + ${bits_srcdir}/ranges_uninitialized.h \ + ${bits_srcdir}/ranges_util.h \ + ${bits_srcdir}/refwrap.h \ + ${bits_srcdir}/stl_algo.h \ + ${bits_srcdir}/stl_algobase.h \ + ${bits_srcdir}/stl_construct.h \ + ${bits_srcdir}/stl_function.h \ + ${bits_srcdir}/stl_iterator.h \ + ${bits_srcdir}/stl_iterator_base_funcs.h \ + ${bits_srcdir}/stl_iterator_base_types.h \ + ${bits_srcdir}/stl_numeric.h \ + ${bits_srcdir}/stl_heap.h \ + ${bits_srcdir}/stl_pair.h \ + ${bits_srcdir}/stl_raw_storage_iter.h \ + ${bits_srcdir}/stl_relops.h \ + ${bits_srcdir}/stl_uninitialized.h \ + ${bits_srcdir}/uniform_int_dist.h \ + ${bits_srcdir}/unique_ptr.h \ + ${bits_srcdir}/uses_allocator.h \ + ${bits_srcdir}/uses_allocator_args.h \ + ${bits_srcdir}/utility.h + +if !GLIBCXX_HOSTED +bits_headers = ${bits_freestanding} +else GLIBCXX_HOSTED +bits_headers = \ + ${bits_freestanding} \ + ${bits_srcdir}/allocated_ptr.h \ ${bits_srcdir}/atomic_futex.h \ ${bits_srcdir}/atomic_timed_wait.h \ ${bits_srcdir}/atomic_wait.h \ @@ -116,17 +170,12 @@ bits_headers = \ ${bits_srcdir}/basic_ios.tcc \ ${bits_srcdir}/basic_string.h \ ${bits_srcdir}/basic_string.tcc \ - ${bits_srcdir}/boost_concept_check.h \ - ${bits_srcdir}/c++0x_warning.h \ ${bits_srcdir}/char_traits.h \ ${bits_srcdir}/charconv.h \ ${bits_srcdir}/chrono.h \ ${bits_srcdir}/codecvt.h \ - ${bits_srcdir}/concept_check.h \ ${bits_srcdir}/cow_string.h \ - ${bits_srcdir}/cpp_type_traits.h \ ${bits_srcdir}/deque.tcc \ - ${bits_srcdir}/enable_special_members.h \ ${bits_srcdir}/erase_if.h \ ${bits_srcdir}/forward_list.h \ ${bits_srcdir}/forward_list.tcc \ @@ -135,17 +184,13 @@ bits_headers = \ ${bits_srcdir}/fs_ops.h \ ${bits_srcdir}/fs_path.h \ ${bits_srcdir}/fstream.tcc \ - ${bits_srcdir}/functexcept.h \ - ${bits_srcdir}/functional_hash.h \ ${bits_srcdir}/gslice.h \ ${bits_srcdir}/gslice_array.h \ ${bits_srcdir}/hashtable.h \ ${bits_srcdir}/hashtable_policy.h \ ${bits_srcdir}/indirect_array.h \ - ${bits_srcdir}/invoke.h \ ${bits_srcdir}/ios_base.h \ ${bits_srcdir}/istream.tcc \ - ${bits_srcdir}/iterator_concepts.h \ ${bits_srcdir}/list.tcc \ ${bits_srcdir}/locale_classes.h \ ${bits_srcdir}/locale_classes.tcc \ @@ -156,31 +201,17 @@ bits_headers = \ ${bits_srcdir}/locale_facets_nonio.tcc \ ${bits_srcdir}/localefwd.h \ ${bits_srcdir}/mask_array.h \ - ${bits_srcdir}/max_size_type.h \ ${bits_srcdir}/memory_resource.h \ - ${bits_srcdir}/memoryfwd.h \ ${bits_srcdir}/mofunc_impl.h \ - ${bits_srcdir}/move.h \ ${bits_srcdir}/move_only_function.h \ ${bits_srcdir}/new_allocator.h \ ${bits_srcdir}/node_handle.h \ ${bits_srcdir}/ostream.tcc \ ${bits_srcdir}/ostream_insert.h \ - ${bits_srcdir}/parse_numbers.h \ ${bits_srcdir}/postypes.h \ - ${bits_srcdir}/predefined_ops.h \ - ${bits_srcdir}/ptr_traits.h \ ${bits_srcdir}/quoted_string.h \ ${bits_srcdir}/random.h \ ${bits_srcdir}/random.tcc \ - ${bits_srcdir}/range_access.h \ - ${bits_srcdir}/ranges_algobase.h \ - ${bits_srcdir}/ranges_algo.h \ - ${bits_srcdir}/ranges_base.h \ - ${bits_srcdir}/ranges_cmp.h \ - ${bits_srcdir}/ranges_uninitialized.h \ - ${bits_srcdir}/ranges_util.h \ - ${bits_srcdir}/refwrap.h \ ${bits_srcdir}/regex.h \ ${bits_srcdir}/regex.tcc \ ${bits_srcdir}/regex_constants.h \ @@ -193,6 +224,7 @@ bits_headers = \ ${bits_srcdir}/regex_compiler.tcc \ ${bits_srcdir}/regex_executor.h \ ${bits_srcdir}/regex_executor.tcc \ + ${bits_srcdir}/requires_hosted.h \ ${bits_srcdir}/semaphore_base.h \ ${bits_srcdir}/shared_ptr.h \ ${bits_srcdir}/shared_ptr_atomic.h \ @@ -204,30 +236,18 @@ bits_headers = \ ${bits_srcdir}/std_function.h \ ${bits_srcdir}/std_mutex.h \ ${bits_srcdir}/std_thread.h \ - ${bits_srcdir}/stl_algo.h \ - ${bits_srcdir}/stl_algobase.h \ ${bits_srcdir}/stl_bvector.h \ - ${bits_srcdir}/stl_construct.h \ ${bits_srcdir}/stl_deque.h \ - ${bits_srcdir}/stl_function.h \ - ${bits_srcdir}/stl_heap.h \ - ${bits_srcdir}/stl_iterator.h \ - ${bits_srcdir}/stl_iterator_base_funcs.h \ - ${bits_srcdir}/stl_iterator_base_types.h \ ${bits_srcdir}/stl_list.h \ ${bits_srcdir}/stl_map.h \ ${bits_srcdir}/stl_multimap.h \ ${bits_srcdir}/stl_multiset.h \ - ${bits_srcdir}/stl_numeric.h \ - ${bits_srcdir}/stl_pair.h \ ${bits_srcdir}/stl_queue.h \ - ${bits_srcdir}/stl_raw_storage_iter.h \ ${bits_srcdir}/stl_relops.h \ ${bits_srcdir}/stl_set.h \ ${bits_srcdir}/stl_stack.h \ ${bits_srcdir}/stl_tempbuf.h \ ${bits_srcdir}/stl_tree.h \ - ${bits_srcdir}/stl_uninitialized.h \ ${bits_srcdir}/stl_vector.h \ ${bits_srcdir}/stream_iterator.h \ ${bits_srcdir}/streambuf_iterator.h \ @@ -235,19 +255,15 @@ bits_headers = \ ${bits_srcdir}/stringfwd.h \ ${bits_srcdir}/string_view.tcc \ ${bits_srcdir}/this_thread_sleep.h \ - ${bits_srcdir}/uniform_int_dist.h \ ${bits_srcdir}/unique_lock.h \ - ${bits_srcdir}/unique_ptr.h \ ${bits_srcdir}/unordered_map.h \ ${bits_srcdir}/unordered_set.h \ - ${bits_srcdir}/uses_allocator.h \ - ${bits_srcdir}/uses_allocator_args.h \ - ${bits_srcdir}/utility.h \ ${bits_srcdir}/valarray_array.h \ ${bits_srcdir}/valarray_array.tcc \ ${bits_srcdir}/valarray_before.h \ ${bits_srcdir}/valarray_after.h \ ${bits_srcdir}/vector.tcc +endif GLIBCXX_HOSTED bits_host_headers = \ ${glibcxx_srcdir}/${CPU_OPT_BITS_RANDOM} @@ -292,15 +308,22 @@ pstl_headers = \ backward_srcdir = ${glibcxx_srcdir}/include/backward backward_builddir = ./backward -backward_headers = \ +backward_freestanding = \ ${backward_srcdir}/auto_ptr.h \ + ${backward_srcdir}/binders.h + +if !GLIBCXX_HOSTED +backward_headers = ${backward_freestanding} +else GLIBCXX_HOSTED +backward_headers = \ + ${backward_freestanding} \ ${backward_srcdir}/backward_warning.h \ - ${backward_srcdir}/binders.h \ ${backward_srcdir}/hash_map \ ${backward_srcdir}/hash_set \ ${backward_srcdir}/hash_fun.h \ ${backward_srcdir}/hashtable.h \ ${backward_srcdir}/strstream +endif GLIBCXX_HOSTED pb_srcdir = ${glibcxx_srcdir}/include/ext/pb_ds pb_builddir = ./ext/pb_ds @@ -596,49 +619,56 @@ pb_headers7 = \ ext_srcdir = ${glibcxx_srcdir}/include/ext ext_builddir = ./ext -ext_headers = \ - ${ext_srcdir}/algorithm \ +ext_freestanding = \ ${ext_srcdir}/aligned_buffer.h \ ${ext_srcdir}/alloc_traits.h \ ${ext_srcdir}/atomicity.h \ - ${ext_srcdir}/bitmap_allocator.h \ ${ext_srcdir}/cast.h \ + ${ext_srcdir}/concurrence.h \ + ${ext_srcdir}/numeric_traits.h \ + ${ext_srcdir}/iterator \ + ${ext_srcdir}/pointer.h \ + ${ext_srcdir}/type_traits.h \ + ${ext_srcdir}/typelist.h + +if !GLIBCXX_HOSTED +ext_headers = ${ext_freestanding} +else GLIBCXX_HOSTED +ext_headers = \ + ${ext_freestanding} \ + ${ext_srcdir}/algorithm \ + ${ext_srcdir}/bitmap_allocator.h \ ${ext_srcdir}/cmath \ ${ext_srcdir}/codecvt_specializations.h \ - ${ext_srcdir}/concurrence.h \ ${ext_srcdir}/debug_allocator.h \ ${ext_srcdir}/enc_filebuf.h \ ${ext_srcdir}/extptr_allocator.h \ - ${ext_srcdir}/stdio_filebuf.h \ - ${ext_srcdir}/stdio_sync_filebuf.h \ ${ext_srcdir}/functional \ - ${ext_srcdir}/iterator \ ${ext_srcdir}/malloc_allocator.h \ ${ext_srcdir}/memory \ ${ext_srcdir}/mt_allocator.h \ ${ext_srcdir}/new_allocator.h \ ${ext_srcdir}/numeric \ - ${ext_srcdir}/numeric_traits.h \ ${ext_srcdir}/pod_char_traits.h \ - ${ext_srcdir}/pointer.h \ ${ext_srcdir}/pool_allocator.h \ - ${ext_srcdir}/rb_tree \ ${ext_srcdir}/random \ ${ext_srcdir}/random.tcc \ + ${ext_srcdir}/rb_tree \ + ${ext_srcdir}/rc_string_base.h \ ${ext_srcdir}/rope \ ${ext_srcdir}/ropeimpl.h \ ${ext_srcdir}/slist \ + ${ext_srcdir}/sso_string_base.h \ + ${ext_srcdir}/stdio_filebuf.h \ + ${ext_srcdir}/stdio_sync_filebuf.h \ ${ext_srcdir}/string_conversions.h \ ${ext_srcdir}/throw_allocator.h \ - ${ext_srcdir}/typelist.h \ - ${ext_srcdir}/type_traits.h \ - ${ext_srcdir}/rc_string_base.h \ - ${ext_srcdir}/sso_string_base.h \ + ${ext_srcdir}/vstring_fwd.h \ ${ext_srcdir}/vstring.h \ ${ext_srcdir}/vstring.tcc \ - ${ext_srcdir}/vstring_fwd.h \ ${ext_srcdir}/vstring_util.h \ ${ext_compat_headers} +endif GLIBCXX_HOSTED ext_compat_headers = \ ${backward_srcdir}/hash_set \ @@ -811,16 +841,25 @@ endif # This is the common subset of C++ files that all three "C" header models use. c_base_srcdir = $(C_INCLUDE_DIR) c_base_builddir = . +c_base_freestanding = \ + ${c_base_srcdir}/cfloat \ + ${c_base_srcdir}/climits \ + ${c_base_srcdir}/cstddef \ + ${c_base_srcdir}/cstdint \ + ${c_base_srcdir}/cstdlib + +if !GLIBCXX_HOSTED +c_base_headers = ${c_base_freestanding} +else GLIBCXX_HOSTED c_base_headers = \ + ${c_base_freestanding} \ ${c_base_srcdir}/cassert \ ${c_base_srcdir}/ccomplex \ ${c_base_srcdir}/cctype \ ${c_base_srcdir}/cerrno \ ${c_base_srcdir}/cfenv \ - ${c_base_srcdir}/cfloat \ ${c_base_srcdir}/cinttypes \ ${c_base_srcdir}/ciso646 \ - ${c_base_srcdir}/climits \ ${c_base_srcdir}/clocale \ ${c_base_srcdir}/cmath \ ${c_base_srcdir}/csetjmp \ @@ -828,16 +867,14 @@ c_base_headers = \ ${c_base_srcdir}/cstdalign \ ${c_base_srcdir}/cstdarg \ ${c_base_srcdir}/cstdbool \ - ${c_base_srcdir}/cstddef \ - ${c_base_srcdir}/cstdint \ ${c_base_srcdir}/cstdio \ - ${c_base_srcdir}/cstdlib \ ${c_base_srcdir}/cstring \ ${c_base_srcdir}/ctgmath \ ${c_base_srcdir}/ctime \ ${c_base_srcdir}/cuchar \ ${c_base_srcdir}/cwchar \ ${c_base_srcdir}/cwctype +endif GLIBCXX_HOSTED # "C" compatibility headers. c_compatibility_srcdir = ${glibcxx_srcdir}/include/c_compatibility @@ -889,10 +926,16 @@ endif # Debug mode headers debug_srcdir = ${glibcxx_srcdir}/include/debug debug_builddir = ./debug -debug_headers = \ +debug_freestanding = \ ${debug_srcdir}/assertions.h \ + ${debug_srcdir}/debug.h + +if !GLIBCXX_HOSTED +debug_headers = ${debug_freestanding} +else GLIBCXX_HOSTED +debug_headers = \ + ${debug_freestanding} \ ${debug_srcdir}/bitset \ - ${debug_srcdir}/debug.h \ ${debug_srcdir}/deque \ ${debug_srcdir}/formatter.h \ ${debug_srcdir}/forward_list \ @@ -922,6 +965,7 @@ debug_headers = \ ${debug_srcdir}/unordered_map \ ${debug_srcdir}/unordered_set \ ${debug_srcdir}/vector +endif GLIBCXX_HOSTED # Parallel mode headers parallel_srcdir = ${glibcxx_srcdir}/include/parallel @@ -1326,7 +1370,7 @@ ${host_builddir}/c++config.h: ${CONFIG_HEADER} \ ${CONFIG_HEADER} > /dev/null 2>&1 \ && ldbl_alt128_compat='s,^#undef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT$$,#define _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT 1,' ;\ verbose_assert='s,g,g,' ; \ - grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_HOSTED[ ][ ]*1[ ]*$$" \ + grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_HOSTED[ ][ ]*__STDC_HOSTED__[ ]*$$" \ ${CONFIG_HEADER} > /dev/null 2>&1 \ && grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_VERBOSE[ ][ ]*1[ ]*$$" \ ${CONFIG_HEADER} > /dev/null 2>&1 \ @@ -1414,48 +1458,8 @@ ${pch3_output}: ${pch3_source} ${pch2_output} -mkdir -p ${pch3_output_builddir} $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch3_source} -o $@ -# For robustness sake (in light of junk files or in-source -# configuration), copy from the build or source tree to the install -# tree using only the human-maintained file lists and directory -# components. Yes, with minor differences, this is sheer duplication -# of the staging rules above using $(INSTALL_DATA) instead of LN_S and -# `$(mkinstalldirs)' instead of `mkdir -p'. In particular, -# host_headers_extra are taken out of the build tree staging area; -# the rest are taken from the original source tree. - -if GLIBCXX_HOSTED -install-data-local: install-headers -else -install-data-local: install-freestanding-headers -endif - -# This is a subset of the full install-headers rule. We only need <ciso646>, -# <cstddef>, <cfloat>, <limits>, <climits>, <version>, <cstdint>, <cstdlib>, -# <new>, <typeinfo>, <exception>, <initializer_list>, <cstdalign>, <cstdarg>, -# <concepts>, <coroutine>, <cstdbool>, <type_traits>, <bit>, <atomic>, -# <source_location> and any files which they include (and which we provide). -# <new>, <typeinfo>, <exception>, <initializer_list> and <compare> -# are installed by libsupc++, so only the others and the sub-includes -# are copied here. -install-freestanding-headers: - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/bits - for file in c++0x_warning.h atomic_base.h concept_check.h move.h; do \ - $(INSTALL_DATA) ${glibcxx_srcdir}/include/bits/$${file} $(DESTDIR)${gxx_include_dir}/bits; done - $(mkinstalldirs) $(DESTDIR)${host_installdir} - for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h \ - ${glibcxx_srcdir}/$(ABI_TWEAKS_SRCDIR)/cxxabi_tweaks.h \ - ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} - for file in limits type_traits atomic bit concepts coroutine \ - source_location version; do \ - $(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} - for file in ciso646 cstddef cfloat climits cstdint cstdlib \ - cstdalign cstdarg cstdbool; do \ - $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done - # The real deal. +install-data-local: install-headers install-headers: $(mkinstalldirs) $(DESTDIR)${gxx_include_dir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir} @@ -1464,10 +1468,24 @@ install-headers: $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${backward_builddir} for file in ${backward_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${backward_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} + for file in ${std_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${debug_builddir} + for file in ${debug_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${debug_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pb_builddir} + $(mkinstalldirs) $(DESTDIR)${host_installdir} + for file in ${host_headers} ${bits_host_headers} ${host_headers_extra} \ + ${thread_host_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} + for file in ${c_base_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir} for file in ${ext_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pb_builddir} +if GLIBCXX_HOSTED for dir in ${pb_subdirs}; do \ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/$${dir} ; done for file in ${pb_headers1}; do \ @@ -1513,34 +1531,23 @@ install-headers: $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${experimental_bits_builddir} for file in ${experimental_bits_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${experimental_bits_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} - for file in ${c_base_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done c_base_headers_extra_install='$(c_base_headers_extra)';\ for file in $$c_base_headers_extra_install; do \ $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ for file in $$c_compatibility_headers_install; do \ $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} - for file in ${std_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${debug_builddir} - for file in ${debug_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${debug_builddir}; done $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${parallel_builddir} for file in ${parallel_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${parallel_builddir}; done - $(mkinstalldirs) $(DESTDIR)${host_installdir} - for file in ${host_headers} ${bits_host_headers} ${host_headers_extra} \ - ${thread_host_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done $(mkinstalldirs) $(DESTDIR)${host_installdir}/../ext for file in ${ext_host_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}/../ext; done $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pstl_builddir} for file in ${pstl_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${pstl_builddir}; done +endif GLIBCXX_HOSTED + # By adding these files here, automake will remove them for 'make clean' CLEANFILES = ${pch_output} ${pch_output_anchors} stamp-host diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index e24563c..26d2f6a 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -380,232 +380,249 @@ WARN_CXXFLAGS = \ # -I/-D flags to pass when compiling. AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS) +# Regarding *_freestanding: +# For including files in freestanding, create a new _freestanding variable, and +# split *_headers across an ``if GLIBCXX_HOSTED'', then update install-headers +# to account for the new directory/set being added. +# If such a variable exists, simply add to either *_headers or *_freestanding, +# as appropriate. + # Standard C++ includes. std_srcdir = ${glibcxx_srcdir}/include/std std_builddir = . -std_headers = \ +std_freestanding = \ ${std_srcdir}/algorithm \ - ${std_srcdir}/any \ ${std_srcdir}/array \ ${std_srcdir}/atomic \ - ${std_srcdir}/barrier \ ${std_srcdir}/bit \ - ${std_srcdir}/bitset \ - ${std_srcdir}/charconv \ - ${std_srcdir}/chrono \ - ${std_srcdir}/codecvt \ - ${std_srcdir}/complex \ ${std_srcdir}/concepts \ - ${std_srcdir}/condition_variable \ ${std_srcdir}/coroutine \ - ${std_srcdir}/deque \ - ${std_srcdir}/execution \ - ${std_srcdir}/expected \ - ${std_srcdir}/filesystem \ - ${std_srcdir}/forward_list \ - ${std_srcdir}/fstream \ ${std_srcdir}/functional \ - ${std_srcdir}/future \ - ${std_srcdir}/iomanip \ - ${std_srcdir}/ios \ - ${std_srcdir}/iosfwd \ - ${std_srcdir}/iostream \ - ${std_srcdir}/istream \ ${std_srcdir}/iterator \ - ${std_srcdir}/latch \ ${std_srcdir}/limits \ - ${std_srcdir}/list \ - ${std_srcdir}/locale \ - ${std_srcdir}/map \ ${std_srcdir}/memory \ - ${std_srcdir}/memory_resource \ - ${std_srcdir}/mutex \ ${std_srcdir}/numbers \ - ${std_srcdir}/numeric \ ${std_srcdir}/optional \ - ${std_srcdir}/ostream \ - ${std_srcdir}/queue \ - ${std_srcdir}/random \ ${std_srcdir}/ranges \ ${std_srcdir}/ratio \ - ${std_srcdir}/regex \ - ${std_srcdir}/scoped_allocator \ - ${std_srcdir}/semaphore \ - ${std_srcdir}/set \ - ${std_srcdir}/shared_mutex \ ${std_srcdir}/source_location \ ${std_srcdir}/span \ - ${std_srcdir}/spanstream \ - ${std_srcdir}/sstream \ - ${std_srcdir}/syncstream \ - ${std_srcdir}/stack \ - ${std_srcdir}/stacktrace \ - ${std_srcdir}/stdexcept \ - ${std_srcdir}/stop_token \ - ${std_srcdir}/streambuf \ - ${std_srcdir}/string \ - ${std_srcdir}/string_view \ - ${std_srcdir}/system_error \ - ${std_srcdir}/thread \ ${std_srcdir}/tuple \ - ${std_srcdir}/typeindex \ ${std_srcdir}/type_traits \ - ${std_srcdir}/unordered_map \ - ${std_srcdir}/unordered_set \ ${std_srcdir}/utility \ - ${std_srcdir}/valarray \ ${std_srcdir}/variant \ - ${std_srcdir}/vector \ ${std_srcdir}/version +@GLIBCXX_HOSTED_FALSE@std_headers = ${std_freestanding} +@GLIBCXX_HOSTED_TRUE@std_headers = \ +@GLIBCXX_HOSTED_TRUE@ ${std_freestanding} \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/any \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/barrier \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/bitset \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/charconv \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/chrono \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/codecvt \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/complex \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/condition_variable \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/deque \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/execution \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/expected \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/filesystem \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/forward_list \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/fstream \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/future \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/iomanip \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/ios \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/iosfwd \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/iostream \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/istream \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/latch \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/list \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/locale \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/map \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/memory_resource \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/mutex \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/numeric \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/ostream \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/queue \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/random \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/regex \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/scoped_allocator \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/semaphore \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/set \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/shared_mutex \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/spanstream \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/sstream \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/syncstream \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/stack \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/stacktrace \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/stdexcept \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/stop_token \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/streambuf \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/string \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/string_view \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/system_error \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/thread \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/typeindex \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/unordered_map \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/unordered_set \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/valarray \ +@GLIBCXX_HOSTED_TRUE@ ${std_srcdir}/vector + bits_srcdir = ${glibcxx_srcdir}/include/bits bits_builddir = ./bits -bits_headers = \ +bits_freestanding = \ ${bits_srcdir}/algorithmfwd.h \ ${bits_srcdir}/align.h \ - ${bits_srcdir}/alloc_traits.h \ - ${bits_srcdir}/allocated_ptr.h \ ${bits_srcdir}/allocator.h \ + ${bits_srcdir}/alloc_traits.h \ ${bits_srcdir}/atomic_base.h \ - ${bits_srcdir}/atomic_futex.h \ - ${bits_srcdir}/atomic_timed_wait.h \ - ${bits_srcdir}/atomic_wait.h \ - ${bits_srcdir}/basic_ios.h \ - ${bits_srcdir}/basic_ios.tcc \ - ${bits_srcdir}/basic_string.h \ - ${bits_srcdir}/basic_string.tcc \ - ${bits_srcdir}/boost_concept_check.h \ ${bits_srcdir}/c++0x_warning.h \ - ${bits_srcdir}/char_traits.h \ - ${bits_srcdir}/charconv.h \ - ${bits_srcdir}/chrono.h \ - ${bits_srcdir}/codecvt.h \ ${bits_srcdir}/concept_check.h \ - ${bits_srcdir}/cow_string.h \ ${bits_srcdir}/cpp_type_traits.h \ - ${bits_srcdir}/deque.tcc \ ${bits_srcdir}/enable_special_members.h \ - ${bits_srcdir}/erase_if.h \ - ${bits_srcdir}/forward_list.h \ - ${bits_srcdir}/forward_list.tcc \ - ${bits_srcdir}/fs_dir.h \ - ${bits_srcdir}/fs_fwd.h \ - ${bits_srcdir}/fs_ops.h \ - ${bits_srcdir}/fs_path.h \ - ${bits_srcdir}/fstream.tcc \ ${bits_srcdir}/functexcept.h \ ${bits_srcdir}/functional_hash.h \ - ${bits_srcdir}/gslice.h \ - ${bits_srcdir}/gslice_array.h \ - ${bits_srcdir}/hashtable.h \ - ${bits_srcdir}/hashtable_policy.h \ - ${bits_srcdir}/indirect_array.h \ ${bits_srcdir}/invoke.h \ - ${bits_srcdir}/ios_base.h \ - ${bits_srcdir}/istream.tcc \ ${bits_srcdir}/iterator_concepts.h \ - ${bits_srcdir}/list.tcc \ - ${bits_srcdir}/locale_classes.h \ - ${bits_srcdir}/locale_classes.tcc \ - ${bits_srcdir}/locale_conv.h \ - ${bits_srcdir}/locale_facets.h \ - ${bits_srcdir}/locale_facets.tcc \ - ${bits_srcdir}/locale_facets_nonio.h \ - ${bits_srcdir}/locale_facets_nonio.tcc \ - ${bits_srcdir}/localefwd.h \ - ${bits_srcdir}/mask_array.h \ ${bits_srcdir}/max_size_type.h \ - ${bits_srcdir}/memory_resource.h \ ${bits_srcdir}/memoryfwd.h \ - ${bits_srcdir}/mofunc_impl.h \ ${bits_srcdir}/move.h \ - ${bits_srcdir}/move_only_function.h \ - ${bits_srcdir}/new_allocator.h \ - ${bits_srcdir}/node_handle.h \ - ${bits_srcdir}/ostream.tcc \ - ${bits_srcdir}/ostream_insert.h \ - ${bits_srcdir}/parse_numbers.h \ - ${bits_srcdir}/postypes.h \ ${bits_srcdir}/predefined_ops.h \ + ${bits_srcdir}/parse_numbers.h \ ${bits_srcdir}/ptr_traits.h \ - ${bits_srcdir}/quoted_string.h \ - ${bits_srcdir}/random.h \ - ${bits_srcdir}/random.tcc \ ${bits_srcdir}/range_access.h \ - ${bits_srcdir}/ranges_algobase.h \ ${bits_srcdir}/ranges_algo.h \ + ${bits_srcdir}/ranges_algobase.h \ ${bits_srcdir}/ranges_base.h \ ${bits_srcdir}/ranges_cmp.h \ ${bits_srcdir}/ranges_uninitialized.h \ ${bits_srcdir}/ranges_util.h \ ${bits_srcdir}/refwrap.h \ - ${bits_srcdir}/regex.h \ - ${bits_srcdir}/regex.tcc \ - ${bits_srcdir}/regex_constants.h \ - ${bits_srcdir}/regex_error.h \ - ${bits_srcdir}/regex_scanner.h \ - ${bits_srcdir}/regex_scanner.tcc \ - ${bits_srcdir}/regex_automaton.h \ - ${bits_srcdir}/regex_automaton.tcc \ - ${bits_srcdir}/regex_compiler.h \ - ${bits_srcdir}/regex_compiler.tcc \ - ${bits_srcdir}/regex_executor.h \ - ${bits_srcdir}/regex_executor.tcc \ - ${bits_srcdir}/semaphore_base.h \ - ${bits_srcdir}/shared_ptr.h \ - ${bits_srcdir}/shared_ptr_atomic.h \ - ${bits_srcdir}/shared_ptr_base.h \ - ${bits_srcdir}/slice_array.h \ - ${bits_srcdir}/specfun.h \ - ${bits_srcdir}/sstream.tcc \ - ${bits_srcdir}/std_abs.h \ - ${bits_srcdir}/std_function.h \ - ${bits_srcdir}/std_mutex.h \ - ${bits_srcdir}/std_thread.h \ ${bits_srcdir}/stl_algo.h \ ${bits_srcdir}/stl_algobase.h \ - ${bits_srcdir}/stl_bvector.h \ ${bits_srcdir}/stl_construct.h \ - ${bits_srcdir}/stl_deque.h \ ${bits_srcdir}/stl_function.h \ - ${bits_srcdir}/stl_heap.h \ ${bits_srcdir}/stl_iterator.h \ ${bits_srcdir}/stl_iterator_base_funcs.h \ ${bits_srcdir}/stl_iterator_base_types.h \ - ${bits_srcdir}/stl_list.h \ - ${bits_srcdir}/stl_map.h \ - ${bits_srcdir}/stl_multimap.h \ - ${bits_srcdir}/stl_multiset.h \ - ${bits_srcdir}/stl_numeric.h \ + ${bits_srcdir}/stl_heap.h \ ${bits_srcdir}/stl_pair.h \ - ${bits_srcdir}/stl_queue.h \ ${bits_srcdir}/stl_raw_storage_iter.h \ ${bits_srcdir}/stl_relops.h \ - ${bits_srcdir}/stl_set.h \ - ${bits_srcdir}/stl_stack.h \ - ${bits_srcdir}/stl_tempbuf.h \ - ${bits_srcdir}/stl_tree.h \ ${bits_srcdir}/stl_uninitialized.h \ - ${bits_srcdir}/stl_vector.h \ - ${bits_srcdir}/stream_iterator.h \ - ${bits_srcdir}/streambuf_iterator.h \ - ${bits_srcdir}/streambuf.tcc \ - ${bits_srcdir}/stringfwd.h \ - ${bits_srcdir}/string_view.tcc \ - ${bits_srcdir}/this_thread_sleep.h \ ${bits_srcdir}/uniform_int_dist.h \ - ${bits_srcdir}/unique_lock.h \ ${bits_srcdir}/unique_ptr.h \ - ${bits_srcdir}/unordered_map.h \ - ${bits_srcdir}/unordered_set.h \ ${bits_srcdir}/uses_allocator.h \ ${bits_srcdir}/uses_allocator_args.h \ - ${bits_srcdir}/utility.h \ - ${bits_srcdir}/valarray_array.h \ - ${bits_srcdir}/valarray_array.tcc \ - ${bits_srcdir}/valarray_before.h \ - ${bits_srcdir}/valarray_after.h \ - ${bits_srcdir}/vector.tcc + ${bits_srcdir}/utility.h + +@GLIBCXX_HOSTED_FALSE@bits_headers = ${bits_freestanding} +@GLIBCXX_HOSTED_TRUE@bits_headers = \ +@GLIBCXX_HOSTED_TRUE@ ${bits_freestanding} \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/allocated_ptr.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/atomic_futex.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/atomic_timed_wait.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/atomic_wait.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/basic_ios.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/basic_ios.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/basic_string.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/basic_string.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/boost_concept_check.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/char_traits.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/charconv.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/chrono.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/codecvt.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/cow_string.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/deque.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/erase_if.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/forward_list.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/forward_list.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/fs_dir.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/fs_fwd.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/fs_ops.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/fs_path.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/fstream.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/gslice.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/gslice_array.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/hashtable.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/hashtable_policy.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/indirect_array.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/ios_base.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/istream.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/list.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/locale_classes.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/locale_classes.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/locale_conv.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/locale_facets.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/locale_facets.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/locale_facets_nonio.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/locale_facets_nonio.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/localefwd.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/mask_array.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/memory_resource.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/mofunc_impl.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/move_only_function.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/new_allocator.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/node_handle.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/ostream.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/ostream_insert.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/postypes.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/quoted_string.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/random.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/random.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex_constants.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex_error.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex_scanner.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex_scanner.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex_automaton.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex_automaton.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex_compiler.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex_compiler.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex_executor.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/regex_executor.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/requires_hosted.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/semaphore_base.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/shared_ptr.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/shared_ptr_atomic.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/shared_ptr_base.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/slice_array.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/specfun.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/sstream.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/std_abs.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/std_function.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/std_mutex.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/std_thread.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_bvector.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_deque.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_list.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_map.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_multimap.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_multiset.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_numeric.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_queue.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_relops.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_set.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_stack.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_tempbuf.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_tree.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stl_vector.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stream_iterator.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/streambuf_iterator.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/streambuf.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/stringfwd.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/string_view.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/this_thread_sleep.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/unique_lock.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/unordered_map.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/unordered_set.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/valarray_array.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/valarray_array.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/valarray_before.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/valarray_after.h \ +@GLIBCXX_HOSTED_TRUE@ ${bits_srcdir}/vector.tcc bits_host_headers = \ ${glibcxx_srcdir}/${CPU_OPT_BITS_RANDOM} @@ -651,15 +668,19 @@ pstl_headers = \ backward_srcdir = ${glibcxx_srcdir}/include/backward backward_builddir = ./backward -backward_headers = \ +backward_freestanding = \ ${backward_srcdir}/auto_ptr.h \ - ${backward_srcdir}/backward_warning.h \ - ${backward_srcdir}/binders.h \ - ${backward_srcdir}/hash_map \ - ${backward_srcdir}/hash_set \ - ${backward_srcdir}/hash_fun.h \ - ${backward_srcdir}/hashtable.h \ - ${backward_srcdir}/strstream + ${backward_srcdir}/binders.h + +@GLIBCXX_HOSTED_FALSE@backward_headers = ${backward_freestanding} +@GLIBCXX_HOSTED_TRUE@backward_headers = \ +@GLIBCXX_HOSTED_TRUE@ ${backward_freestanding} \ +@GLIBCXX_HOSTED_TRUE@ ${backward_srcdir}/backward_warning.h \ +@GLIBCXX_HOSTED_TRUE@ ${backward_srcdir}/hash_map \ +@GLIBCXX_HOSTED_TRUE@ ${backward_srcdir}/hash_set \ +@GLIBCXX_HOSTED_TRUE@ ${backward_srcdir}/hash_fun.h \ +@GLIBCXX_HOSTED_TRUE@ ${backward_srcdir}/hashtable.h \ +@GLIBCXX_HOSTED_TRUE@ ${backward_srcdir}/strstream pb_srcdir = ${glibcxx_srcdir}/include/ext/pb_ds pb_builddir = ./ext/pb_ds @@ -966,8 +987,6 @@ ext_headers = \ ${ext_srcdir}/debug_allocator.h \ ${ext_srcdir}/enc_filebuf.h \ ${ext_srcdir}/extptr_allocator.h \ - ${ext_srcdir}/stdio_filebuf.h \ - ${ext_srcdir}/stdio_sync_filebuf.h \ ${ext_srcdir}/functional \ ${ext_srcdir}/iterator \ ${ext_srcdir}/malloc_allocator.h \ @@ -979,21 +998,23 @@ ext_headers = \ ${ext_srcdir}/pod_char_traits.h \ ${ext_srcdir}/pointer.h \ ${ext_srcdir}/pool_allocator.h \ - ${ext_srcdir}/rb_tree \ ${ext_srcdir}/random \ ${ext_srcdir}/random.tcc \ + ${ext_srcdir}/rb_tree \ + ${ext_srcdir}/rc_string_base.h \ ${ext_srcdir}/rope \ ${ext_srcdir}/ropeimpl.h \ ${ext_srcdir}/slist \ + ${ext_srcdir}/sso_string_base.h \ + ${ext_srcdir}/stdio_filebuf.h \ + ${ext_srcdir}/stdio_sync_filebuf.h \ ${ext_srcdir}/string_conversions.h \ ${ext_srcdir}/throw_allocator.h \ ${ext_srcdir}/typelist.h \ ${ext_srcdir}/type_traits.h \ - ${ext_srcdir}/rc_string_base.h \ - ${ext_srcdir}/sso_string_base.h \ + ${ext_srcdir}/vstring_fwd.h \ ${ext_srcdir}/vstring.h \ ${ext_srcdir}/vstring.tcc \ - ${ext_srcdir}/vstring_fwd.h \ ${ext_srcdir}/vstring_util.h \ ${ext_compat_headers} @@ -1168,33 +1189,37 @@ experimental_bits_headers = \ # This is the common subset of C++ files that all three "C" header models use. c_base_srcdir = $(C_INCLUDE_DIR) c_base_builddir = . -c_base_headers = \ - ${c_base_srcdir}/cassert \ - ${c_base_srcdir}/ccomplex \ - ${c_base_srcdir}/cctype \ - ${c_base_srcdir}/cerrno \ - ${c_base_srcdir}/cfenv \ +c_base_freestanding = \ ${c_base_srcdir}/cfloat \ - ${c_base_srcdir}/cinttypes \ - ${c_base_srcdir}/ciso646 \ ${c_base_srcdir}/climits \ - ${c_base_srcdir}/clocale \ - ${c_base_srcdir}/cmath \ - ${c_base_srcdir}/csetjmp \ - ${c_base_srcdir}/csignal \ - ${c_base_srcdir}/cstdalign \ - ${c_base_srcdir}/cstdarg \ - ${c_base_srcdir}/cstdbool \ ${c_base_srcdir}/cstddef \ ${c_base_srcdir}/cstdint \ - ${c_base_srcdir}/cstdio \ - ${c_base_srcdir}/cstdlib \ - ${c_base_srcdir}/cstring \ - ${c_base_srcdir}/ctgmath \ - ${c_base_srcdir}/ctime \ - ${c_base_srcdir}/cuchar \ - ${c_base_srcdir}/cwchar \ - ${c_base_srcdir}/cwctype + ${c_base_srcdir}/cstdlib + +@GLIBCXX_HOSTED_FALSE@c_base_headers = ${c_base_freestanding} +@GLIBCXX_HOSTED_TRUE@c_base_headers = \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_freestanding} \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cassert \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/ccomplex \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cctype \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cerrno \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cfenv \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cinttypes \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/ciso646 \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/clocale \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cmath \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/csetjmp \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/csignal \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cstdalign \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cstdarg \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cstdbool \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cstdio \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cstring \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/ctgmath \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/ctime \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cuchar \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cwchar \ +@GLIBCXX_HOSTED_TRUE@ ${c_base_srcdir}/cwctype # "C" compatibility headers. @@ -1240,39 +1265,43 @@ c_compatibility_builddir = . # Debug mode headers debug_srcdir = ${glibcxx_srcdir}/include/debug debug_builddir = ./debug -debug_headers = \ +debug_freestanding = \ ${debug_srcdir}/assertions.h \ - ${debug_srcdir}/bitset \ - ${debug_srcdir}/debug.h \ - ${debug_srcdir}/deque \ - ${debug_srcdir}/formatter.h \ - ${debug_srcdir}/forward_list \ - ${debug_srcdir}/functions.h \ - ${debug_srcdir}/helper_functions.h \ - ${debug_srcdir}/list \ - ${debug_srcdir}/map \ - ${debug_srcdir}/macros.h \ - ${debug_srcdir}/map.h \ - ${debug_srcdir}/multimap.h \ - ${debug_srcdir}/multiset.h \ - ${debug_srcdir}/safe_base.h \ - ${debug_srcdir}/safe_container.h \ - ${debug_srcdir}/safe_iterator.h \ - ${debug_srcdir}/safe_iterator.tcc \ - ${debug_srcdir}/safe_local_iterator.h \ - ${debug_srcdir}/safe_local_iterator.tcc \ - ${debug_srcdir}/safe_sequence.h \ - ${debug_srcdir}/safe_sequence.tcc \ - ${debug_srcdir}/safe_unordered_base.h \ - ${debug_srcdir}/safe_unordered_container.h \ - ${debug_srcdir}/safe_unordered_container.tcc \ - ${debug_srcdir}/set \ - ${debug_srcdir}/set.h \ - ${debug_srcdir}/stl_iterator.h \ - ${debug_srcdir}/string \ - ${debug_srcdir}/unordered_map \ - ${debug_srcdir}/unordered_set \ - ${debug_srcdir}/vector + ${debug_srcdir}/debug.h + +@GLIBCXX_HOSTED_FALSE@debug_headers = ${debug_freestanding} +@GLIBCXX_HOSTED_TRUE@debug_headers = \ +@GLIBCXX_HOSTED_TRUE@ ${debug_freestanding} \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/bitset \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/deque \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/formatter.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/forward_list \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/functions.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/helper_functions.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/list \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/map \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/macros.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/map.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/multimap.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/multiset.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/safe_base.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/safe_container.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/safe_iterator.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/safe_iterator.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/safe_local_iterator.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/safe_local_iterator.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/safe_sequence.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/safe_sequence.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/safe_unordered_base.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/safe_unordered_container.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/safe_unordered_container.tcc \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/set \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/set.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/stl_iterator.h \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/string \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/unordered_map \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/unordered_set \ +@GLIBCXX_HOSTED_TRUE@ ${debug_srcdir}/vector # Parallel mode headers @@ -1415,6 +1444,7 @@ allcreated = \ # Host includes for threads uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_] + # By adding these files here, automake will remove them for 'make clean' CLEANFILES = ${pch_output} ${pch_output_anchors} stamp-host all: all-am @@ -1820,7 +1850,7 @@ ${host_builddir}/c++config.h: ${CONFIG_HEADER} \ ${CONFIG_HEADER} > /dev/null 2>&1 \ && ldbl_alt128_compat='s,^#undef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT$$,#define _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT 1,' ;\ verbose_assert='s,g,g,' ; \ - grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_HOSTED[ ][ ]*1[ ]*$$" \ + grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_HOSTED[ ][ ]*__STDC_HOSTED__[ ]*$$" \ ${CONFIG_HEADER} > /dev/null 2>&1 \ && grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_VERBOSE[ ][ ]*1[ ]*$$" \ ${CONFIG_HEADER} > /dev/null 2>&1 \ @@ -1905,45 +1935,8 @@ ${pch3_output}: ${pch3_source} ${pch2_output} -mkdir -p ${pch3_output_builddir} $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) -O2 -g ${pch3_source} -o $@ -# For robustness sake (in light of junk files or in-source -# configuration), copy from the build or source tree to the install -# tree using only the human-maintained file lists and directory -# components. Yes, with minor differences, this is sheer duplication -# of the staging rules above using $(INSTALL_DATA) instead of LN_S and -# `$(mkinstalldirs)' instead of `mkdir -p'. In particular, -# host_headers_extra are taken out of the build tree staging area; -# the rest are taken from the original source tree. - -@GLIBCXX_HOSTED_TRUE@install-data-local: install-headers -@GLIBCXX_HOSTED_FALSE@install-data-local: install-freestanding-headers - -# This is a subset of the full install-headers rule. We only need <ciso646>, -# <cstddef>, <cfloat>, <limits>, <climits>, <version>, <cstdint>, <cstdlib>, -# <new>, <typeinfo>, <exception>, <initializer_list>, <cstdalign>, <cstdarg>, -# <concepts>, <coroutine>, <cstdbool>, <type_traits>, <bit>, <atomic>, -# <source_location> and any files which they include (and which we provide). -# <new>, <typeinfo>, <exception>, <initializer_list> and <compare> -# are installed by libsupc++, so only the others and the sub-includes -# are copied here. -install-freestanding-headers: - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/bits - for file in c++0x_warning.h atomic_base.h concept_check.h move.h; do \ - $(INSTALL_DATA) ${glibcxx_srcdir}/include/bits/$${file} $(DESTDIR)${gxx_include_dir}/bits; done - $(mkinstalldirs) $(DESTDIR)${host_installdir} - for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h \ - ${glibcxx_srcdir}/$(ABI_TWEAKS_SRCDIR)/cxxabi_tweaks.h \ - ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} - for file in limits type_traits atomic bit concepts coroutine \ - source_location version; do \ - $(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} - for file in ciso646 cstddef cfloat climits cstdint cstdlib \ - cstdalign cstdarg cstdbool; do \ - $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done - # The real deal. +install-data-local: install-headers install-headers: $(mkinstalldirs) $(DESTDIR)${gxx_include_dir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir} @@ -1955,80 +1948,80 @@ install-headers: $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir} for file in ${ext_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pb_builddir} - for dir in ${pb_subdirs}; do \ - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/$${dir} ; done - for file in ${pb_headers1}; do \ - install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ - relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ - $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done - for file in ${pb_headers2}; do \ - install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ - relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ - $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done - for file in ${pb_headers3}; do \ - install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ - relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ - $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done - for file in ${pb_headers4}; do \ - install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ - relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ - $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done - for file in ${pb_headers5}; do \ - install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ - relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ - $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done - for file in ${pb_headers6}; do \ - install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ - relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ - $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done - for file in ${pb_headers7}; do \ - install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ - relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ - $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${tr1_builddir} - for file in ${tr1_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${tr1_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${tr2_builddir} - for file in ${tr2_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${tr2_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${decimal_builddir} - for file in ${decimal_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${decimal_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${experimental_builddir} - for file in ${experimental_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${experimental_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${experimental_bits_builddir} - for file in ${experimental_bits_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${experimental_bits_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} - for file in ${c_base_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done - c_base_headers_extra_install='$(c_base_headers_extra)';\ - for file in $$c_base_headers_extra_install; do \ - $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done - c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ - for file in $$c_compatibility_headers_install; do \ - $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}; done $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} for file in ${std_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${debug_builddir} for file in ${debug_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${debug_builddir}; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${parallel_builddir} - for file in ${parallel_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${parallel_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pb_builddir} $(mkinstalldirs) $(DESTDIR)${host_installdir} for file in ${host_headers} ${bits_host_headers} ${host_headers_extra} \ ${thread_host_headers}; do \ $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}; done - $(mkinstalldirs) $(DESTDIR)${host_installdir}/../ext - for file in ${ext_host_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}/../ext; done - $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pstl_builddir} - for file in ${pstl_headers}; do \ - $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${pstl_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} + for file in ${c_base_headers}; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done +@GLIBCXX_HOSTED_TRUE@ for dir in ${pb_subdirs}; do \ +@GLIBCXX_HOSTED_TRUE@ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/$${dir} ; done +@GLIBCXX_HOSTED_TRUE@ for file in ${pb_headers1}; do \ +@GLIBCXX_HOSTED_TRUE@ install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ +@GLIBCXX_HOSTED_TRUE@ relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done +@GLIBCXX_HOSTED_TRUE@ for file in ${pb_headers2}; do \ +@GLIBCXX_HOSTED_TRUE@ install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ +@GLIBCXX_HOSTED_TRUE@ relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done +@GLIBCXX_HOSTED_TRUE@ for file in ${pb_headers3}; do \ +@GLIBCXX_HOSTED_TRUE@ install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ +@GLIBCXX_HOSTED_TRUE@ relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done +@GLIBCXX_HOSTED_TRUE@ for file in ${pb_headers4}; do \ +@GLIBCXX_HOSTED_TRUE@ install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ +@GLIBCXX_HOSTED_TRUE@ relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done +@GLIBCXX_HOSTED_TRUE@ for file in ${pb_headers5}; do \ +@GLIBCXX_HOSTED_TRUE@ install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ +@GLIBCXX_HOSTED_TRUE@ relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done +@GLIBCXX_HOSTED_TRUE@ for file in ${pb_headers6}; do \ +@GLIBCXX_HOSTED_TRUE@ install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ +@GLIBCXX_HOSTED_TRUE@ relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done +@GLIBCXX_HOSTED_TRUE@ for file in ${pb_headers7}; do \ +@GLIBCXX_HOSTED_TRUE@ install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \ +@GLIBCXX_HOSTED_TRUE@ relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done +@GLIBCXX_HOSTED_TRUE@ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${tr1_builddir} +@GLIBCXX_HOSTED_TRUE@ for file in ${tr1_headers}; do \ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${tr1_builddir}; done +@GLIBCXX_HOSTED_TRUE@ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${tr2_builddir} +@GLIBCXX_HOSTED_TRUE@ for file in ${tr2_headers}; do \ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${tr2_builddir}; done +@GLIBCXX_HOSTED_TRUE@ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${decimal_builddir} +@GLIBCXX_HOSTED_TRUE@ for file in ${decimal_headers}; do \ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${decimal_builddir}; done +@GLIBCXX_HOSTED_TRUE@ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${experimental_builddir} +@GLIBCXX_HOSTED_TRUE@ for file in ${experimental_headers}; do \ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${experimental_builddir}; done +@GLIBCXX_HOSTED_TRUE@ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${experimental_bits_builddir} +@GLIBCXX_HOSTED_TRUE@ for file in ${experimental_bits_headers}; do \ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${experimental_bits_builddir}; done +@GLIBCXX_HOSTED_TRUE@ c_base_headers_extra_install='$(c_base_headers_extra)';\ +@GLIBCXX_HOSTED_TRUE@ for file in $$c_base_headers_extra_install; do \ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done +@GLIBCXX_HOSTED_TRUE@ c_compatibility_headers_install='$(c_compatibility_headers_extra)';\ +@GLIBCXX_HOSTED_TRUE@ for file in $$c_compatibility_headers_install; do \ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}; done +@GLIBCXX_HOSTED_TRUE@ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${parallel_builddir} +@GLIBCXX_HOSTED_TRUE@ for file in ${parallel_headers}; do \ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${parallel_builddir}; done +@GLIBCXX_HOSTED_TRUE@ $(mkinstalldirs) $(DESTDIR)${host_installdir}/../ext +@GLIBCXX_HOSTED_TRUE@ for file in ${ext_host_headers}; do \ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $(DESTDIR)${host_installdir}/../ext; done +@GLIBCXX_HOSTED_TRUE@ $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pstl_builddir} +@GLIBCXX_HOSTED_TRUE@ for file in ${pstl_headers}; do \ +@GLIBCXX_HOSTED_TRUE@ $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${pstl_builddir}; done # To remove directories. clean-local: diff --git a/libstdc++-v3/include/bits/algorithmfwd.h b/libstdc++-v3/include/bits/algorithmfwd.h index aacc34e..0833052 100644 --- a/libstdc++-v3/include/bits/algorithmfwd.h +++ b/libstdc++-v3/include/bits/algorithmfwd.h @@ -638,9 +638,11 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2) void sort_heap(_RAIter, _RAIter, _Compare); +#if _GLIBCXX_HOSTED template<typename _BIter, typename _Predicate> _BIter stable_partition(_BIter, _BIter, _Predicate); +#endif #if __cplusplus < 201103L // For C++11 swap() is declared in <type_traits>. @@ -828,6 +830,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO _BIter partition(_BIter, _BIter, _Predicate); +#if _GLIBCXX_HOSTED template<typename _RAIter> void random_shuffle(_RAIter, _RAIter); @@ -840,6 +843,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO #else _Generator&); #endif +#endif // HOSTED template<typename _FIter, typename _Tp> _GLIBCXX20_CONSTEXPR diff --git a/libstdc++-v3/include/bits/concept_check.h b/libstdc++-v3/include/bits/concept_check.h index 35969d2..32b794d 100644 --- a/libstdc++-v3/include/bits/concept_check.h +++ b/libstdc++-v3/include/bits/concept_check.h @@ -43,7 +43,7 @@ // configure options or editing c++config.h. // It is not supported for freestanding implementations. -#if !defined(_GLIBCXX_CONCEPT_CHECKS) || !_GLIBCXX_HOSTED +#if !defined(_GLIBCXX_CONCEPT_CHECKS) #define __glibcxx_function_requires(...) #define __glibcxx_class_requires(_a,_b) diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h index 228e10b..de71bd0 100644 --- a/libstdc++-v3/include/bits/ranges_algo.h +++ b/libstdc++-v3/include/bits/ranges_algo.h @@ -2326,6 +2326,7 @@ namespace ranges inline constexpr __partition_fn partition{}; +#if _GLIBCXX_HOSTED struct __stable_partition_fn { template<bidirectional_iterator _Iter, sentinel_for<_Iter> _Sent, @@ -2356,6 +2357,7 @@ namespace ranges }; inline constexpr __stable_partition_fn stable_partition{}; +#endif template<typename _Iter, typename _Out1, typename _Out2> struct in_out_out_result diff --git a/libstdc++-v3/include/bits/requires_hosted.h b/libstdc++-v3/include/bits/requires_hosted.h new file mode 100644 index 0000000..86916e2 --- /dev/null +++ b/libstdc++-v3/include/bits/requires_hosted.h @@ -0,0 +1,37 @@ +// Copyright The GNU Toolchain Authors. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. + +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// <http://www.gnu.org/licenses/>. + +/** @file bits/requires_hosted.h + * This is an internal header file, included by other library headers. + * Do not attempt to use it directly. @headername{version} + */ + +#ifndef _REQUIRES_FREESTANDING_H +#define _REQUIRES_FREESTANDING_H 1 + +#include <bits/c++config.h> + +#if !_GLIBCXX_HOSTED +# error "This header is not available in freestanding mode." +#endif + +#endif diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h index e63fe66..6386918 100644 --- a/libstdc++-v3/include/bits/stl_algo.h +++ b/libstdc++-v3/include/bits/stl_algo.h @@ -4594,7 +4594,6 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO std::iter_swap(__i, __j); } } -#endif // HOSTED /** * @brief Shuffle the elements of a sequence using a random number @@ -4638,6 +4637,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO std::iter_swap(__i, __j); } } +#endif // HOSTED #endif // C++11 || USE_DEPRECATED /** diff --git a/libstdc++-v3/include/bits/unique_ptr.h b/libstdc++-v3/include/bits/unique_ptr.h index 1086f40..34c3a76 100644 --- a/libstdc++-v3/include/bits/unique_ptr.h +++ b/libstdc++-v3/include/bits/unique_ptr.h @@ -541,14 +541,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __uniq_ptr_data<_Tp, _Dp> _M_t; - template<typename _Up> - using __remove_cv = typename remove_cv<_Up>::type; - // like is_base_of<_Tp, _Up> but false if unqualified types are the same template<typename _Up> using __is_derived_Tp = __and_< is_base_of<_Tp, _Up>, - __not_<is_same<__remove_cv<_Tp>, __remove_cv<_Up>>> >; + __not_<is_same<__remove_cv_t<_Tp>, __remove_cv_t<_Up>>> >; public: using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer; diff --git a/libstdc++-v3/include/c_global/cmath b/libstdc++-v3/include/c_global/cmath index 1b993f3..cc14982 100644 --- a/libstdc++-v3/include/c_global/cmath +++ b/libstdc++-v3/include/c_global/cmath @@ -38,6 +38,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> + #include <bits/c++config.h> #include <bits/cpp_type_traits.h> #include <ext/type_traits.h> diff --git a/libstdc++-v3/include/experimental/algorithm b/libstdc++-v3/include/experimental/algorithm index 5a4a022..99348cb 100644 --- a/libstdc++-v3/include/experimental/algorithm +++ b/libstdc++-v3/include/experimental/algorithm @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <algorithm> diff --git a/libstdc++-v3/include/experimental/any b/libstdc++-v3/include/experimental/any index b8ff90a..b8ab5a8 100644 --- a/libstdc++-v3/include/experimental/any +++ b/libstdc++-v3/include/experimental/any @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <typeinfo> diff --git a/libstdc++-v3/include/experimental/array b/libstdc++-v3/include/experimental/array index 3a064d2..f2bdd65 100644 --- a/libstdc++-v3/include/experimental/array +++ b/libstdc++-v3/include/experimental/array @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <array> diff --git a/libstdc++-v3/include/experimental/buffer b/libstdc++-v3/include/experimental/buffer index 0c103e1..bc34618 100644 --- a/libstdc++-v3/include/experimental/buffer +++ b/libstdc++-v3/include/experimental/buffer @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <array> diff --git a/libstdc++-v3/include/experimental/chrono b/libstdc++-v3/include/experimental/chrono index 8ec3191..417f8be 100644 --- a/libstdc++-v3/include/experimental/chrono +++ b/libstdc++-v3/include/experimental/chrono @@ -36,6 +36,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <bits/chrono.h> // Only the C++14 parts of <chrono> diff --git a/libstdc++-v3/include/experimental/deque b/libstdc++-v3/include/experimental/deque index b64deee..4f3d12d 100644 --- a/libstdc++-v3/include/experimental/deque +++ b/libstdc++-v3/include/experimental/deque @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <deque> diff --git a/libstdc++-v3/include/experimental/executor b/libstdc++-v3/include/experimental/executor index bfcf217..9d0cd6e 100644 --- a/libstdc++-v3/include/experimental/executor +++ b/libstdc++-v3/include/experimental/executor @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <algorithm> diff --git a/libstdc++-v3/include/experimental/filesystem b/libstdc++-v3/include/experimental/filesystem index 85872e6..7c47e6b 100644 --- a/libstdc++-v3/include/experimental/filesystem +++ b/libstdc++-v3/include/experimental/filesystem @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201103L #include <experimental/bits/fs_fwd.h> diff --git a/libstdc++-v3/include/experimental/forward_list b/libstdc++-v3/include/experimental/forward_list index fedf2ba..679b43d 100644 --- a/libstdc++-v3/include/experimental/forward_list +++ b/libstdc++-v3/include/experimental/forward_list @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <forward_list> diff --git a/libstdc++-v3/include/experimental/functional b/libstdc++-v3/include/experimental/functional index 1a47b52..a0e73fa 100644 --- a/libstdc++-v3/include/experimental/functional +++ b/libstdc++-v3/include/experimental/functional @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <functional> diff --git a/libstdc++-v3/include/experimental/internet b/libstdc++-v3/include/experimental/internet index 4be4bfb..6911989 100644 --- a/libstdc++-v3/include/experimental/internet +++ b/libstdc++-v3/include/experimental/internet @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <experimental/netfwd> @@ -2137,7 +2139,7 @@ namespace ip using resolver = basic_resolver<tcp>; ///< A TCP resolver. using socket = basic_stream_socket<tcp>; ///< A TCP socket. using acceptor = basic_socket_acceptor<tcp>; ///< A TCP acceptor. - using iostream = basic_socket_iostream<tcp>; /// A TCP iostream. + using iostream = basic_socket_iostream<tcp>; ///< A TCP iostream. #ifdef TCP_NODELAY /// Disable coalescing of small segments (i.e. the Nagle algorithm). diff --git a/libstdc++-v3/include/experimental/io_context b/libstdc++-v3/include/experimental/io_context index 8d4fc25..cea2a86 100644 --- a/libstdc++-v3/include/experimental/io_context +++ b/libstdc++-v3/include/experimental/io_context @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <atomic> diff --git a/libstdc++-v3/include/experimental/iterator b/libstdc++-v3/include/experimental/iterator index e68d09c..35ac5a6 100644 --- a/libstdc++-v3/include/experimental/iterator +++ b/libstdc++-v3/include/experimental/iterator @@ -36,6 +36,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <iterator> diff --git a/libstdc++-v3/include/experimental/list b/libstdc++-v3/include/experimental/list index 7e4ef18..7d49eef 100644 --- a/libstdc++-v3/include/experimental/list +++ b/libstdc++-v3/include/experimental/list @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <list> diff --git a/libstdc++-v3/include/experimental/map b/libstdc++-v3/include/experimental/map index 4936a66..525252b 100644 --- a/libstdc++-v3/include/experimental/map +++ b/libstdc++-v3/include/experimental/map @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <map> diff --git a/libstdc++-v3/include/experimental/memory b/libstdc++-v3/include/experimental/memory index 6cf11b4..fabeb58 100644 --- a/libstdc++-v3/include/experimental/memory +++ b/libstdc++-v3/include/experimental/memory @@ -36,6 +36,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <memory> diff --git a/libstdc++-v3/include/experimental/memory_resource b/libstdc++-v3/include/experimental/memory_resource index d70a932..aa86c04 100644 --- a/libstdc++-v3/include/experimental/memory_resource +++ b/libstdc++-v3/include/experimental/memory_resource @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <memory> // align, uses_allocator, __uses_alloc diff --git a/libstdc++-v3/include/experimental/net b/libstdc++-v3/include/experimental/net index 9d1d5c7..1268528 100644 --- a/libstdc++-v3/include/experimental/net +++ b/libstdc++-v3/include/experimental/net @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <experimental/executor> diff --git a/libstdc++-v3/include/experimental/netfwd b/libstdc++-v3/include/experimental/netfwd index 2fd6ff9..e1e0533 100644 --- a/libstdc++-v3/include/experimental/netfwd +++ b/libstdc++-v3/include/experimental/netfwd @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L // #define __cpp_lib_experimental_net 201803 diff --git a/libstdc++-v3/include/experimental/numeric b/libstdc++-v3/include/experimental/numeric index 426d943..26be27a 100644 --- a/libstdc++-v3/include/experimental/numeric +++ b/libstdc++-v3/include/experimental/numeric @@ -36,6 +36,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <numeric> diff --git a/libstdc++-v3/include/experimental/optional b/libstdc++-v3/include/experimental/optional index 0d3a894..c5da58a 100644 --- a/libstdc++-v3/include/experimental/optional +++ b/libstdc++-v3/include/experimental/optional @@ -30,6 +30,8 @@ #ifndef _GLIBCXX_EXPERIMENTAL_OPTIONAL #define _GLIBCXX_EXPERIMENTAL_OPTIONAL 1 +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <type_traits> diff --git a/libstdc++-v3/include/experimental/propagate_const b/libstdc++-v3/include/experimental/propagate_const index 80fcb2c..258ef6f 100644 --- a/libstdc++-v3/include/experimental/propagate_const +++ b/libstdc++-v3/include/experimental/propagate_const @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <type_traits> diff --git a/libstdc++-v3/include/experimental/random b/libstdc++-v3/include/experimental/random index adef31f..8728aa3 100644 --- a/libstdc++-v3/include/experimental/random +++ b/libstdc++-v3/include/experimental/random @@ -30,6 +30,8 @@ #ifndef _GLIBCXX_EXPERIMENTAL_RANDOM #define _GLIBCXX_EXPERIMENTAL_RANDOM 1 +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <random> #include <experimental/bits/lfts_config.h> diff --git a/libstdc++-v3/include/experimental/ratio b/libstdc++-v3/include/experimental/ratio index 59ce85e..5d873f2 100644 --- a/libstdc++-v3/include/experimental/ratio +++ b/libstdc++-v3/include/experimental/ratio @@ -36,6 +36,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <ratio> diff --git a/libstdc++-v3/include/experimental/regex b/libstdc++-v3/include/experimental/regex index 9d063c6..5efb886 100644 --- a/libstdc++-v3/include/experimental/regex +++ b/libstdc++-v3/include/experimental/regex @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <regex> diff --git a/libstdc++-v3/include/experimental/scope b/libstdc++-v3/include/experimental/scope index 208fadc..5dbeac1 100644 --- a/libstdc++-v3/include/experimental/scope +++ b/libstdc++-v3/include/experimental/scope @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 202002L #include <concepts> diff --git a/libstdc++-v3/include/experimental/set b/libstdc++-v3/include/experimental/set index aa43a2b2..b42a3cd 100644 --- a/libstdc++-v3/include/experimental/set +++ b/libstdc++-v3/include/experimental/set @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <set> diff --git a/libstdc++-v3/include/experimental/simd b/libstdc++-v3/include/experimental/simd index f526c70..4bd4648 100644 --- a/libstdc++-v3/include/experimental/simd +++ b/libstdc++-v3/include/experimental/simd @@ -33,6 +33,8 @@ #ifndef _GLIBCXX_EXPERIMENTAL_SIMD #define _GLIBCXX_EXPERIMENTAL_SIMD +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201703L /** @defgroup par-ts Parallelism TS diff --git a/libstdc++-v3/include/experimental/socket b/libstdc++-v3/include/experimental/socket index 868927a..65fe2b7 100644 --- a/libstdc++-v3/include/experimental/socket +++ b/libstdc++-v3/include/experimental/socket @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <experimental/netfwd> diff --git a/libstdc++-v3/include/experimental/source_location b/libstdc++-v3/include/experimental/source_location index afd3401..acd41c0 100644 --- a/libstdc++-v3/include/experimental/source_location +++ b/libstdc++-v3/include/experimental/source_location @@ -30,6 +30,8 @@ #ifndef _GLIBCXX_EXPERIMENTAL_SRCLOC #define _GLIBCXX_EXPERIMENTAL_SRCLOC 1 +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <cstdint> diff --git a/libstdc++-v3/include/experimental/string b/libstdc++-v3/include/experimental/string index 01bd84b..f326b85 100644 --- a/libstdc++-v3/include/experimental/string +++ b/libstdc++-v3/include/experimental/string @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <string> diff --git a/libstdc++-v3/include/experimental/string_view b/libstdc++-v3/include/experimental/string_view index ff04bb1..f5b4cf1 100644 --- a/libstdc++-v3/include/experimental/string_view +++ b/libstdc++-v3/include/experimental/string_view @@ -36,6 +36,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <string> diff --git a/libstdc++-v3/include/experimental/system_error b/libstdc++-v3/include/experimental/system_error index 9023d44..f41cddd 100644 --- a/libstdc++-v3/include/experimental/system_error +++ b/libstdc++-v3/include/experimental/system_error @@ -36,6 +36,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <system_error> diff --git a/libstdc++-v3/include/experimental/timer b/libstdc++-v3/include/experimental/timer index 745f3a4..02498b0 100644 --- a/libstdc++-v3/include/experimental/timer +++ b/libstdc++-v3/include/experimental/timer @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <bits/chrono.h> diff --git a/libstdc++-v3/include/experimental/tuple b/libstdc++-v3/include/experimental/tuple index 338f2f5..906bd7b 100644 --- a/libstdc++-v3/include/experimental/tuple +++ b/libstdc++-v3/include/experimental/tuple @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <tuple> diff --git a/libstdc++-v3/include/experimental/unordered_map b/libstdc++-v3/include/experimental/unordered_map index 1a41687..ce56c2a 100644 --- a/libstdc++-v3/include/experimental/unordered_map +++ b/libstdc++-v3/include/experimental/unordered_map @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <unordered_map> diff --git a/libstdc++-v3/include/experimental/unordered_set b/libstdc++-v3/include/experimental/unordered_set index 583c437..c707587 100644 --- a/libstdc++-v3/include/experimental/unordered_set +++ b/libstdc++-v3/include/experimental/unordered_set @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <unordered_set> diff --git a/libstdc++-v3/include/experimental/utility b/libstdc++-v3/include/experimental/utility index 6156731..cc335e0 100644 --- a/libstdc++-v3/include/experimental/utility +++ b/libstdc++-v3/include/experimental/utility @@ -30,6 +30,8 @@ #ifndef _GLIBCXX_EXPERIMENTAL_UTILITY #define _GLIBCXX_EXPERIMENTAL_UTILITY 1 +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <utility> #include <bits/uses_allocator.h> diff --git a/libstdc++-v3/include/experimental/vector b/libstdc++-v3/include/experimental/vector index 2b611fc..4e8c846 100644 --- a/libstdc++-v3/include/experimental/vector +++ b/libstdc++-v3/include/experimental/vector @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // experimental is currently omitted + #if __cplusplus >= 201402L #include <vector> diff --git a/libstdc++-v3/include/ext/algorithm b/libstdc++-v3/include/ext/algorithm index f5eced6..65122da 100644 --- a/libstdc++-v3/include/ext/algorithm +++ b/libstdc++-v3/include/ext/algorithm @@ -58,6 +58,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <algorithm> namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/ext/bitmap_allocator.h b/libstdc++-v3/include/ext/bitmap_allocator.h index 033f132..80b8fa7 100644 --- a/libstdc++-v3/include/ext/bitmap_allocator.h +++ b/libstdc++-v3/include/ext/bitmap_allocator.h @@ -29,6 +29,8 @@ #ifndef _BITMAP_ALLOCATOR_H #define _BITMAP_ALLOCATOR_H 1 +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <utility> // For std::pair. #include <bits/functexcept.h> // For __throw_bad_alloc(). #include <bits/stl_function.h> // For greater_equal, and less_equal. diff --git a/libstdc++-v3/include/ext/cmath b/libstdc++-v3/include/ext/cmath index 2291969..2ebad8b 100644 --- a/libstdc++-v3/include/ext/cmath +++ b/libstdc++-v3/include/ext/cmath @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/ext/codecvt_specializations.h b/libstdc++-v3/include/ext/codecvt_specializations.h index 51b638d..7f733e6 100644 --- a/libstdc++-v3/include/ext/codecvt_specializations.h +++ b/libstdc++-v3/include/ext/codecvt_specializations.h @@ -35,6 +35,8 @@ #ifndef _EXT_CODECVT_SPECIALIZATIONS_H #define _EXT_CODECVT_SPECIALIZATIONS_H 1 +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <bits/c++config.h> #include <locale> #include <iconv.h> diff --git a/libstdc++-v3/include/ext/debug_allocator.h b/libstdc++-v3/include/ext/debug_allocator.h index 3490dca..06c15fb 100644 --- a/libstdc++-v3/include/ext/debug_allocator.h +++ b/libstdc++-v3/include/ext/debug_allocator.h @@ -42,6 +42,8 @@ #ifndef _DEBUG_ALLOCATOR_H #define _DEBUG_ALLOCATOR_H 1 +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <stdexcept> #include <bits/functexcept.h> #include <ext/alloc_traits.h> diff --git a/libstdc++-v3/include/ext/enc_filebuf.h b/libstdc++-v3/include/ext/enc_filebuf.h index 12869a8..fc3d9a8 100644 --- a/libstdc++-v3/include/ext/enc_filebuf.h +++ b/libstdc++-v3/include/ext/enc_filebuf.h @@ -29,6 +29,8 @@ #ifndef _EXT_ENC_FILEBUF_H #define _EXT_ENC_FILEBUF_H 1 +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <fstream> #include <locale> #include <ext/codecvt_specializations.h> diff --git a/libstdc++-v3/include/ext/extptr_allocator.h b/libstdc++-v3/include/ext/extptr_allocator.h index 20f746e..ad538c7 100644 --- a/libstdc++-v3/include/ext/extptr_allocator.h +++ b/libstdc++-v3/include/ext/extptr_allocator.h @@ -36,6 +36,8 @@ #ifndef _EXTPTR_ALLOCATOR_H #define _EXTPTR_ALLOCATOR_H 1 +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <memory> #include <ext/numeric_traits.h> #include <ext/pointer.h> diff --git a/libstdc++-v3/include/ext/functional b/libstdc++-v3/include/ext/functional index 19cd8d5..9cf864d 100644 --- a/libstdc++-v3/include/ext/functional +++ b/libstdc++-v3/include/ext/functional @@ -58,6 +58,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <functional> namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/ext/malloc_allocator.h b/libstdc++-v3/include/ext/malloc_allocator.h index 82b3f0a..6323ed9 100644 --- a/libstdc++-v3/include/ext/malloc_allocator.h +++ b/libstdc++-v3/include/ext/malloc_allocator.h @@ -29,6 +29,8 @@ #ifndef _MALLOC_ALLOCATOR_H #define _MALLOC_ALLOCATOR_H 1 +#include <bits/requires_hosted.h> // malloc + #include <cstdlib> #include <cstddef> #include <new> diff --git a/libstdc++-v3/include/ext/memory b/libstdc++-v3/include/ext/memory index 105952a..9e0082b 100644 --- a/libstdc++-v3/include/ext/memory +++ b/libstdc++-v3/include/ext/memory @@ -58,6 +58,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <memory> #include <bits/stl_tempbuf.h> diff --git a/libstdc++-v3/include/ext/mt_allocator.h b/libstdc++-v3/include/ext/mt_allocator.h index 393d6eb0a..49743e4 100644 --- a/libstdc++-v3/include/ext/mt_allocator.h +++ b/libstdc++-v3/include/ext/mt_allocator.h @@ -29,6 +29,8 @@ #ifndef _MT_ALLOCATOR_H #define _MT_ALLOCATOR_H 1 +#include <bits/requires_hosted.h> // getenv + #include <new> #include <cstdlib> #include <bits/functexcept.h> diff --git a/libstdc++-v3/include/ext/new_allocator.h b/libstdc++-v3/include/ext/new_allocator.h index 96e6523..db8895f 100644 --- a/libstdc++-v3/include/ext/new_allocator.h +++ b/libstdc++-v3/include/ext/new_allocator.h @@ -29,6 +29,8 @@ #ifndef _NEW_ALLOCATOR_H #define _NEW_ALLOCATOR_H 1 +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <bits/new_allocator.h> namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/ext/numeric b/libstdc++-v3/include/ext/numeric index 0b2c4ee..1d9f4f4 100644 --- a/libstdc++-v3/include/ext/numeric +++ b/libstdc++-v3/include/ext/numeric @@ -58,6 +58,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <bits/concept_check.h> #include <numeric> diff --git a/libstdc++-v3/include/ext/pod_char_traits.h b/libstdc++-v3/include/ext/pod_char_traits.h index fa0f5b6..95d90f3 100644 --- a/libstdc++-v3/include/ext/pod_char_traits.h +++ b/libstdc++-v3/include/ext/pod_char_traits.h @@ -34,6 +34,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <string> namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/ext/pointer.h b/libstdc++-v3/include/ext/pointer.h index 04804f0..48b7684 100644 --- a/libstdc++-v3/include/ext/pointer.h +++ b/libstdc++-v3/include/ext/pointer.h @@ -38,7 +38,10 @@ #pragma GCC system_header -#include <iosfwd> +#if _GLIBCXX_HOSTED +# include <iosfwd> +#endif + #include <bits/stl_iterator_base_types.h> #include <ext/cast.h> #include <ext/type_traits.h> @@ -559,11 +562,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION const _Pointer_adapter<_Tp>& __rhs) { return !(__lhs._Tp::operator<(__rhs)); } +#if _GLIBCXX_HOSTED template<typename _CharT, typename _Traits, typename _StoreT> inline std::basic_ostream<_CharT, _Traits>& operator<<(std::basic_ostream<_CharT, _Traits>& __os, const _Pointer_adapter<_StoreT>& __p) { return (__os << __p.get()); } +#endif // HOSTED _GLIBCXX_END_NAMESPACE_VERSION } // namespace diff --git a/libstdc++-v3/include/ext/pool_allocator.h b/libstdc++-v3/include/ext/pool_allocator.h index 8d0f089..f04a88c 100644 --- a/libstdc++-v3/include/ext/pool_allocator.h +++ b/libstdc++-v3/include/ext/pool_allocator.h @@ -42,6 +42,8 @@ #ifndef _POOL_ALLOCATOR_H #define _POOL_ALLOCATOR_H 1 +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <bits/c++config.h> #include <cstdlib> #include <new> diff --git a/libstdc++-v3/include/ext/random b/libstdc++-v3/include/ext/random index 50505b8..4cc0e25 100644 --- a/libstdc++-v3/include/ext/random +++ b/libstdc++-v3/include/ext/random @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/ext/random.tcc b/libstdc++-v3/include/ext/random.tcc index 71ceea8..7274e0d 100644 --- a/libstdc++-v3/include/ext/random.tcc +++ b/libstdc++-v3/include/ext/random.tcc @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/ext/rb_tree b/libstdc++-v3/include/ext/rb_tree index b61c45b..dd685fb 100644 --- a/libstdc++-v3/include/ext/rb_tree +++ b/libstdc++-v3/include/ext/rb_tree @@ -58,6 +58,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <bits/stl_tree.h> namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/ext/rc_string_base.h b/libstdc++-v3/include/ext/rc_string_base.h index f196d884..21ccfc2 100644 --- a/libstdc++-v3/include/ext/rc_string_base.h +++ b/libstdc++-v3/include/ext/rc_string_base.h @@ -30,6 +30,8 @@ #ifndef _RC_STRING_BASE_H #define _RC_STRING_BASE_H 1 +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <ext/atomicity.h> #include <ext/alloc_traits.h> #include <bits/stl_iterator_base_funcs.h> diff --git a/libstdc++-v3/include/ext/rope b/libstdc++-v3/include/ext/rope index f8af374..a5a821e 100644 --- a/libstdc++-v3/include/ext/rope +++ b/libstdc++-v3/include/ext/rope @@ -45,6 +45,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <algorithm> #include <iosfwd> #include <bits/stl_construct.h> diff --git a/libstdc++-v3/include/ext/ropeimpl.h b/libstdc++-v3/include/ext/ropeimpl.h index 27cb738..fe35d91 100644 --- a/libstdc++-v3/include/ext/ropeimpl.h +++ b/libstdc++-v3/include/ext/ropeimpl.h @@ -1227,6 +1227,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __result = _S_concat(__forest[__i], __result); __forest[__i]->_M_unref_nonnil(); #if !defined(__GC) && __cpp_exceptions + +#include <bits/requires_hosted.h> // GNU extensions are currently omitted __forest[__i] = 0; #endif } diff --git a/libstdc++-v3/include/ext/slist b/libstdc++-v3/include/ext/slist index 7b6f882..f2b5109 100644 --- a/libstdc++-v3/include/ext/slist +++ b/libstdc++-v3/include/ext/slist @@ -44,6 +44,8 @@ #ifndef _SLIST #define _SLIST 1 +#include <bits/requires_hosted.h> // std::allocator + #include <algorithm> #include <bits/allocator.h> #include <bits/stl_construct.h> diff --git a/libstdc++-v3/include/ext/sso_string_base.h b/libstdc++-v3/include/ext/sso_string_base.h index f2209e7..db5dc43 100644 --- a/libstdc++-v3/include/ext/sso_string_base.h +++ b/libstdc++-v3/include/ext/sso_string_base.h @@ -30,6 +30,8 @@ #ifndef _SSO_STRING_BASE_H #define _SSO_STRING_BASE_H 1 +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/ext/stdio_filebuf.h b/libstdc++-v3/include/ext/stdio_filebuf.h index 878839b..0e83e35 100644 --- a/libstdc++-v3/include/ext/stdio_filebuf.h +++ b/libstdc++-v3/include/ext/stdio_filebuf.h @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <fstream> namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/ext/stdio_sync_filebuf.h b/libstdc++-v3/include/ext/stdio_sync_filebuf.h index 49437c9..8f51ae2 100644 --- a/libstdc++-v3/include/ext/stdio_sync_filebuf.h +++ b/libstdc++-v3/include/ext/stdio_sync_filebuf.h @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <streambuf> #include <cstdio> #include <bits/c++io.h> // For __c_file diff --git a/libstdc++-v3/include/ext/string_conversions.h b/libstdc++-v3/include/ext/string_conversions.h index fc03974..a4648a9 100644 --- a/libstdc++-v3/include/ext/string_conversions.h +++ b/libstdc++-v3/include/ext/string_conversions.h @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/ext/throw_allocator.h b/libstdc++-v3/include/ext/throw_allocator.h index 220f5f5..a1b57e7 100644 --- a/libstdc++-v3/include/ext/throw_allocator.h +++ b/libstdc++-v3/include/ext/throw_allocator.h @@ -46,6 +46,8 @@ #ifndef _THROW_ALLOCATOR_H #define _THROW_ALLOCATOR_H 1 +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <cmath> #include <ctime> #include <map> diff --git a/libstdc++-v3/include/ext/vstring.h b/libstdc++-v3/include/ext/vstring.h index 47cbabf..f0a12d6 100644 --- a/libstdc++-v3/include/ext/vstring.h +++ b/libstdc++-v3/include/ext/vstring.h @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #if __cplusplus >= 201103L #include <initializer_list> #endif diff --git a/libstdc++-v3/include/ext/vstring.tcc b/libstdc++-v3/include/ext/vstring.tcc index 0776fdc..18e4bbb 100644 --- a/libstdc++-v3/include/ext/vstring.tcc +++ b/libstdc++-v3/include/ext/vstring.tcc @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <bits/cxxabi_forced.h> namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/ext/vstring_fwd.h b/libstdc++-v3/include/ext/vstring_fwd.h index c787e95..121492b 100644 --- a/libstdc++-v3/include/ext/vstring_fwd.h +++ b/libstdc++-v3/include/ext/vstring_fwd.h @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <bits/c++config.h> #include <bits/char_traits.h> #include <bits/allocator.h> diff --git a/libstdc++-v3/include/ext/vstring_util.h b/libstdc++-v3/include/ext/vstring_util.h index 713c697..4e58a71 100644 --- a/libstdc++-v3/include/ext/vstring_util.h +++ b/libstdc++-v3/include/ext/vstring_util.h @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // GNU extensions are currently omitted + #include <ext/vstring_fwd.h> #include <debug/debug.h> #include <bits/stl_function.h> // For less diff --git a/libstdc++-v3/include/precompiled/extc++.h b/libstdc++-v3/include/precompiled/extc++.h index 7fe7073..b094701 100644 --- a/libstdc++-v3/include/precompiled/extc++.h +++ b/libstdc++-v3/include/precompiled/extc++.h @@ -32,14 +32,21 @@ #include <bits/stdc++.h> #endif -#include <ext/algorithm> #if __cplusplus >= 201103L # include <ext/aligned_buffer.h> #endif #include <ext/alloc_traits.h> #include <ext/atomicity.h> -#include <ext/bitmap_allocator.h> #include <ext/cast.h> +#include <ext/iterator> +#include <ext/numeric_traits.h> +#include <ext/pointer.h> +#include <ext/typelist.h> +#include <ext/type_traits.h> + +#if _GLIBCXX_HOSTED +#include <ext/algorithm> +#include <ext/bitmap_allocator.h> #if __cplusplus >= 201103L # include <ext/cmath> #endif @@ -47,15 +54,12 @@ #include <ext/debug_allocator.h> #include <ext/extptr_allocator.h> #include <ext/functional> -#include <ext/iterator> #include <ext/malloc_allocator.h> #include <ext/memory> #include <ext/mt_allocator.h> #include <ext/new_allocator.h> #include <ext/numeric> -#include <ext/numeric_traits.h> #include <ext/pod_char_traits.h> -#include <ext/pointer.h> #include <ext/pool_allocator.h> #if __cplusplus >= 201103L # include <ext/random> @@ -66,8 +70,6 @@ #include <ext/stdio_filebuf.h> #include <ext/stdio_sync_filebuf.h> #include <ext/throw_allocator.h> -#include <ext/typelist.h> -#include <ext/type_traits.h> #include <ext/vstring.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/priority_queue.hpp> @@ -81,3 +83,4 @@ #include <ext/codecvt_specializations.h> #include <ext/enc_filebuf.h> #endif +#endif // HOSTED diff --git a/libstdc++-v3/include/precompiled/stdc++.h b/libstdc++-v3/include/precompiled/stdc++.h index 5ee1244..bfbb165 100644 --- a/libstdc++-v3/include/precompiled/stdc++.h +++ b/libstdc++-v3/include/precompiled/stdc++.h @@ -33,6 +33,80 @@ #include <cassert> #endif #include <cctype> +#include <cfloat> +#include <ciso646> +#include <climits> +#include <csetjmp> +#include <cstdarg> +#include <cstddef> +#include <cstdlib> + +#if __cplusplus >= 201103L +#include <cstdint> +#endif + +// C++ +// #include <bitset> +// #include <complex> +#include <algorithm> +#include <bitset> +#include <functional> +#include <iterator> +#include <limits> +#include <memory> +#include <new> +#include <numeric> +#include <typeinfo> +#include <utility> + +#if __cplusplus >= 201103L +#include <array> +#include <atomic> +#include <initializer_list> +#include <ratio> +#include <scoped_allocator> +#include <tuple> +#include <typeindex> +#include <type_traits> +#endif + +#if __cplusplus >= 201402L +#endif + +#if __cplusplus >= 201703L +#include <any> +#include <charconv> +// #include <execution> +#include <optional> +#include <variant> +#endif + +#if __cplusplus >= 202002L +#include <bit> +#include <compare> +#include <concepts> +#include <numbers> +#include <ranges> +#include <span> +#include <source_location> +#include <version> +#endif + +#if __cplusplus > 202002L +#include <expected> +#include <stdatomic.h> +#if __cpp_impl_coroutine +# include <coroutine> +#endif +#endif + + +#if _GLIBCXX_HOSTED +// C +#ifndef _GLIBCXX_NO_ASSERT +#include <cassert> +#endif +#include <cctype> #include <cerrno> #include <cfloat> #include <ciso646> @@ -62,8 +136,6 @@ #endif // C++ -#include <algorithm> -#include <bitset> #include <complex> #include <deque> #include <exception> @@ -138,9 +210,6 @@ #include <bit> #include <compare> #include <concepts> -#if __cpp_impl_coroutine -# include <coroutine> -#endif #include <latch> #include <numbers> #include <ranges> @@ -160,3 +229,5 @@ #endif #include <stdatomic.h> #endif + +#endif // HOSTED diff --git a/libstdc++-v3/include/std/algorithm b/libstdc++-v3/include/std/algorithm index e2cfd7c..4b39bfc 100644 --- a/libstdc++-v3/include/std/algorithm +++ b/libstdc++-v3/include/std/algorithm @@ -63,7 +63,7 @@ # include <bits/ranges_algo.h> #endif -#if __cplusplus > 201402L +#if __cplusplus > 201402L && _GLIBCXX_HOSTED // Parallel STL algorithms # if _PSTL_EXECUTION_POLICIES_DEFINED // If <execution> has already been included, pull in implementations @@ -76,7 +76,7 @@ // Feature test macro for parallel algorithms # define __cpp_lib_parallel_algorithm 201603L -#endif // C++17 +#endif // C++17 && HOSTED #ifdef _GLIBCXX_PARALLEL # include <parallel/algorithm> diff --git a/libstdc++-v3/include/std/barrier b/libstdc++-v3/include/std/barrier index 997e0a8..ab6dd8b 100644 --- a/libstdc++-v3/include/std/barrier +++ b/libstdc++-v3/include/std/barrier @@ -40,6 +40,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // threading primitive + #if __cplusplus > 201703L #include <bits/atomic_base.h> #if __cpp_lib_atomic_wait && __cpp_aligned_new diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset index 1a551cf..afabeb4 100644 --- a/libstdc++-v3/include/std/bitset +++ b/libstdc++-v3/include/std/bitset @@ -46,13 +46,16 @@ #include <bits/functexcept.h> // For invalid_argument, out_of_range, // overflow_error +#include <bits/stl_algobase.h> // For std::fill + #if _GLIBCXX_HOSTED # include <string> # include <iosfwd> # include <bits/cxxabi_forced.h> -# if __cplusplus >= 201103L -# include <bits/functional_hash.h> -# endif +#endif + +#if __cplusplus >= 201103L +# include <bits/functional_hash.h> #endif #define _GLIBCXX_BITSET_BITS_PER_WORD (__CHAR_BIT__ * __SIZEOF_LONG__) @@ -694,7 +697,38 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER _S_do_sanitize_val(unsigned long long __val) { return __val & ~((~static_cast<unsigned long long>(0)) << _Nb); } }; -#endif + + namespace __bitset + { +#if _GLIBCXX_HOSTED + template<typename _CharT> + using __string = std::basic_string<_CharT>; +#else + template<typename _CharT> + struct __string + { + using size_type = size_t; + static constexpr size_type npos = size_type(-1); + + struct traits_type + { + static _GLIBCXX14_CONSTEXPR size_t + length(const _CharT* __s) noexcept + { + size_t __n = 0; + while (__s[__n]) + __n++; + return __n; + } + + static constexpr bool + eq(_CharT __l, _CharT __r) noexcept + { return __l == __r; } + }; + }; +#endif // HOSTED + } // namespace __bitset +#endif // C++11 /** * @brief The %bitset class represents a @e fixed-size sequence of bits. @@ -960,6 +994,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER _M_check_initial_position(__s, __position); _M_copy_from_string(__s, __position, __n, __zero, __one); } +#endif // HOSTED #if __cplusplus >= 201103L /** @@ -975,23 +1010,23 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER [[__gnu__::__nonnull__]] _GLIBCXX23_CONSTEXPR explicit - bitset(const _CharT* __str, - typename std::basic_string<_CharT>::size_type __n - = std::basic_string<_CharT>::npos, + bitset(const _CharT* __str, + typename __bitset::__string<_CharT>::size_type __n + = __bitset::__string<_CharT>::npos, _CharT __zero = _CharT('0'), _CharT __one = _CharT('1')) : _Base() { +#if _GLIBCXX_HOSTED if (!__str) __throw_logic_error(__N("bitset::bitset(const _CharT*, ...)")); +#endif + using _Traits = typename __bitset::__string<_CharT>::traits_type; - if (__n == std::basic_string<_CharT>::npos) - __n = std::char_traits<_CharT>::length(__str); - _M_copy_from_ptr<_CharT, std::char_traits<_CharT>>(__str, __n, 0, - __n, __zero, - __one); + if (__n == __bitset::__string<_CharT>::npos) + __n = _Traits::length(__str); + _M_copy_from_ptr<_CharT, _Traits>(__str, __n, 0, __n, __zero, __one); } #endif // C++11 -#endif // HOSTED // 23.3.5.2 bitset operations: ///@{ @@ -1319,42 +1354,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER return to_string<char, std::char_traits<char>, std::allocator<char> >(__zero, __one); } - - // Helper functions for string operations. - template<class _CharT, class _Traits> - _GLIBCXX23_CONSTEXPR - void - _M_copy_from_ptr(const _CharT*, size_t, size_t, size_t, - _CharT, _CharT); - - template<class _CharT, class _Traits, class _Alloc> - _GLIBCXX23_CONSTEXPR - void - _M_copy_from_string(const std::basic_string<_CharT, - _Traits, _Alloc>& __s, size_t __pos, size_t __n, - _CharT __zero, _CharT __one) - { _M_copy_from_ptr<_CharT, _Traits>(__s.data(), __s.size(), __pos, __n, - __zero, __one); } - - template<class _CharT, class _Traits, class _Alloc> - _GLIBCXX23_CONSTEXPR - void - _M_copy_to_string(std::basic_string<_CharT, _Traits, _Alloc>&, - _CharT, _CharT) const; - - // NB: Backward compat. - template<class _CharT, class _Traits, class _Alloc> - _GLIBCXX23_CONSTEXPR - void - _M_copy_from_string(const std::basic_string<_CharT, - _Traits, _Alloc>& __s, size_t __pos, size_t __n) - { _M_copy_from_string(__s, __pos, __n, _CharT('0'), _CharT('1')); } - - template<class _CharT, class _Traits, class _Alloc> - _GLIBCXX23_CONSTEXPR - void - _M_copy_to_string(std::basic_string<_CharT, _Traits,_Alloc>& __s) const - { _M_copy_to_string(__s, _CharT('0'), _CharT('1')); } #endif // HOSTED /// Returns the number of bits which are set. @@ -1461,9 +1460,41 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER size_t _Find_next(size_t __prev) const _GLIBCXX_NOEXCEPT { return this->_M_do_find_next(__prev, _Nb); } - }; + + private: + // Helper functions for string operations. + template<class _CharT, class _Traits> + _GLIBCXX23_CONSTEXPR + void + _M_copy_from_ptr(const _CharT*, size_t, size_t, size_t, + _CharT, _CharT); #if _GLIBCXX_HOSTED + template<class _CharT, class _Traits, class _Alloc> + _GLIBCXX23_CONSTEXPR + void + _M_copy_from_string(const std::basic_string<_CharT, + _Traits, _Alloc>& __s, size_t __pos, size_t __n, + _CharT __zero, _CharT __one) + { _M_copy_from_ptr<_CharT, _Traits>(__s.data(), __s.size(), __pos, __n, + __zero, __one); } + + template<class _CharT, class _Traits, class _Alloc> + _GLIBCXX23_CONSTEXPR + void + _M_copy_to_string(std::basic_string<_CharT, _Traits, _Alloc>&, + _CharT, _CharT) const; + + template<class _CharT, class _Traits, size_t _Nb2> + friend std::basic_istream<_CharT, _Traits>& + operator>>(std::basic_istream<_CharT, _Traits>&, bitset<_Nb2>&); + + template <class _CharT, class _Traits, size_t _Nb2> + friend std::basic_ostream<_CharT, _Traits>& + operator<<(std::basic_ostream<_CharT, _Traits>&, const bitset<_Nb2>&); +#endif + }; + // Definitions of non-inline member functions. template<size_t _Nb> template<class _CharT, class _Traits> @@ -1483,10 +1514,17 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER else if (_Traits::eq(__c, __one)) _Unchecked_set(__i - 1); else - __throw_invalid_argument(__N("bitset::_M_copy_from_ptr")); + { +#if _GLIBCXX_HOSTED + __throw_invalid_argument(__N("bitset::_M_copy_from_ptr")); +#else + __builtin_abort(); +#endif + } } } +#if _GLIBCXX_HOSTED template<size_t _Nb> template<class _CharT, class _Traits, class _Alloc> _GLIBCXX23_CONSTEXPR @@ -1564,8 +1602,22 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER typedef std::basic_istream<_CharT, _Traits> __istream_type; typedef typename __istream_type::ios_base __ios_base; - std::basic_string<_CharT, _Traits> __tmp; - __tmp.reserve(_Nb); + struct _Buffer + { + _Buffer() + : _M_base(_Nb > 256 ? new _CharT[_Nb] : (_CharT*)__builtin_alloca(_Nb)) + { } + + ~_Buffer() + { + if _GLIBCXX17_CONSTEXPR (_Nb > 256) + delete[] _M_base; + } + + _CharT* const _M_base; + }; + _Buffer __buf; + _CharT* __ptr = __buf._M_base; // _GLIBCXX_RESOLVE_LIB_DEFECTS // 303. Bitset input operator underspecified @@ -1592,9 +1644,9 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER { const char_type __c2 = _Traits::to_char_type(__c1); if (_Traits::eq(__c2, __zero)) - __tmp.push_back(__zero); + *__ptr++ = __zero; else if (_Traits::eq(__c2, __one)) - __tmp.push_back(__one); + *__ptr++ = __one; else if (_Traits:: eq_int_type(__is.rdbuf()->sputbackc(__c2), __eof)) @@ -1614,11 +1666,15 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER { __is._M_setstate(__ios_base::badbit); } } - if (__tmp.empty() && _Nb) - __state |= __ios_base::failbit; - else if _GLIBCXX17_CONSTEXPR (_Nb) - __x._M_copy_from_string(__tmp, static_cast<size_t>(0), _Nb, - __zero, __one); + if _GLIBCXX17_CONSTEXPR (_Nb) + { + if (size_t __len = __ptr - __buf._M_base) + __x.template _M_copy_from_ptr<_CharT, _Traits>(__buf._M_base, __len, + 0, __len, + __zero, __one); + else + __state |= __ios_base::failbit; + } if (__state) __is.setstate(__state); return __is; @@ -1647,7 +1703,7 @@ _GLIBCXX_END_NAMESPACE_CONTAINER #undef _GLIBCXX_BITSET_BITS_PER_WORD #undef _GLIBCXX_BITSET_BITS_PER_ULL -#if __cplusplus >= 201103L && _GLIBCXX_HOSTED +#if __cplusplus >= 201103L namespace std _GLIBCXX_VISIBILITY(default) { diff --git a/libstdc++-v3/include/std/charconv b/libstdc++-v3/include/std/charconv index 533320e..64d0584 100644 --- a/libstdc++-v3/include/std/charconv +++ b/libstdc++-v3/include/std/charconv @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // for error codes + // As an extension we support <charconv> in C++14, but this header should not // be included by any other library headers in C++14 mode. This ensures that // the names defined in this header are not added to namespace std unless a @@ -44,7 +46,7 @@ #include <ext/numeric_traits.h> #if _GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 \ - && __SIZE_WIDTH__ >= 32 + && __SIZE_WIDTH__ >= 32 && _GLIBCXX_HOSTED # define __cpp_lib_to_chars 201611L #endif diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono index 3732a40..c0c3a67 100644 --- a/libstdc++-v3/include/std/chrono +++ b/libstdc++-v3/include/std/chrono @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // for <ctime> and clocks + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/std/condition_variable b/libstdc++-v3/include/std/condition_variable index 06c4ff9..b885e1b 100644 --- a/libstdc++-v3/include/std/condition_variable +++ b/libstdc++-v3/include/std/condition_variable @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // threading primitive + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/std/deque b/libstdc++-v3/include/std/deque index abdc2e0..0b692f1 100644 --- a/libstdc++-v3/include/std/deque +++ b/libstdc++-v3/include/std/deque @@ -57,6 +57,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // containers are hosted only + #include <bits/stl_algobase.h> #include <bits/allocator.h> #include <bits/stl_construct.h> diff --git a/libstdc++-v3/include/std/execution b/libstdc++-v3/include/std/execution index e933a1a..17f62a2 100644 --- a/libstdc++-v3/include/std/execution +++ b/libstdc++-v3/include/std/execution @@ -27,6 +27,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // execution policies are hosted only + #if __cplusplus >= 201703L # include <bits/c++config.h> # include <pstl/glue_execution_defs.h> diff --git a/libstdc++-v3/include/std/filesystem b/libstdc++-v3/include/std/filesystem index dd112a2..36d71dd 100644 --- a/libstdc++-v3/include/std/filesystem +++ b/libstdc++-v3/include/std/filesystem @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> + #if __cplusplus >= 201703L /** diff --git a/libstdc++-v3/include/std/forward_list b/libstdc++-v3/include/std/forward_list index fe99e5e..5d8052c 100644 --- a/libstdc++-v3/include/std/forward_list +++ b/libstdc++-v3/include/std/forward_list @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // containers + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/std/fstream b/libstdc++-v3/include/std/fstream index e62a1ad..c434664 100644 --- a/libstdc++-v3/include/std/fstream +++ b/libstdc++-v3/include/std/fstream @@ -35,6 +35,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // iostreams + #include <istream> #include <ostream> #include <bits/codecvt.h> diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional index 5235ef2..adf9cb1 100644 --- a/libstdc++-v3/include/std/functional +++ b/libstdc++-v3/include/std/functional @@ -1105,7 +1105,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } // Searchers -#define __cpp_lib_boyer_moore_searcher 201603L template<typename _ForwardIterator1, typename _BinaryPredicate = equal_to<>> class default_searcher @@ -1138,6 +1137,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION }; #if _GLIBCXX_HOSTED +#define __cpp_lib_boyer_moore_searcher 201603L + template<typename _Key, typename _Tp, typename _Hash, typename _Pred> struct __boyer_moore_map_base { diff --git a/libstdc++-v3/include/std/future b/libstdc++-v3/include/std/future index cf08c15..8c968fe 100644 --- a/libstdc++-v3/include/std/future +++ b/libstdc++-v3/include/std/future @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // concurrency + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/std/iomanip b/libstdc++-v3/include/std/iomanip index 5371681..f73519d 100644 --- a/libstdc++-v3/include/std/iomanip +++ b/libstdc++-v3/include/std/iomanip @@ -35,6 +35,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // iostreams + #include <bits/c++config.h> #include <iosfwd> #include <bits/ios_base.h> diff --git a/libstdc++-v3/include/std/ios b/libstdc++-v3/include/std/ios index 50a66cd..c759986 100644 --- a/libstdc++-v3/include/std/ios +++ b/libstdc++-v3/include/std/ios @@ -35,6 +35,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // iostreams + #include <iosfwd> #include <exception> // For ios_base::failure #include <bits/char_traits.h> // For char_traits, streamoff, streamsize, fpos diff --git a/libstdc++-v3/include/std/iosfwd b/libstdc++-v3/include/std/iosfwd index ddf0c95..7f156f8 100644 --- a/libstdc++-v3/include/std/iosfwd +++ b/libstdc++-v3/include/std/iosfwd @@ -35,6 +35,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // iostreams + #include <bits/c++config.h> #include <bits/stringfwd.h> // For string forward declarations. #include <bits/postypes.h> diff --git a/libstdc++-v3/include/std/iostream b/libstdc++-v3/include/std/iostream index d705913..02e9c30 100644 --- a/libstdc++-v3/include/std/iostream +++ b/libstdc++-v3/include/std/iostream @@ -35,6 +35,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // iostreams + #include <bits/c++config.h> #include <ostream> #include <istream> @@ -57,16 +59,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * manual linked to above. */ ///@{ - extern istream cin; /// Linked to standard input - extern ostream cout; /// Linked to standard output - extern ostream cerr; /// Linked to standard error (unbuffered) - extern ostream clog; /// Linked to standard error (buffered) + extern istream cin; ///< Linked to standard input + extern ostream cout; ///< Linked to standard output + extern ostream cerr; ///< Linked to standard error (unbuffered) + extern ostream clog; ///< Linked to standard error (buffered) #ifdef _GLIBCXX_USE_WCHAR_T - extern wistream wcin; /// Linked to standard input - extern wostream wcout; /// Linked to standard output - extern wostream wcerr; /// Linked to standard error (unbuffered) - extern wostream wclog; /// Linked to standard error (buffered) + extern wistream wcin; ///< Linked to standard input + extern wostream wcout; ///< Linked to standard output + extern wostream wcerr; ///< Linked to standard error (unbuffered) + extern wostream wclog; ///< Linked to standard error (buffered) #endif ///@} diff --git a/libstdc++-v3/include/std/istream b/libstdc++-v3/include/std/istream index 416ef55..58716ce 100644 --- a/libstdc++-v3/include/std/istream +++ b/libstdc++-v3/include/std/istream @@ -35,6 +35,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // iostreams + #include <ios> #include <ostream> diff --git a/libstdc++-v3/include/std/iterator b/libstdc++-v3/include/std/iterator index fb2a47c..8ee8327 100644 --- a/libstdc++-v3/include/std/iterator +++ b/libstdc++-v3/include/std/iterator @@ -71,4 +71,8 @@ # define __cpp_lib_null_iterators 201304L #endif +#if __cplusplus >= 202002L +#include <bits/ranges_base.h> // ranges::distance, ranges::next, ranges::prev +#endif + #endif /* _GLIBCXX_ITERATOR */ diff --git a/libstdc++-v3/include/std/latch b/libstdc++-v3/include/std/latch index 7ae9022..0442f09 100644 --- a/libstdc++-v3/include/std/latch +++ b/libstdc++-v3/include/std/latch @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // concurrency + #if __cplusplus > 201703L #include <bits/atomic_base.h> diff --git a/libstdc++-v3/include/std/limits b/libstdc++-v3/include/std/limits index 66201fa..a60611b 100644 --- a/libstdc++-v3/include/std/limits +++ b/libstdc++-v3/include/std/limits @@ -166,11 +166,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION */ enum float_round_style { - round_indeterminate = -1, /// Intermediate. - round_toward_zero = 0, /// To zero. - round_to_nearest = 1, /// To the nearest representable value. - round_toward_infinity = 2, /// To infinity. - round_toward_neg_infinity = 3 /// To negative infinity. + round_indeterminate = -1, ///< Intermediate. + round_toward_zero = 0, ///< To zero. + round_to_nearest = 1, ///< To the nearest representable value. + round_toward_infinity = 2, ///< To infinity. + round_toward_neg_infinity = 3 ///< To negative infinity. }; /** diff --git a/libstdc++-v3/include/std/list b/libstdc++-v3/include/std/list index 9151e98..ec174ed 100644 --- a/libstdc++-v3/include/std/list +++ b/libstdc++-v3/include/std/list @@ -57,6 +57,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // containers + #include <bits/stl_algobase.h> #include <bits/allocator.h> #include <bits/range_access.h> diff --git a/libstdc++-v3/include/std/locale b/libstdc++-v3/include/std/locale index ae83586..abfed05 100644 --- a/libstdc++-v3/include/std/locale +++ b/libstdc++-v3/include/std/locale @@ -35,6 +35,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // locales + #include <bits/localefwd.h> #include <bits/locale_classes.h> #include <bits/locale_facets.h> diff --git a/libstdc++-v3/include/std/map b/libstdc++-v3/include/std/map index ce07f29..c973a8e 100644 --- a/libstdc++-v3/include/std/map +++ b/libstdc++-v3/include/std/map @@ -57,6 +57,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // containers + #include <bits/stl_tree.h> #include <bits/stl_map.h> #include <bits/stl_multimap.h> diff --git a/libstdc++-v3/include/std/memory b/libstdc++-v3/include/std/memory index 3eff121..4336724 100644 --- a/libstdc++-v3/include/std/memory +++ b/libstdc++-v3/include/std/memory @@ -63,10 +63,10 @@ #include <bits/memoryfwd.h> #if _GLIBCXX_HOSTED # include <bits/allocator.h> +# include <bits/stl_tempbuf.h> #endif #include <bits/stl_construct.h> #include <bits/stl_uninitialized.h> -#include <bits/stl_tempbuf.h> #include <bits/stl_raw_storage_iter.h> #if __cplusplus >= 201103L diff --git a/libstdc++-v3/include/std/memory_resource b/libstdc++-v3/include/std/memory_resource index 19c9225..323956e 100644 --- a/libstdc++-v3/include/std/memory_resource +++ b/libstdc++-v3/include/std/memory_resource @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // polymorphic allocation + #if __cplusplus >= 201703L #include <bits/memory_resource.h> diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex index b9590bb..b310c15 100644 --- a/libstdc++-v3/include/std/mutex +++ b/libstdc++-v3/include/std/mutex @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // concurrency + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric index 60a99d1..0f1f26c 100644 --- a/libstdc++-v3/include/std/numeric +++ b/libstdc++-v3/include/std/numeric @@ -729,7 +729,7 @@ namespace __detail _GLIBCXX_END_NAMESPACE_VERSION } // namespace std -#if __cplusplus >= 201703L +#if __cplusplus >= 201703L && _GLIBCXX_HOSTED // Parallel STL algorithms # if _PSTL_EXECUTION_POLICIES_DEFINED // If <execution> has already been included, pull in implementations diff --git a/libstdc++-v3/include/std/ostream b/libstdc++-v3/include/std/ostream index 291ea40..674decf 100644 --- a/libstdc++-v3/include/std/ostream +++ b/libstdc++-v3/include/std/ostream @@ -35,6 +35,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // iostreams + #include <ios> #include <bits/ostream_insert.h> diff --git a/libstdc++-v3/include/std/queue b/libstdc++-v3/include/std/queue index db81ef1..7c4952f 100644 --- a/libstdc++-v3/include/std/queue +++ b/libstdc++-v3/include/std/queue @@ -57,6 +57,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // containers + #include <deque> #include <vector> #include <bits/stl_heap.h> diff --git a/libstdc++-v3/include/std/random b/libstdc++-v3/include/std/random index 89a2f16..66757f7 100644 --- a/libstdc++-v3/include/std/random +++ b/libstdc++-v3/include/std/random @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // OS-dependent random + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/std/regex b/libstdc++-v3/include/std/regex index 491bced..aa50c7e 100644 --- a/libstdc++-v3/include/std/regex +++ b/libstdc++-v3/include/std/regex @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // string and container heavy + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/std/semaphore b/libstdc++-v3/include/std/semaphore index 8a31c6d..72d68dd 100644 --- a/libstdc++-v3/include/std/semaphore +++ b/libstdc++-v3/include/std/semaphore @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // concurrency + #if __cplusplus > 201703L #include <bits/semaphore_base.h> diff --git a/libstdc++-v3/include/std/set b/libstdc++-v3/include/std/set index 551c777..4cbcba1 100644 --- a/libstdc++-v3/include/std/set +++ b/libstdc++-v3/include/std/set @@ -57,6 +57,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // containers + #include <bits/stl_tree.h> #include <bits/stl_set.h> #include <bits/stl_multiset.h> diff --git a/libstdc++-v3/include/std/shared_mutex b/libstdc++-v3/include/std/shared_mutex index 817a958..cf74b32 100644 --- a/libstdc++-v3/include/std/shared_mutex +++ b/libstdc++-v3/include/std/shared_mutex @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // concurrency + #if __cplusplus >= 201402L #include <bits/chrono.h> diff --git a/libstdc++-v3/include/std/spanstream b/libstdc++-v3/include/std/spanstream index 5855b28..6abf013 100644 --- a/libstdc++-v3/include/std/spanstream +++ b/libstdc++-v3/include/std/spanstream @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // iostreams + #if __cplusplus > 202002L #include <span> #include <streambuf> diff --git a/libstdc++-v3/include/std/sstream b/libstdc++-v3/include/std/sstream index bc7d636..7305bdb 100644 --- a/libstdc++-v3/include/std/sstream +++ b/libstdc++-v3/include/std/sstream @@ -35,6 +35,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // iostream + #include <istream> #include <ostream> #include <bits/alloc_traits.h> // allocator_traits, __allocator_like diff --git a/libstdc++-v3/include/std/stack b/libstdc++-v3/include/std/stack index fc14e2e..98d2123 100644 --- a/libstdc++-v3/include/std/stack +++ b/libstdc++-v3/include/std/stack @@ -57,6 +57,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // containers + #include <deque> #include <bits/stl_stack.h> diff --git a/libstdc++-v3/include/std/stacktrace b/libstdc++-v3/include/std/stacktrace index 39472d7..e7cbbee 100644 --- a/libstdc++-v3/include/std/stacktrace +++ b/libstdc++-v3/include/std/stacktrace @@ -26,6 +26,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // std::string bound + #include <bits/c++config.h> #if __cplusplus > 202002L && _GLIBCXX_HAVE_STACKTRACE diff --git a/libstdc++-v3/include/std/stop_token b/libstdc++-v3/include/std/stop_token index 07d4fda..f196834 100644 --- a/libstdc++-v3/include/std/stop_token +++ b/libstdc++-v3/include/std/stop_token @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_STOP_TOKEN #define _GLIBCXX_STOP_TOKEN +#include <bits/requires_hosted.h> // concurrency + #if __cplusplus > 201703L #include <atomic> diff --git a/libstdc++-v3/include/std/streambuf b/libstdc++-v3/include/std/streambuf index 888611d..d8893df 100644 --- a/libstdc++-v3/include/std/streambuf +++ b/libstdc++-v3/include/std/streambuf @@ -35,6 +35,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // iostreams + #include <bits/c++config.h> #include <iosfwd> #include <bits/localefwd.h> diff --git a/libstdc++-v3/include/std/string b/libstdc++-v3/include/std/string index 62ecdb3..41e6e2c 100644 --- a/libstdc++-v3/include/std/string +++ b/libstdc++-v3/include/std/string @@ -35,6 +35,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // containers + #include <bits/c++config.h> #include <bits/stringfwd.h> #include <bits/char_traits.h> diff --git a/libstdc++-v3/include/std/syncstream b/libstdc++-v3/include/std/syncstream index 7a4f731..838cec5 100644 --- a/libstdc++-v3/include/std/syncstream +++ b/libstdc++-v3/include/std/syncstream @@ -38,6 +38,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // iostreams + #include <sstream> #include <bits/alloc_traits.h> diff --git a/libstdc++-v3/include/std/system_error b/libstdc++-v3/include/std/system_error index e12bb2f..6dad75d 100644 --- a/libstdc++-v3/include/std/system_error +++ b/libstdc++-v3/include/std/system_error @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // OS-dependent + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/std/thread b/libstdc++-v3/include/std/thread index 82f191a..a314b9e 100644 --- a/libstdc++-v3/include/std/thread +++ b/libstdc++-v3/include/std/thread @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // concurrency + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index 22c1af2..a015fd9 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -2901,7 +2901,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Tp, bool _Nothrow = noexcept(_S_conv<_Tp>(_S_get())), typename = decltype(_S_conv<_Tp>(_S_get())), - bool _Dangle = __reference_converts_from_temporary(_Tp, _Res_t)> +#if __has_builtin(__reference_converts_from_temporary) + bool _Dangle = __reference_converts_from_temporary(_Tp, _Res_t) +#else + bool _Dangle = false +#endif + > static __bool_constant<_Nothrow && !_Dangle> _S_test(int); diff --git a/libstdc++-v3/include/std/unordered_map b/libstdc++-v3/include/std/unordered_map index b50ec2a..323edcd 100644 --- a/libstdc++-v3/include/std/unordered_map +++ b/libstdc++-v3/include/std/unordered_map @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // container + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/std/unordered_set b/libstdc++-v3/include/std/unordered_set index edaa517..998417f 100644 --- a/libstdc++-v3/include/std/unordered_set +++ b/libstdc++-v3/include/std/unordered_set @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // containers + #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else diff --git a/libstdc++-v3/include/std/valarray b/libstdc++-v3/include/std/valarray index 87fec2b..90bbed7 100644 --- a/libstdc++-v3/include/std/valarray +++ b/libstdc++-v3/include/std/valarray @@ -33,6 +33,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // <cmath> dependant + #include <bits/c++config.h> #include <cmath> #include <algorithm> diff --git a/libstdc++-v3/include/std/vector b/libstdc++-v3/include/std/vector index d7f69fd..75377d5 100644 --- a/libstdc++-v3/include/std/vector +++ b/libstdc++-v3/include/std/vector @@ -57,6 +57,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // container + #include <bits/stl_algobase.h> #include <bits/allocator.h> #include <bits/stl_construct.h> diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version index 3fd5182..397a4aa 100644 --- a/libstdc++-v3/include/std/version +++ b/libstdc++-v3/include/std/version @@ -46,11 +46,11 @@ #if __cplusplus >= 201103L // c++11 +#define __cpp_lib_allocator_traits_is_always_equal 201411L #define __cpp_lib_is_null_pointer 201309L #define __cpp_lib_result_of_sfinae 201210L #if _GLIBCXX_HOSTED -# define __cpp_lib_allocator_traits_is_always_equal 201411L #if __cplusplus <= 201703L // N.B. updated value in C++20 # define __cpp_lib_shared_ptr_arrays 201611L #endif @@ -73,35 +73,38 @@ #if __cpp_impl_coroutine # define __cpp_lib_coroutine 201902L #endif +#define __cpp_lib_exchange_function 201304L +#define __cpp_lib_integer_sequence 201304L #define __cpp_lib_integral_constant_callable 201304L #define __cpp_lib_is_final 201402L +#define __cpp_lib_make_reverse_iterator 201402L +#ifndef _GLIBCXX_DEBUG // PR libstdc++/70303 +# define __cpp_lib_null_iterators 201304L +#endif #define __cpp_lib_transformation_trait_aliases 201304L +#define __cpp_lib_transparent_operators 201510L +#define __cpp_lib_tuple_element_t 201402L +#define __cpp_lib_tuples_by_type 201304L #if _GLIBCXX_HOSTED # define __cpp_lib_chrono_udls 201304L # define __cpp_lib_complex_udls 201309L -# define __cpp_lib_exchange_function 201304L # define __cpp_lib_generic_associative_lookup 201304L -# define __cpp_lib_integer_sequence 201304L -# define __cpp_lib_make_reverse_iterator 201402L # define __cpp_lib_make_unique 201304L -# ifndef _GLIBCXX_DEBUG // PR libstdc++/70303 -# define __cpp_lib_null_iterators 201304L -# endif # define __cpp_lib_quoted_string_io 201304L # define __cpp_lib_robust_nonmodifying_seq_ops 201304L # ifdef _GLIBCXX_HAS_GTHREADS # define __cpp_lib_shared_timed_mutex 201402L # endif # define __cpp_lib_string_udls 201304L -# define __cpp_lib_transparent_operators 201510L -# define __cpp_lib_tuple_element_t 201402L -# define __cpp_lib_tuples_by_type 201304L #endif #if __cplusplus >= 201703L // c++17 #define __cpp_lib_addressof_constexpr 201603L +#define __cpp_lib_any 201606L +#define __cpp_lib_apply 201603L +#define __cpp_lib_as_const 201510L #define __cpp_lib_atomic_is_always_lock_free 201603L #define __cpp_lib_bool_constant 201505L #define __cpp_lib_byte 201603L @@ -111,6 +114,7 @@ #ifdef __GCC_DESTRUCTIVE_SIZE # define __cpp_lib_hardware_interference_size 201703L #endif +#define __cpp_lib_invoke 201411L #ifdef _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE # define __cpp_lib_is_aggregate 201703L #endif @@ -120,17 +124,23 @@ # define __cpp_lib_launder 201606L #endif #define __cpp_lib_logical_traits 201510L +#define __cpp_lib_make_from_tuple 201606L +#define __cpp_lib_not_fn 201603L +#if __cplusplus == 201703L // N.B. updated value in C++20 +# define __cpp_lib_optional 201606L +#endif #define __cpp_lib_type_trait_variable_templates 201510L #define __cpp_lib_uncaught_exceptions 201411L +#if !(__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L) +// N.B. updated value in C++20 +# define __cpp_lib_variant 202102L +#endif #define __cpp_lib_void_t 201411L #if _GLIBCXX_HOSTED -#define __cpp_lib_any 201606L -#define __cpp_lib_apply 201603L #if __cplusplus == 201703L // N.B. updated value in C++20 # define __cpp_lib_array_constexpr 201803L #endif -#define __cpp_lib_as_const 201510L #define __cpp_lib_boyer_moore_searcher 201603L #define __cpp_lib_chrono 201611L #define __cpp_lib_clamp 201603L @@ -146,9 +156,7 @@ #define __cpp_lib_gcd 201606L #define __cpp_lib_gcd_lcm 201606L #define __cpp_lib_hypot 201603L -#define __cpp_lib_invoke 201411L #define __cpp_lib_lcm 201606L -#define __cpp_lib_make_from_tuple 201606L #define __cpp_lib_map_try_emplace 201411L #define __cpp_lib_math_special_functions 201603L #ifdef _GLIBCXX_HAS_GTHREADS @@ -158,10 +166,6 @@ #endif #define __cpp_lib_node_extract 201606L #define __cpp_lib_nonmember_container_access 201411L -#define __cpp_lib_not_fn 201603L -#if __cplusplus == 201703L // N.B. updated value in C++20 -# define __cpp_lib_optional 201606L -#endif #define __cpp_lib_parallel_algorithm 201603L #define __cpp_lib_raw_memory_algorithms 201606L #define __cpp_lib_sample 201603L @@ -176,18 +180,16 @@ # define __cpp_lib_to_chars 201611L #endif #define __cpp_lib_unordered_map_try_emplace 201411L -#if !(__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L) -// N.B. updated value in C++20 -# define __cpp_lib_variant 202102L -#endif #endif #if __cplusplus >= 202002L // c++20 +#define __cpp_lib_assume_aligned 201811L #define __cpp_lib_atomic_flag_test 201907L #define __cpp_lib_atomic_float 201711L #define __cpp_lib_atomic_ref 201806L #define __cpp_lib_atomic_value_initialization 201911L +#define __cpp_lib_bind_front 201907L #if __has_builtin(__builtin_bit_cast) # define __cpp_lib_bit_cast 201806L #endif @@ -202,6 +204,7 @@ #endif #define __cpp_lib_endian 201907L #define __cpp_lib_int_pow2 202002L +#define __cpp_lib_integer_comparison_functions 202002L #ifdef _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED # define __cpp_lib_is_constant_evaluated 201811L #endif @@ -214,19 +217,32 @@ && __has_builtin(__builtin_is_pointer_interconvertible_with_class) # define __cpp_lib_is_pointer_interconvertible 201907L #endif +#define __cpp_lib_math_constants 201907L +#if __cpp_lib_concepts +# define __cpp_lib_make_obj_using_allocator 201811L +#endif +#define __cpp_lib_optional 202106L #define __cpp_lib_remove_cvref 201711L #if __has_builtin(__builtin_source_location) # define __cpp_lib_source_location 201907L #endif +#if __cpp_lib_concepts +# define __cpp_lib_span 202002L +#endif +#define __cpp_lib_ssize 201902L #if __cpp_impl_three_way_comparison >= 201907L && __cpp_lib_concepts # define __cpp_lib_three_way_comparison 201907L #endif +#define __cpp_lib_to_address 201711L +#define __cpp_lib_to_array 201907L #define __cpp_lib_type_identity 201806L #define __cpp_lib_unwrap_ref 201811L +#if __cpp_concepts >= 202002L && __cpp_constexpr >= 201811L +# define __cpp_lib_variant 202106L +#endif #if _GLIBCXX_HOSTED #define __cpp_lib_array_constexpr 201811L -#define __cpp_lib_assume_aligned 201811L #define __cpp_lib_atomic_shared_ptr 201711L #if defined _GLIBCXX_HAS_GTHREADS || defined _GLIBCXX_HAVE_LINUX_FUTEX # define __cpp_lib_atomic_wait 201907L @@ -234,9 +250,7 @@ # define __cpp_lib_barrier 201907L # endif #endif -#define __cpp_lib_bind_front 201907L // FIXME: #define __cpp_lib_execution 201902L -#define __cpp_lib_integer_comparison_functions 202002L #define __cpp_lib_constexpr_algorithms 201806L #ifdef __cpp_lib_is_constant_evaluated # define __cpp_lib_constexpr_char_traits 201811L @@ -268,11 +282,6 @@ # define __cpp_lib_latch 201907L #endif #define __cpp_lib_list_remove_return_type 201806L -#if __cpp_lib_concepts -# define __cpp_lib_make_obj_using_allocator 201811L -#endif -#define __cpp_lib_math_constants 201907L -#define __cpp_lib_optional 202106L #define __cpp_lib_polymorphic_allocator 201902L #if __cpp_lib_concepts # define __cpp_lib_ranges 202110L @@ -283,28 +292,29 @@ #define __cpp_lib_shared_ptr_arrays 201707L #define __cpp_lib_shift 201806L #define __cpp_lib_smart_ptr_for_overwrite 202002L -#if __cpp_lib_concepts -# define __cpp_lib_span 202002L -#endif -#define __cpp_lib_ssize 201902L #define __cpp_lib_starts_ends_with 201711L # if _GLIBCXX_USE_CXX11_ABI // Only supported with cxx11-abi # define __cpp_lib_syncbuf 201803L # endif -#define __cpp_lib_to_address 201711L -#define __cpp_lib_to_array 201907L -#if __cpp_concepts >= 202002L && __cpp_constexpr >= 201811L -# define __cpp_lib_variant 202106L -#endif #endif #if __cplusplus > 202002L // c++23 #define __cpp_lib_byteswap 202110L #define __cpp_lib_constexpr_typeinfo 202106L +#if __cpp_concepts >= 202002L +# define __cpp_lib_expected 202202L +#endif +#define __cpp_lib_invoke_r 202106L #define __cpp_lib_is_scoped_enum 202011L +#if __cpp_lib_concepts +# undef __cpp_lib_optional +# define __cpp_lib_optional 202110L +#endif #define __cpp_lib_reference_from_temporary 202202L +#define __cpp_lib_to_underlying 202102L +#define __cpp_lib_unreachable 202202L #if _GLIBCXX_HOSTED #define __cpp_lib_adaptor_iterator_pair_constructor 202106L @@ -313,15 +323,7 @@ # undef __cpp_lib_constexpr_memory # define __cpp_lib_constexpr_memory 202202L #endif -#if __cpp_concepts >= 202002L -# define __cpp_lib_expected 202202L -#endif -#define __cpp_lib_invoke_r 202106L #define __cpp_lib_ios_noreplace 202207L -#if __cpp_lib_concepts -# undef __cpp_lib_optional -# define __cpp_lib_optional 202110L -#endif #define __cpp_lib_move_only_function 202110L #if __cpp_lib_span # define __cpp_lib_spanstream 202106L @@ -334,8 +336,6 @@ #if _GLIBCXX_USE_CXX11_ABI // Only supported with cxx11-abi # define __cpp_lib_string_resize_and_overwrite 202110L #endif -#define __cpp_lib_to_underlying 202102L -#define __cpp_lib_unreachable 202202L #endif #endif // C++23 #endif // C++20 diff --git a/libstdc++-v3/include/tr1/array b/libstdc++-v3/include/tr1/array index 2aac0ed..f03ad81 100644 --- a/libstdc++-v3/include/tr1/array +++ b/libstdc++-v3/include/tr1/array @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <bits/stl_algobase.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/tr1/ccomplex b/libstdc++-v3/include/tr1/ccomplex index 8f9546e..1b632be 100644 --- a/libstdc++-v3/include/tr1/ccomplex +++ b/libstdc++-v3/include/tr1/ccomplex @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_CCOMPLEX #define _GLIBCXX_TR1_CCOMPLEX 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/complex> #endif // _GLIBCXX_TR1_CCOMPLEX diff --git a/libstdc++-v3/include/tr1/cctype b/libstdc++-v3/include/tr1/cctype index 43520c7..2c4a15b 100644 --- a/libstdc++-v3/include/tr1/cctype +++ b/libstdc++-v3/include/tr1/cctype @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_CCTYPE #define _GLIBCXX_TR1_CCTYPE 1 +#include <bits/requires_hosted.h> // TR1 + #include <bits/c++config.h> #include <cctype> diff --git a/libstdc++-v3/include/tr1/cfenv b/libstdc++-v3/include/tr1/cfenv index 202fe27..37e06c6 100644 --- a/libstdc++-v3/include/tr1/cfenv +++ b/libstdc++-v3/include/tr1/cfenv @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <bits/c++config.h> #if _GLIBCXX_HAVE_FENV_H diff --git a/libstdc++-v3/include/tr1/cfloat b/libstdc++-v3/include/tr1/cfloat index 2456513..76bfcfb 100644 --- a/libstdc++-v3/include/tr1/cfloat +++ b/libstdc++-v3/include/tr1/cfloat @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_CFLOAT #define _GLIBCXX_TR1_CFLOAT 1 +#include <bits/requires_hosted.h> // TR1 + #include <cfloat> #ifndef DECIMAL_DIG diff --git a/libstdc++-v3/include/tr1/cinttypes b/libstdc++-v3/include/tr1/cinttypes index a04cf24..24b4648 100644 --- a/libstdc++-v3/include/tr1/cinttypes +++ b/libstdc++-v3/include/tr1/cinttypes @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cstdint> // For 8.11.1/1 (see C99, Note 184) diff --git a/libstdc++-v3/include/tr1/climits b/libstdc++-v3/include/tr1/climits index 95e3bc3..0d702dc 100644 --- a/libstdc++-v3/include/tr1/climits +++ b/libstdc++-v3/include/tr1/climits @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_CLIMITS #define _GLIBCXX_TR1_CLIMITS 1 +#include <bits/requires_hosted.h> // TR1 + #include <climits> #ifndef LLONG_MIN diff --git a/libstdc++-v3/include/tr1/cmath b/libstdc++-v3/include/tr1/cmath index f3a53f3..384f116 100644 --- a/libstdc++-v3/include/tr1/cmath +++ b/libstdc++-v3/include/tr1/cmath @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <cmath> #ifdef _GLIBCXX_USE_C99_MATH_TR1 diff --git a/libstdc++-v3/include/tr1/complex b/libstdc++-v3/include/tr1/complex index abb5e13..fa88cd5 100644 --- a/libstdc++-v3/include/tr1/complex +++ b/libstdc++-v3/include/tr1/complex @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <complex> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/tr1/complex.h b/libstdc++-v3/include/tr1/complex.h index f282478..c5fb4c1 100644 --- a/libstdc++-v3/include/tr1/complex.h +++ b/libstdc++-v3/include/tr1/complex.h @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_COMPLEX_H #define _GLIBCXX_TR1_COMPLEX_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/ccomplex> #endif // _GLIBCXX_TR1_COMPLEX_H diff --git a/libstdc++-v3/include/tr1/cstdarg b/libstdc++-v3/include/tr1/cstdarg index f28ff2a..f046e816 100644 --- a/libstdc++-v3/include/tr1/cstdarg +++ b/libstdc++-v3/include/tr1/cstdarg @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_CSTDARG #define _GLIBCXX_TR1_CSTDARG 1 +#include <bits/requires_hosted.h> // TR1 + #include <cstdarg> #endif // _GLIBCXX_TR1_CSTDARG diff --git a/libstdc++-v3/include/tr1/cstdbool b/libstdc++-v3/include/tr1/cstdbool index 77c0315..20afb63 100644 --- a/libstdc++-v3/include/tr1/cstdbool +++ b/libstdc++-v3/include/tr1/cstdbool @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <bits/c++config.h> #if _GLIBCXX_HAVE_STDBOOL_H diff --git a/libstdc++-v3/include/tr1/cstdint b/libstdc++-v3/include/tr1/cstdint index 0d13b30..9e3e45c 100644 --- a/libstdc++-v3/include/tr1/cstdint +++ b/libstdc++-v3/include/tr1/cstdint @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <bits/c++config.h> // For 8.22.1/1 (see C99, Notes 219, 220, 222) diff --git a/libstdc++-v3/include/tr1/cstdio b/libstdc++-v3/include/tr1/cstdio index 4692d21..dcbff6a 100644 --- a/libstdc++-v3/include/tr1/cstdio +++ b/libstdc++-v3/include/tr1/cstdio @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <cstdio> #if _GLIBCXX_USE_C99_STDIO diff --git a/libstdc++-v3/include/tr1/cstdlib b/libstdc++-v3/include/tr1/cstdlib index de952bb..5569b0d 100644 --- a/libstdc++-v3/include/tr1/cstdlib +++ b/libstdc++-v3/include/tr1/cstdlib @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <cstdlib> #if _GLIBCXX_HOSTED diff --git a/libstdc++-v3/include/tr1/ctgmath b/libstdc++-v3/include/tr1/ctgmath index 64ef405..15ada9c 100644 --- a/libstdc++-v3/include/tr1/ctgmath +++ b/libstdc++-v3/include/tr1/ctgmath @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_CTGMATH #define _GLIBCXX_TR1_CTGMATH 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cmath> #endif // _GLIBCXX_TR1_CTGMATH diff --git a/libstdc++-v3/include/tr1/ctime b/libstdc++-v3/include/tr1/ctime index 8b9b869..99b529a 100644 --- a/libstdc++-v3/include/tr1/ctime +++ b/libstdc++-v3/include/tr1/ctime @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_CTIME #define _GLIBCXX_TR1_CTIME 1 +#include <bits/requires_hosted.h> // TR1 + #include <ctime> #endif // _GLIBCXX_TR1_CTIME diff --git a/libstdc++-v3/include/tr1/ctype.h b/libstdc++-v3/include/tr1/ctype.h index 91177ff..014fc2b 100644 --- a/libstdc++-v3/include/tr1/ctype.h +++ b/libstdc++-v3/include/tr1/ctype.h @@ -29,6 +29,8 @@ #ifndef _TR1_CTYPE_H #define _TR1_CTYPE_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cctype> #endif diff --git a/libstdc++-v3/include/tr1/cwchar b/libstdc++-v3/include/tr1/cwchar index 23219bc..1140eda 100644 --- a/libstdc++-v3/include/tr1/cwchar +++ b/libstdc++-v3/include/tr1/cwchar @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <cwchar> #ifdef _GLIBCXX_USE_WCHAR_T diff --git a/libstdc++-v3/include/tr1/cwctype b/libstdc++-v3/include/tr1/cwctype index 1a71dd0..ddb25af 100644 --- a/libstdc++-v3/include/tr1/cwctype +++ b/libstdc++-v3/include/tr1/cwctype @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <cwctype> #ifdef _GLIBCXX_USE_WCHAR_T diff --git a/libstdc++-v3/include/tr1/fenv.h b/libstdc++-v3/include/tr1/fenv.h index 091b0b8..2547f00 100644 --- a/libstdc++-v3/include/tr1/fenv.h +++ b/libstdc++-v3/include/tr1/fenv.h @@ -29,6 +29,8 @@ #ifndef _TR1_FENV_H #define _TR1_FENV_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cfenv> #endif diff --git a/libstdc++-v3/include/tr1/float.h b/libstdc++-v3/include/tr1/float.h index 2367078..1dd3ef13 100644 --- a/libstdc++-v3/include/tr1/float.h +++ b/libstdc++-v3/include/tr1/float.h @@ -29,6 +29,8 @@ #ifndef _TR1_FLOAT_H #define _TR1_FLOAT_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cfloat> #endif diff --git a/libstdc++-v3/include/tr1/functional b/libstdc++-v3/include/tr1/functional index 83d22be..ae219ab 100644 --- a/libstdc++-v3/include/tr1/functional +++ b/libstdc++-v3/include/tr1/functional @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <functional> // for std::_Placeholder, std::_Bind, std::_Bind_result #include <typeinfo> diff --git a/libstdc++-v3/include/tr1/inttypes.h b/libstdc++-v3/include/tr1/inttypes.h index 22a7514..eb5ddbe 100644 --- a/libstdc++-v3/include/tr1/inttypes.h +++ b/libstdc++-v3/include/tr1/inttypes.h @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_INTTYPES_H #define _GLIBCXX_TR1_INTTYPES_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cinttypes> #endif // _GLIBCXX_TR1_INTTYPES_H diff --git a/libstdc++-v3/include/tr1/limits.h b/libstdc++-v3/include/tr1/limits.h index b54f9d2..73baf85 100644 --- a/libstdc++-v3/include/tr1/limits.h +++ b/libstdc++-v3/include/tr1/limits.h @@ -29,6 +29,8 @@ #ifndef _TR1_LIMITS_H #define _TR1_LIMITS_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/climits> #endif diff --git a/libstdc++-v3/include/tr1/math.h b/libstdc++-v3/include/tr1/math.h index 423b5ea..99c8f45 100644 --- a/libstdc++-v3/include/tr1/math.h +++ b/libstdc++-v3/include/tr1/math.h @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_MATH_H #define _GLIBCXX_TR1_MATH_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cmath> #if _GLIBCXX_USE_C99_MATH_TR1 diff --git a/libstdc++-v3/include/tr1/memory b/libstdc++-v3/include/tr1/memory index b50a558..759000b 100644 --- a/libstdc++-v3/include/tr1/memory +++ b/libstdc++-v3/include/tr1/memory @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #if defined(_GLIBCXX_INCLUDE_AS_CXX11) # error TR1 header cannot be included from C++11 header #endif diff --git a/libstdc++-v3/include/tr1/random b/libstdc++-v3/include/tr1/random index cb57540..f9fbd4d 100644 --- a/libstdc++-v3/include/tr1/random +++ b/libstdc++-v3/include/tr1/random @@ -32,6 +32,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <cmath> #include <cstdio> #include <cstdlib> diff --git a/libstdc++-v3/include/tr1/regex b/libstdc++-v3/include/tr1/regex index 10db372..bcdea9d 100644 --- a/libstdc++-v3/include/tr1/regex +++ b/libstdc++-v3/include/tr1/regex @@ -33,6 +33,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <algorithm> #include <bitset> #include <iterator> diff --git a/libstdc++-v3/include/tr1/stdarg.h b/libstdc++-v3/include/tr1/stdarg.h index 446dda1..4622f33 100644 --- a/libstdc++-v3/include/tr1/stdarg.h +++ b/libstdc++-v3/include/tr1/stdarg.h @@ -29,6 +29,8 @@ #ifndef _TR1_STDARG_H #define _TR1_STDARG_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cstdarg> #endif diff --git a/libstdc++-v3/include/tr1/stdbool.h b/libstdc++-v3/include/tr1/stdbool.h index 76d0b72..368e891 100644 --- a/libstdc++-v3/include/tr1/stdbool.h +++ b/libstdc++-v3/include/tr1/stdbool.h @@ -29,6 +29,8 @@ #ifndef _TR1_STDBOOL_H #define _TR1_STDBOOL_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cstdbool> #endif diff --git a/libstdc++-v3/include/tr1/stdint.h b/libstdc++-v3/include/tr1/stdint.h index 59c1d95..b19361b 100644 --- a/libstdc++-v3/include/tr1/stdint.h +++ b/libstdc++-v3/include/tr1/stdint.h @@ -29,6 +29,8 @@ #ifndef _TR1_STDINT_H #define _TR1_STDINT_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cstdint> #endif diff --git a/libstdc++-v3/include/tr1/stdio.h b/libstdc++-v3/include/tr1/stdio.h index f7cc5c7..3ef65f9 100644 --- a/libstdc++-v3/include/tr1/stdio.h +++ b/libstdc++-v3/include/tr1/stdio.h @@ -29,6 +29,8 @@ #ifndef _TR1_STDIO_H #define _TR1_STDIO_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cstdio> #endif diff --git a/libstdc++-v3/include/tr1/stdlib.h b/libstdc++-v3/include/tr1/stdlib.h index 0e9c605..0963136 100644 --- a/libstdc++-v3/include/tr1/stdlib.h +++ b/libstdc++-v3/include/tr1/stdlib.h @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_STDLIB_H #define _GLIBCXX_TR1_STDLIB_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cstdlib> #if _GLIBCXX_HOSTED diff --git a/libstdc++-v3/include/tr1/tgmath.h b/libstdc++-v3/include/tr1/tgmath.h index 3871c3c..a3505c9 100644 --- a/libstdc++-v3/include/tr1/tgmath.h +++ b/libstdc++-v3/include/tr1/tgmath.h @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_TGMATH_H #define _GLIBCXX_TR1_TGMATH_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/ctgmath> #endif // _GLIBCXX_TR1_TGMATH_H diff --git a/libstdc++-v3/include/tr1/tuple b/libstdc++-v3/include/tr1/tuple index 94b1c0d..a24da25 100644 --- a/libstdc++-v3/include/tr1/tuple +++ b/libstdc++-v3/include/tr1/tuple @@ -34,6 +34,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <utility> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/tr1/type_traits b/libstdc++-v3/include/tr1/type_traits index 2ee3b06..305a0d0 100644 --- a/libstdc++-v3/include/tr1/type_traits +++ b/libstdc++-v3/include/tr1/type_traits @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <bits/c++config.h> namespace std _GLIBCXX_VISIBILITY(default) diff --git a/libstdc++-v3/include/tr1/unordered_map b/libstdc++-v3/include/tr1/unordered_map index edec4e2..24d3892 100644 --- a/libstdc++-v3/include/tr1/unordered_map +++ b/libstdc++-v3/include/tr1/unordered_map @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <utility> #include <bits/stl_algobase.h> #include <bits/allocator.h> diff --git a/libstdc++-v3/include/tr1/unordered_set b/libstdc++-v3/include/tr1/unordered_set index fa11b16..59f0ab9 100644 --- a/libstdc++-v3/include/tr1/unordered_set +++ b/libstdc++-v3/include/tr1/unordered_set @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <utility> #include <bits/stl_algobase.h> #include <bits/allocator.h> diff --git a/libstdc++-v3/include/tr1/utility b/libstdc++-v3/include/tr1/utility index e6e3bbd..cc2699d 100644 --- a/libstdc++-v3/include/tr1/utility +++ b/libstdc++-v3/include/tr1/utility @@ -31,6 +31,8 @@ #pragma GCC system_header +#include <bits/requires_hosted.h> // TR1 + #include <bits/c++config.h> #include <bits/stl_relops.h> #include <bits/stl_pair.h> diff --git a/libstdc++-v3/include/tr1/wchar.h b/libstdc++-v3/include/tr1/wchar.h index 503ca20..0812c07 100644 --- a/libstdc++-v3/include/tr1/wchar.h +++ b/libstdc++-v3/include/tr1/wchar.h @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_WCHAR_H #define _GLIBCXX_TR1_WCHAR_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cwchar> #endif // _GLIBCXX_TR1_WCHAR_H diff --git a/libstdc++-v3/include/tr1/wctype.h b/libstdc++-v3/include/tr1/wctype.h index fa0e458..84fd7cc 100644 --- a/libstdc++-v3/include/tr1/wctype.h +++ b/libstdc++-v3/include/tr1/wctype.h @@ -29,6 +29,8 @@ #ifndef _GLIBCXX_TR1_WCTYPE_H #define _GLIBCXX_TR1_WCTYPE_H 1 +#include <bits/requires_hosted.h> // TR1 + #include <tr1/cwctype> #endif // _GLIBCXX_TR1_WCTYPE_H diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py index 5a3dcbd..0fa7805 100644 --- a/libstdc++-v3/python/libstdcxx/v6/printers.py +++ b/libstdc++-v3/python/libstdcxx/v6/printers.py @@ -1857,7 +1857,7 @@ class Printer(object): # Add a name using _GLIBCXX_BEGIN_NAMESPACE_VERSION. def add_version(self, base, name, function): self.add(base + name, function) - if _versioned_namespace: + if _versioned_namespace and not '__cxx11' in base: vbase = re.sub('^(std|__gnu_cxx)::', r'\g<0>%s' % _versioned_namespace, base) self.add(vbase + name, function) @@ -2026,7 +2026,7 @@ def add_one_template_type_printer(obj, name, defargs): printer = TemplateTypePrinter('std::__debug::'+name, defargs) gdb.types.register_type_printer(obj, printer) - if _versioned_namespace: + if _versioned_namespace and not '__cxx11' in name: # Add second type printer for same type in versioned namespace: ns = 'std::' + _versioned_namespace # PR 86112 Cannot use dict comprehension here: @@ -2034,6 +2034,10 @@ def add_one_template_type_printer(obj, name, defargs): printer = TemplateTypePrinter(ns+name, defargs) gdb.types.register_type_printer(obj, printer) + # Add type printer for same type in debug namespace: + printer = TemplateTypePrinter('std::__debug::'+name, defargs) + gdb.types.register_type_printer(obj, printer) + class FilteringTypePrinter(object): r""" A type printer that uses typedef names for common template specializations. @@ -2080,6 +2084,21 @@ class FilteringTypePrinter(object): pass if self.type_obj == type_obj: return strip_inline_namespaces(self.name) + + if self.type_obj is None: + return None + + # Workaround ambiguous typedefs matching both std:: and std::__cxx11:: symbols. + ambiguous = False + for ch in ('', 'w', 'u8', 'u16', 'u32'): + if self.name == 'std::' + ch + 'string': + ambiguous = True + break + + if ambiguous: + if self.type_obj.tag.replace('__cxx11::', '') == type_obj.tag.replace('__cxx11::', ''): + return strip_inline_namespaces(self.name) + return None def instantiate(self): @@ -2089,7 +2108,7 @@ class FilteringTypePrinter(object): def add_one_type_printer(obj, match, name): printer = FilteringTypePrinter('std::' + match, 'std::' + name) gdb.types.register_type_printer(obj, printer) - if _versioned_namespace: + if _versioned_namespace and not '__cxx11' in match: ns = 'std::' + _versioned_namespace printer = FilteringTypePrinter(ns + match, ns + name) gdb.types.register_type_printer(obj, printer) diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc b/libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc index 4776c18..e362dfe 100644 --- a/libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc @@ -24,6 +24,7 @@ #include <bits/stdc++.h> +#if __STDC_HOSTED__ // "C" compatibility headers #include <assert.h> #include <ctype.h> @@ -47,3 +48,4 @@ #ifdef _GLIBCXX_HAVE_WCTYPE_H #include <wctype.h> #endif +#endif diff --git a/libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc b/libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc index ec81da1..dac92e6 100644 --- a/libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc +++ b/libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc @@ -1,5 +1,6 @@ // { dg-do compile } // { dg-options "-D_GLIBCXX_NO_ASSERT" } +// { dg-require-effective-target hosted } // NB: This is done to force any generated and possibly included PCH // to be invalid, and also to remove cassert from the include set. diff --git a/libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc b/libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc index 262fc9a..410142d 100644 --- a/libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc +++ b/libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc @@ -20,40 +20,50 @@ #include <new> #include <utility> #include <memory> -#include <mutex> + +#if __STDC_HOSTED__ +# include <mutex> +#endif void f1(std::nothrow_t); void f2(std::piecewise_construct_t); void f3(std::allocator_arg_t); +#if __STDC_HOSTED__ void f4(std::defer_lock_t); void f5(std::try_to_lock_t); void f6(std::adopt_lock_t); - +#endif int main() { std::nothrow_t v1; std::piecewise_construct_t v2; std::allocator_arg_t v3; +#if __STDC_HOSTED__ std::defer_lock_t v4; std::try_to_lock_t v5; std::try_to_lock_t v6; +#endif std::nothrow_t v7 = {}; // { dg-error "explicit" } std::piecewise_construct_t v8 = {}; // { dg-error "explicit" } std::allocator_arg_t v9 = {}; // { dg-error "explicit" } - std::defer_lock_t v10 = {}; // { dg-error "explicit" } - std::try_to_lock_t v11 = {}; // { dg-error "explicit" } - std::try_to_lock_t v12 = {}; // { dg-error "explicit" } +#if __STDC_HOSTED__ + std::defer_lock_t v10 = {}; // { dg-error "explicit" "" { target hosted } } + std::try_to_lock_t v11 = {}; // { dg-error "explicit" "" { target hosted } } + std::try_to_lock_t v12 = {}; // { dg-error "explicit" "" { target hosted } } +#endif f1(std::nothrow_t{}); f2(std::piecewise_construct_t{}); f3(std::allocator_arg_t{}); - f4(std::defer_lock_t{}); - f5(std::try_to_lock_t{}); - f6(std::adopt_lock_t{}); f1({}); // { dg-error "explicit" } f2({}); // { dg-error "explicit" } f3({}); // { dg-error "explicit" } - f4({}); // { dg-error "explicit" } - f5({}); // { dg-error "explicit" } - f6({}); // { dg-error "explicit" } +#if __STDC_HOSTED__ + f4(std::defer_lock_t{}); + f5(std::try_to_lock_t{}); + f6(std::adopt_lock_t{}); + f4({}); // { dg-error "explicit" "" { target hosted } } + f5({}); // { dg-error "explicit" "" { target hosted } } + f6({}); // { dg-error "explicit" "" { target hosted } } +#endif } diff --git a/libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc b/libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc index cdec24e..9fadafd 100644 --- a/libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc +++ b/libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc @@ -20,42 +20,45 @@ #include <algorithm> #include <array> #include <bitset> -#include <complex> -#include <deque> #include <exception> -#include <fstream> #include <functional> -#include <iomanip> -#include <ios> -#include <iosfwd> -#include <iostream> -#include <istream> #include <iterator> #include <limits> -#include <list> -#include <locale> -#include <map> #include <memory> #include <new> #include <numeric> -#include <ostream> -#include <queue> -#include <random> -#include <regex> -#include <set> -#include <sstream> -#include <stack> -#include <stdexcept> -#include <streambuf> -#include <string> #include <tuple> #include <typeinfo> #include <type_traits> -#include <unordered_map> -#include <unordered_set> #include <utility> -#include <valarray> -#include <vector> + +#if __STDC_HOSTED__ +# include <complex> +# include <deque> +# include <fstream> +# include <iomanip> +# include <ios> +# include <iosfwd> +# include <iostream> +# include <istream> +# include <list> +# include <locale> +# include <map> +# include <ostream> +# include <queue> +# include <random> +# include <regex> +# include <set> +# include <sstream> +# include <stack> +# include <stdexcept> +# include <streambuf> +# include <string> +# include <unordered_map> +# include <unordered_set> +# include <valarray> +# include <vector> +#endif namespace gnu { diff --git a/libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc b/libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc index 31c2589..4d08cc5 100644 --- a/libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc +++ b/libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc @@ -23,42 +23,45 @@ #include <algorithm> #include <array> #include <bitset> -#include <complex> -#include <deque> #include <exception> -#include <fstream> #include <functional> -#include <iomanip> -#include <ios> -#include <iosfwd> -#include <iostream> -#include <istream> #include <iterator> #include <limits> -#include <list> -#include <locale> -#include <map> #include <memory> #include <new> #include <numeric> -#include <ostream> -#include <queue> -#include <random> -#include <regex> -#include <set> -#include <sstream> -#include <stack> -#include <stdexcept> -#include <streambuf> -#include <string> #include <tuple> #include <typeinfo> #include <type_traits> -#include <unordered_map> -#include <unordered_set> #include <utility> -#include <valarray> -#include <vector> + +#if __STDC_HOSTED__ +# include <complex> +# include <deque> +# include <fstream> +# include <iomanip> +# include <ios> +# include <iosfwd> +# include <iostream> +# include <istream> +# include <list> +# include <locale> +# include <map> +# include <ostream> +# include <queue> +# include <random> +# include <regex> +# include <set> +# include <sstream> +# include <stack> +# include <stdexcept> +# include <streambuf> +# include <string> +# include <unordered_map> +# include <unordered_set> +# include <valarray> +# include <vector> +#endif namespace gnu { diff --git a/libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc b/libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc index 1997ad0..be4fda3 100644 --- a/libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc +++ b/libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc @@ -17,6 +17,7 @@ // { dg-do run { target c++17 } } // { dg-require-cstdint "" } +// { dg-require-effective-target hosted } #include <cstdlib> #include <cstdint> diff --git a/libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc index e773889..af1ed6a 100644 --- a/libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc +++ b/libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc @@ -25,6 +25,8 @@ namespace gnu using std::atexit; using std::exit; +#if __STDC_HOSTED__ using std::getenv; using std::system; +#endif } diff --git a/libstdc++-v3/testsuite/18_support/new_nothrow.cc b/libstdc++-v3/testsuite/18_support/new_nothrow.cc index b0ef4e9..d5e7eb5 100644 --- a/libstdc++-v3/testsuite/18_support/new_nothrow.cc +++ b/libstdc++-v3/testsuite/18_support/new_nothrow.cc @@ -17,6 +17,7 @@ // { dg-do run } // { dg-xfail-run-if "AIX operator new" { powerpc-ibm-aix* } } +// { dg-require-effective-target hosted } #include <new> #include <stdlib.h> diff --git a/libstdc++-v3/testsuite/20_util/allocator/105975.cc b/libstdc++-v3/testsuite/20_util/allocator/105975.cc index 4342aea..09f27ba 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/105975.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/105975.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } +// { dg-require-effective-target hosted } // PR libstdc++/105957 diff --git a/libstdc++-v3/testsuite/20_util/allocator/14176.cc b/libstdc++-v3/testsuite/20_util/allocator/14176.cc index 137d33f..5ec6df8 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/14176.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/14176.cc @@ -15,6 +15,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + // 20.4.1.1 allocator members #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/allocator/64135.cc b/libstdc++-v3/testsuite/20_util/allocator/64135.cc index b0a49e9..686fab3 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/64135.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/64135.cc @@ -1,5 +1,6 @@ // { dg-do compile { target std_allocator_new } } // { dg-add-options no_pch } +// { dg-require-effective-target hosted } // PR libstdc++/64135 diff --git a/libstdc++-v3/testsuite/20_util/allocator/89510.cc b/libstdc++-v3/testsuite/20_util/allocator/89510.cc index b149b2e..65ae30d 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/89510.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/89510.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/allocator/lwg3190.cc b/libstdc++-v3/testsuite/20_util/allocator/lwg3190.cc index 001c66f..3fa1a79 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/lwg3190.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/lwg3190.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> #include <new> diff --git a/libstdc++-v3/testsuite/20_util/allocator/overaligned.cc b/libstdc++-v3/testsuite/20_util/allocator/overaligned.cc index 6f8d898..607c597 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/overaligned.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/overaligned.cc @@ -18,6 +18,7 @@ // { dg-options "-faligned-new" } // { dg-do run { target { c++11 && { c++17 || std_allocator_new } } } } // { dg-require-cstdint "" } +// { dg-require-effective-target hosted } #include <memory> #include <cstddef> diff --git a/libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc b/libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc index 17c4c48..3253050 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc b/libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc index c34b4a4..fea32cc 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc @@ -15,8 +15,9 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// { dg-options "-std=gnu++2a" } -// { dg-do compile { target c++2a } } +// { dg-options "-std=gnu++20" } +// { dg-do compile { target c++20 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc index 18d6607..ff0f44c 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc @@ -1,4 +1,5 @@ // { dg-do compile } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc index b99102a..d7b1666 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2012-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc b/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc index 3edefa1..8bbd353 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc @@ -15,8 +15,9 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// { dg-options "-std=gnu++2a" } -// { dg-do compile { target c++2a } } +// { dg-options "-std=gnu++20" } +// { dg-do compile { target c++20 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/allocator/void.cc b/libstdc++-v3/testsuite/20_util/allocator/void.cc index 5cdf0be..ffb26c5 100644 --- a/libstdc++-v3/testsuite/20_util/allocator/void.cc +++ b/libstdc++-v3/testsuite/20_util/allocator/void.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> 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 a630470..0f3dcef 100644 --- a/libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc +++ b/libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc @@ -15,8 +15,9 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// { dg-options "-std=gnu++2a" } -// { dg-do compile { target c++2a } } +// { dg-options "-std=gnu++20" } +// { dg-do compile { target c++20 } } +// { dg-require-effective-target hosted } #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 dd1d3c8..2e901b1 100644 --- a/libstdc++-v3/testsuite/20_util/allocator_traits/header.cc +++ b/libstdc++-v3/testsuite/20_util/allocator_traits/header.cc @@ -15,8 +15,9 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// { dg-options "-std=gnu++2a" } -// { dg-do compile { target c++2a } } +// { dg-options "-std=gnu++20" } +// { dg-do compile { target c++20 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc index 7716fee..4f56a7b 100644 --- a/libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc +++ b/libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc @@ -1,5 +1,7 @@ -// { dg-options "-std=gnu++2a" } -// { dg-do run { target c++2a } } +// { dg-options "-std=gnu++20" } +// { dg-do run { target c++20 } } +// { dg-require-effective-target hosted } + // Copyright (C) 2020-2022 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/members/pointers.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/members/pointers.cc index 6cbcfb9..edc67d3 100644 --- a/libstdc++-v3/testsuite/20_util/allocator_traits/members/pointers.cc +++ b/libstdc++-v3/testsuite/20_util/allocator_traits/members/pointers.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/members/rebind_alloc.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/members/rebind_alloc.cc index 32caf53..ca2a804 100644 --- a/libstdc++-v3/testsuite/20_util/allocator_traits/members/rebind_alloc.cc +++ b/libstdc++-v3/testsuite/20_util/allocator_traits/members/rebind_alloc.cc @@ -24,6 +24,7 @@ using std::is_same; template<typename T, typename U> using Rebind = typename std::allocator_traits<T>::template rebind_alloc<U>; +#if __STDC_HOSTED__ template<typename T> struct HasRebind { using value_type = T; @@ -33,6 +34,7 @@ template<typename T> static_assert(is_same<Rebind<HasRebind<int>, long>, std::allocator<long>>::value, "nested alias template is used"); +#endif template<typename T> struct NoRebind0 { diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc index 42a2091..8f7c191 100644 --- a/libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc +++ b/libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc @@ -36,6 +36,8 @@ template<typename T> namespace std { +#if __STDC_HOSTED__ template struct allocator_traits<std::allocator<test_type>>; +#endif template struct allocator_traits<minimal_allocator<test_type>>; } diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc index d11eb91..a8ba365 100644 --- a/libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc +++ b/libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2011-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc b/libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc index b34ae8d..0b27d23 100644 --- a/libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc +++ b/libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + // 2007-05-29 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2007-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/20_util/bind/42593.cc b/libstdc++-v3/testsuite/20_util/bind/42593.cc index f59c8f5..15c4af9 100644 --- a/libstdc++-v3/testsuite/20_util/bind/42593.cc +++ b/libstdc++-v3/testsuite/20_util/bind/42593.cc @@ -1,4 +1,6 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } + // Copyright (C) 2010-2022 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/20_util/bind/ref_neg.cc b/libstdc++-v3/testsuite/20_util/bind/ref_neg.cc index e779d2f..a789357 100644 --- a/libstdc++-v3/testsuite/20_util/bind/ref_neg.cc +++ b/libstdc++-v3/testsuite/20_util/bind/ref_neg.cc @@ -50,7 +50,7 @@ void test02() // Ignore the reasons for deduction/substitution failure in the headers. // Arrange for the match to work on installed trees as well as build trees. -// { dg-prune-output "/(functional|bits/invoke.h):" } +// { dg-prune-output "no type named 'type' in 'struct std::result_of" } int main() { diff --git a/libstdc++-v3/testsuite/20_util/bitset/access/dr396.cc b/libstdc++-v3/testsuite/20_util/bitset/access/dr396.cc index dfba27e..b70ee58 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/access/dr396.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/access/dr396.cc @@ -17,6 +17,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + // 23.3.5.2 bitset members #include <bitset> diff --git a/libstdc++-v3/testsuite/20_util/bitset/access/to_string.cc b/libstdc++-v3/testsuite/20_util/bitset/access/to_string.cc index 8384eb9..037a2ef 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/access/to_string.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/access/to_string.cc @@ -17,6 +17,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + // 23.3.5.2 bitset members #include <bitset> diff --git a/libstdc++-v3/testsuite/20_util/bitset/access/to_ulong.cc b/libstdc++-v3/testsuite/20_util/bitset/access/to_ulong.cc index 8163701..edc021c 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/access/to_ulong.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/access/to_ulong.cc @@ -20,22 +20,11 @@ // 23.3.5.2 bitset members #include <bitset> -#include <stdexcept> -#include <sstream> #include <testsuite_hooks.h> void test03() { - std::bitset<5> b; - std::stringstream ss("101"); - ss.exceptions(std::ios_base::eofbit); - - try - { - ss >> b; - } - catch (std::exception&) { } - + std::bitset<5> b(0b101); VERIFY( b.to_ulong() == 5 ); } diff --git a/libstdc++-v3/testsuite/20_util/bitset/cons/16020.cc b/libstdc++-v3/testsuite/20_util/bitset/cons/16020.cc index ffccdd2..b2c21a8 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/cons/16020.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/cons/16020.cc @@ -15,6 +15,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + #include <debug/bitset> #include <testsuite_hooks.h> 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 532fc9d..d308c2b 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,5 +1,7 @@ // { dg-options "-std=gnu++23" } // { dg-do compile { target c++23 } } +// This test relies on std::string. +// { dg-require-effective-target hosted } #include <bitset> diff --git a/libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-2.cc b/libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-2.cc index 2371bef..e3551ef 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-2.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-2.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // 2010-10-11 Paolo Carlini <paolo.carlini@oracle.com> diff --git a/libstdc++-v3/testsuite/20_util/bitset/cons/dr396.cc b/libstdc++-v3/testsuite/20_util/bitset/cons/dr396.cc index f1f9d87..b510da8 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/cons/dr396.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/cons/dr396.cc @@ -17,6 +17,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + #include <bitset> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/bitset/debug/invalidation/1.cc b/libstdc++-v3/testsuite/20_util/bitset/debug/invalidation/1.cc index 5d0e3c15..64295c7 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/debug/invalidation/1.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/debug/invalidation/1.cc @@ -17,6 +17,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + #include <debug/bitset> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/bitset/ext/15361.cc b/libstdc++-v3/testsuite/20_util/bitset/ext/15361.cc index 3924700..efe01d6 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/ext/15361.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/ext/15361.cc @@ -15,6 +15,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + #include <bitset> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc b/libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc index f82e7aa..4bacefa 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc @@ -1,5 +1,7 @@ // { dg-options "-std=gnu++23" } // { dg-do compile { target c++23 } } +// This test relies on std::string. +// { dg-require-effective-target hosted } #include <bitset> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/bitset/operations/13838.cc b/libstdc++-v3/testsuite/20_util/bitset/operations/13838.cc index c38ccc3..f691f7a 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/operations/13838.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/operations/13838.cc @@ -15,6 +15,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + #include <debug/bitset> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc b/libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc index b1f729d..6dc71ce 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc @@ -18,6 +18,8 @@ // { dg-options "-std=gnu++2a -pedantic" } // { dg-do compile { target c++2a } } +// { dg-require-effective-target hosted } + #include <debug/bitset> bool diff --git a/libstdc++-v3/testsuite/20_util/bitset/version.cc b/libstdc++-v3/testsuite/20_util/bitset/version.cc index 7197b1e..791ec43 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/version.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/version.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++23" } // { dg-do preprocess { target c++23 } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc index c36b81b..6577660 100644 --- a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc +++ b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc index e957eb2..7b21a2f 100644 --- a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc +++ b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc @@ -17,6 +17,7 @@ // { dg-options "-O1" } // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // PR middle-end/89303 diff --git a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/assign.cc b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/assign.cc index 87d1380..719c248 100644 --- a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/assign.cc +++ b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/assign.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2013-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/const.cc b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/const.cc index 2130b36..6843cd5 100644 --- a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/const.cc +++ b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/const.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc index c2c46b3..caf4141 100644 --- a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc +++ b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc index 19c92d9..c267d80 100644 --- a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc +++ b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2013-2022 Free Software Foundation, Inc. // 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 216048d..cf6bb8b 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 @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++17 } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc index 6429f25..28d5a57 100644 --- a/libstdc++-v3/testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc +++ b/libstdc++-v3/testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/forward/1.cc b/libstdc++-v3/testsuite/20_util/forward/1.cc index 7d27cba..37b29c1 100644 --- a/libstdc++-v3/testsuite/20_util/forward/1.cc +++ b/libstdc++-v3/testsuite/20_util/forward/1.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // 2007-07-10 Paolo Carlini <pcarlini@suse.de> // diff --git a/libstdc++-v3/testsuite/20_util/forward/1_neg.cc b/libstdc++-v3/testsuite/20_util/forward/1_neg.cc index c483e36..54e1a6a 100644 --- a/libstdc++-v3/testsuite/20_util/forward/1_neg.cc +++ b/libstdc++-v3/testsuite/20_util/forward/1_neg.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // 2007-07-10 Paolo Carlini <pcarlini@suse.de> // diff --git a/libstdc++-v3/testsuite/20_util/function/1.cc b/libstdc++-v3/testsuite/20_util/function/1.cc index 152b21f..a0c0c58 100644 --- a/libstdc++-v3/testsuite/20_util/function/1.cc +++ b/libstdc++-v3/testsuite/20_util/function/1.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + // 2005-01-15 Douglas Gregor <dgregor@cs.indiana.edu> // // Copyright (C) 2005-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/20_util/function/10.cc b/libstdc++-v3/testsuite/20_util/function/10.cc index c217012..3353644 100644 --- a/libstdc++-v3/testsuite/20_util/function/10.cc +++ b/libstdc++-v3/testsuite/20_util/function/10.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // // Copyright (C) 2012-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function/2.cc b/libstdc++-v3/testsuite/20_util/function/2.cc index 278dc89..d601ca8 100644 --- a/libstdc++-v3/testsuite/20_util/function/2.cc +++ b/libstdc++-v3/testsuite/20_util/function/2.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + // 2005-01-15 Douglas Gregor <dgregor@cs.indiana.edu> // // Copyright (C) 2005-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/20_util/function/3.cc b/libstdc++-v3/testsuite/20_util/function/3.cc index 6257856..634eb2f 100644 --- a/libstdc++-v3/testsuite/20_util/function/3.cc +++ b/libstdc++-v3/testsuite/20_util/function/3.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + // 2005-01-15 Douglas Gregor <dgregor@cs.indiana.edu> // // Copyright (C) 2005-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/20_util/function/4.cc b/libstdc++-v3/testsuite/20_util/function/4.cc index e2c098c..8d67ab6 100644 --- a/libstdc++-v3/testsuite/20_util/function/4.cc +++ b/libstdc++-v3/testsuite/20_util/function/4.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + // 2005-01-15 Douglas Gregor <dgregor@cs.indiana.edu> // // Copyright (C) 2005-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/20_util/function/43397.cc b/libstdc++-v3/testsuite/20_util/function/43397.cc index b600669..11e3f59 100644 --- a/libstdc++-v3/testsuite/20_util/function/43397.cc +++ b/libstdc++-v3/testsuite/20_util/function/43397.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + // Copyright (C) 2010-2022 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/20_util/function/48541.cc b/libstdc++-v3/testsuite/20_util/function/48541.cc index 3558c1d..8469832 100644 --- a/libstdc++-v3/testsuite/20_util/function/48541.cc +++ b/libstdc++-v3/testsuite/20_util/function/48541.cc @@ -1,4 +1,6 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } + // Copyright (C) 2011-2022 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/20_util/function/5.cc b/libstdc++-v3/testsuite/20_util/function/5.cc index ccd4c32..63f6812 100644 --- a/libstdc++-v3/testsuite/20_util/function/5.cc +++ b/libstdc++-v3/testsuite/20_util/function/5.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + // 2005-01-15 Douglas Gregor <dgregor@cs.indiana.edu> // // Copyright (C) 2005-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/20_util/function/58569.cc b/libstdc++-v3/testsuite/20_util/function/58569.cc index f2b320f..b106400 100644 --- a/libstdc++-v3/testsuite/20_util/function/58569.cc +++ b/libstdc++-v3/testsuite/20_util/function/58569.cc @@ -1,4 +1,6 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } + // Copyright (C) 2013-2022 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/20_util/function/6.cc b/libstdc++-v3/testsuite/20_util/function/6.cc index 3eb9ef8..6ed84ab 100644 --- a/libstdc++-v3/testsuite/20_util/function/6.cc +++ b/libstdc++-v3/testsuite/20_util/function/6.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + // 2005-01-15 Douglas Gregor <dgregor@cs.indiana.edu> // // Copyright (C) 2005-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/20_util/function/60594.cc b/libstdc++-v3/testsuite/20_util/function/60594.cc index 0a6e758..f0fb077 100644 --- a/libstdc++-v3/testsuite/20_util/function/60594.cc +++ b/libstdc++-v3/testsuite/20_util/function/60594.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2011-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function/65760.cc b/libstdc++-v3/testsuite/20_util/function/65760.cc index ad59c23..db3607e 100644 --- a/libstdc++-v3/testsuite/20_util/function/65760.cc +++ b/libstdc++-v3/testsuite/20_util/function/65760.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // libstdc++/65760 // c.f. https://gcc.gnu.org/ml/libstdc++/2015-04/msg00116.html diff --git a/libstdc++-v3/testsuite/20_util/function/69222.cc b/libstdc++-v3/testsuite/20_util/function/69222.cc index daf6bd0..12fd82d 100644 --- a/libstdc++-v3/testsuite/20_util/function/69222.cc +++ b/libstdc++-v3/testsuite/20_util/function/69222.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/function/7.cc b/libstdc++-v3/testsuite/20_util/function/7.cc index 533232f..3984904 100644 --- a/libstdc++-v3/testsuite/20_util/function/7.cc +++ b/libstdc++-v3/testsuite/20_util/function/7.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + // 2005-01-15 Douglas Gregor <dgregor@cs.indiana.edu> // // Copyright (C) 2005-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/20_util/function/77322.cc b/libstdc++-v3/testsuite/20_util/function/77322.cc index ac286fa..5e0f407 100644 --- a/libstdc++-v3/testsuite/20_util/function/77322.cc +++ b/libstdc++-v3/testsuite/20_util/function/77322.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/function/8.cc b/libstdc++-v3/testsuite/20_util/function/8.cc index bd94e78..de609d9 100644 --- a/libstdc++-v3/testsuite/20_util/function/8.cc +++ b/libstdc++-v3/testsuite/20_util/function/8.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + // 2005-01-15 Douglas Gregor <dgregor@cs.indiana.edu> // // Copyright (C) 2005-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/20_util/function/9.cc b/libstdc++-v3/testsuite/20_util/function/9.cc index 0a1f627..7a58655 100644 --- a/libstdc++-v3/testsuite/20_util/function/9.cc +++ b/libstdc++-v3/testsuite/20_util/function/9.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + // 2005-01-15 Douglas Gregor <dgregor@cs.indiana.edu> // // Copyright (C) 2005-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/20_util/function/91456.cc b/libstdc++-v3/testsuite/20_util/function/91456.cc index 081bf20..8fa5333 100644 --- a/libstdc++-v3/testsuite/20_util/function/91456.cc +++ b/libstdc++-v3/testsuite/20_util/function/91456.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-require-effective-target hosted } // PR 91456 // std::function and std::is_invocable_r do not understand guaranteed elision diff --git a/libstdc++-v3/testsuite/20_util/function/assign/move.cc b/libstdc++-v3/testsuite/20_util/function/assign/move.cc index 38b82be..f57cba5 100644 --- a/libstdc++-v3/testsuite/20_util/function/assign/move.cc +++ b/libstdc++-v3/testsuite/20_util/function/assign/move.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2009-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function/assign/move_target.cc b/libstdc++-v3/testsuite/20_util/function/assign/move_target.cc index e1753bd..7a13a20 100644 --- a/libstdc++-v3/testsuite/20_util/function/assign/move_target.cc +++ b/libstdc++-v3/testsuite/20_util/function/assign/move_target.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2009-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function/cmp/cmp_neg.cc b/libstdc++-v3/testsuite/20_util/function/cmp/cmp_neg.cc index e2e87d9..edbb3b5 100644 --- a/libstdc++-v3/testsuite/20_util/function/cmp/cmp_neg.cc +++ b/libstdc++-v3/testsuite/20_util/function/cmp/cmp_neg.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2009-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function/cons/55320.cc b/libstdc++-v3/testsuite/20_util/function/cons/55320.cc index 762df45..f8ee56f 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/55320.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/55320.cc @@ -18,6 +18,7 @@ // libstdc++/55320 // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <functional> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/function/cons/57465.cc b/libstdc++-v3/testsuite/20_util/function/cons/57465.cc index ebc6eb5..8947144 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/57465.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/57465.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <functional> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/function/cons/70692.cc b/libstdc++-v3/testsuite/20_util/function/cons/70692.cc index 7cdc472..f9e8fe3 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/70692.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/70692.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // PR libstdc++/70692 // No warning when function<const int&(...)> binds a reference to a temporary #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/function/cons/72820.cc b/libstdc++-v3/testsuite/20_util/function/cons/72820.cc index a89bcca..681f29c 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/72820.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/72820.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/function/cons/addressof.cc b/libstdc++-v3/testsuite/20_util/function/cons/addressof.cc index a22fc8c..402e902 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/addressof.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/addressof.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/function/cons/callable.cc b/libstdc++-v3/testsuite/20_util/function/cons/callable.cc index fc0402a..836fe28 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/callable.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/callable.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2012-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function/cons/deduction.cc b/libstdc++-v3/testsuite/20_util/function/cons/deduction.cc index 5fd9e65..ceb628f 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/deduction.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/deduction.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-require-effective-target hosted } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc b/libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc index 17454ea..856e0b8 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++23" } // { dg-do compile { target c++23 } } +// { dg-require-effective-target hosted } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/function/cons/lwg2774.cc b/libstdc++-v3/testsuite/20_util/function/cons/lwg2774.cc index a606104..3817090 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/lwg2774.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/lwg2774.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } + #include <functional> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/function/cons/move.cc b/libstdc++-v3/testsuite/20_util/function/cons/move.cc index cab6bfc..3b3fccd 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/move.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/move.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2009-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function/cons/move_target.cc b/libstdc++-v3/testsuite/20_util/function/cons/move_target.cc index 2cfdfe1..a2ea946 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/move_target.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/move_target.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2009-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function/cons/noexcept.cc b/libstdc++-v3/testsuite/20_util/function/cons/noexcept.cc index 6357198..59f20ba 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/noexcept.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/noexcept.cc @@ -1,4 +1,6 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } + #include <functional> struct X diff --git a/libstdc++-v3/testsuite/20_util/function/cons/non_copyconstructible.cc b/libstdc++-v3/testsuite/20_util/function/cons/non_copyconstructible.cc index c27a19c..d02e80f 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/non_copyconstructible.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/non_copyconstructible.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/function/cons/refqual.cc b/libstdc++-v3/testsuite/20_util/function/cons/refqual.cc index da2f2d2..74c3d8b 100644 --- a/libstdc++-v3/testsuite/20_util/function/cons/refqual.cc +++ b/libstdc++-v3/testsuite/20_util/function/cons/refqual.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/function/invoke/forwarding.cc b/libstdc++-v3/testsuite/20_util/function/invoke/forwarding.cc index 23b17d9..f9f8c92 100644 --- a/libstdc++-v3/testsuite/20_util/function/invoke/forwarding.cc +++ b/libstdc++-v3/testsuite/20_util/function/invoke/forwarding.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <functional> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/function/invoke/move_only.cc b/libstdc++-v3/testsuite/20_util/function/invoke/move_only.cc index e31c504..f8c26c2 100644 --- a/libstdc++-v3/testsuite/20_util/function/invoke/move_only.cc +++ b/libstdc++-v3/testsuite/20_util/function/invoke/move_only.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2009-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function/null_pointer_comparisons.cc b/libstdc++-v3/testsuite/20_util/function/null_pointer_comparisons.cc index d17932e..3ad45e0 100644 --- a/libstdc++-v3/testsuite/20_util/function/null_pointer_comparisons.cc +++ b/libstdc++-v3/testsuite/20_util/function/null_pointer_comparisons.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2009-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/function/requirements/explicit_instantiation.cc index 9f3ebd2..84552d1 100644 --- a/libstdc++-v3/testsuite/20_util/function/requirements/explicit_instantiation.cc +++ b/libstdc++-v3/testsuite/20_util/function/requirements/explicit_instantiation.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2009-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function/target_no_rtti.cc b/libstdc++-v3/testsuite/20_util/function/target_no_rtti.cc index de20e3b..4fee448 100644 --- a/libstdc++-v3/testsuite/20_util/function/target_no_rtti.cc +++ b/libstdc++-v3/testsuite/20_util/function/target_no_rtti.cc @@ -1,5 +1,6 @@ // { dg-options "-fno-rtti" } // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2020-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/function_objects/83607.cc b/libstdc++-v3/testsuite/20_util/function_objects/83607.cc index b5a3004..05d506b 100644 --- a/libstdc++-v3/testsuite/20_util/function_objects/83607.cc +++ b/libstdc++-v3/testsuite/20_util/function_objects/83607.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-require-effective-target hosted } #include <functional> #include <cstddef> diff --git a/libstdc++-v3/testsuite/20_util/function_objects/mem_fn/adl.cc b/libstdc++-v3/testsuite/20_util/function_objects/mem_fn/adl.cc index a80775f..fdc9440 100644 --- a/libstdc++-v3/testsuite/20_util/function_objects/mem_fn/adl.cc +++ b/libstdc++-v3/testsuite/20_util/function_objects/mem_fn/adl.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2012-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/headers/bitset/synopsis.cc b/libstdc++-v3/testsuite/20_util/headers/bitset/synopsis.cc index ed5604b..094f0f2 100644 --- a/libstdc++-v3/testsuite/20_util/headers/bitset/synopsis.cc +++ b/libstdc++-v3/testsuite/20_util/headers/bitset/synopsis.cc @@ -49,6 +49,7 @@ namespace std { CONSTEXPR bitset<N> operator^(const bitset<N>&, const bitset<N>&) NOTHROW; +#if __STDC_HOSTED__ template <class charT, class traits, size_t N> basic_istream<charT, traits>& operator>>(basic_istream<charT, traits>& is, bitset<N>& x); @@ -56,4 +57,5 @@ namespace std { template <class charT, class traits, size_t N> basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& os, const bitset<N>& x); +#endif } diff --git a/libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc index 88b00c1..785e659 100644 --- a/libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc +++ b/libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc @@ -1,4 +1,5 @@ // { dg-do compile } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc b/libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc index 422c8f61..c615c21 100644 --- a/libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc +++ b/libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc b/libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc index 6fe3268..697f03f 100644 --- a/libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc +++ b/libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/is_function/35637.cc b/libstdc++-v3/testsuite/20_util/is_function/35637.cc index 0a6ecfe..ae13315 100644 --- a/libstdc++-v3/testsuite/20_util/is_function/35637.cc +++ b/libstdc++-v3/testsuite/20_util/is_function/35637.cc @@ -1,5 +1,6 @@ // { dg-options "-pedantic-errors" } // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2011-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc index 9eebbc4..ff98cc4 100644 --- a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc +++ b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc @@ -20,9 +20,9 @@ // <http://www.gnu.org/licenses/>. #include <type_traits> -#include <testsuite_character.h> enum test_enum { first_selection }; +struct pod_class { }; void test01() { @@ -31,7 +31,7 @@ void test01() // Negative tests. typedef make_unsigned<bool>::type test1_type; - typedef make_unsigned<__gnu_test::pod_uint>::type test2_type; + typedef make_unsigned<pod_class>::type test2_type; typedef make_unsigned<int[4]>::type test3_type; diff --git a/libstdc++-v3/testsuite/20_util/move/1.cc b/libstdc++-v3/testsuite/20_util/move/1.cc index fdc7c22..7ecc87c 100644 --- a/libstdc++-v3/testsuite/20_util/move/1.cc +++ b/libstdc++-v3/testsuite/20_util/move/1.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // 2007-07-10 Paolo Carlini <pcarlini@suse.de> // diff --git a/libstdc++-v3/testsuite/20_util/move_only_function/call.cc b/libstdc++-v3/testsuite/20_util/move_only_function/call.cc index 9ca0a60..68aa205 100644 --- a/libstdc++-v3/testsuite/20_util/move_only_function/call.cc +++ b/libstdc++-v3/testsuite/20_util/move_only_function/call.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++23" } // { dg-do run { target c++23 } } +// { dg-require-effective-target hosted } #include <functional> #include <utility> 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 d8a0a4a..44e9681 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-options "-std=gnu++23" } // { dg-do compile { target c++23 } } +// { dg-require-effective-target hosted } #include <functional> diff --git a/libstdc++-v3/testsuite/20_util/move_only_function/move.cc b/libstdc++-v3/testsuite/20_util/move_only_function/move.cc index f1f0fb5..0bed6ed 100644 --- a/libstdc++-v3/testsuite/20_util/move_only_function/move.cc +++ b/libstdc++-v3/testsuite/20_util/move_only_function/move.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++23" } // { dg-do run { target c++23 } } +// { dg-require-effective-target hosted } #include <functional> #include <testsuite_hooks.h> 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 9fe52f4..f33b82f 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-options "-std=gnu++23" } // { dg-do compile { target c++23 } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/20_util/owner_less/cmp.cc b/libstdc++-v3/testsuite/20_util/owner_less/cmp.cc index e240b32..13db825 100644 --- a/libstdc++-v3/testsuite/20_util/owner_less/cmp.cc +++ b/libstdc++-v3/testsuite/20_util/owner_less/cmp.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc b/libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc index 63ff479..136c2e9 100644 --- a/libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc +++ b/libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/owner_less/void.cc b/libstdc++-v3/testsuite/20_util/owner_less/void.cc index afd7a67..7bfdfbb 100644 --- a/libstdc++-v3/testsuite/20_util/owner_less/void.cc +++ b/libstdc++-v3/testsuite/20_util/owner_less/void.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/pointer_safety/1.cc b/libstdc++-v3/testsuite/20_util/pointer_safety/1.cc index f0a9e22..e3ee05a 100644 --- a/libstdc++-v3/testsuite/20_util/pointer_safety/1.cc +++ b/libstdc++-v3/testsuite/20_util/pointer_safety/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target { c++11 && { ! c++23 } } } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc index 93c8a36..a88372c 100644 --- a/libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc +++ b/libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc @@ -37,8 +37,10 @@ int main() { test01<int*>(); test01<void*>(); +#if __STDC_HOSTED__ test01<std::shared_ptr<int>>(); test01<std::shared_ptr<void>>(); +#endif test01<std::unique_ptr<int>>(); test01<std::unique_ptr<void>>(); } diff --git a/libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc b/libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc index 23ae034..6534c53 100644 --- a/libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc +++ b/libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc @@ -16,6 +16,8 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// FIXME [!HOSTED]: avoidable std::allocator use +// { dg-require-effective-target hosted } #include <memory> #include <type_traits> diff --git a/libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc b/libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc index 2ae023a..09c132f 100644 --- a/libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc +++ b/libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc @@ -16,6 +16,8 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// FIXME [!HOSTED]: avoidable std::allocator use +// { dg-require-effective-target hosted } // PR libstdc++/69293 diff --git a/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc b/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc index 72789af..ee7b33f 100644 --- a/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc +++ b/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <utility> #include <tuple> diff --git a/libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc b/libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc index 6c32bf9..b56237f 100644 --- a/libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc +++ b/libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc @@ -16,6 +16,8 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// FIXME [!HOSTED]: avoidable std::allocator use +// { dg-require-effective-target hosted } #include <memory> #include <scoped_allocator> diff --git a/libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc index 08f9460..e1a4665 100644 --- a/libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc +++ b/libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc @@ -1,4 +1,6 @@ // { dg-do compile { target c++11 } } +// FIXME [!HOSTED]: avoidable std::allocator use +// { dg-require-effective-target hosted } // Copyright (C) 2011-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/assign.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/assign.cc index 9f2d66a..6147043 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/assign.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/assign.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr.cc index f819afa..c1bfe0a 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr.cc @@ -1,6 +1,7 @@ // { dg-options "-Wno-deprecated" } // { dg-add-options using-deprecated } // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc index 9f431cd..7b83ce8 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc @@ -1,6 +1,7 @@ // { dg-options "-Wno-deprecated" } // { dg-add-options using-deprecated } // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc index ced8a67..bc54025 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc @@ -1,6 +1,7 @@ // { dg-options "-Wno-deprecated" } // { dg-add-options using-deprecated } // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/dr541.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/dr541.cc index 6e17204..a65e9b4 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/dr541.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/dr541.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2006-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/move.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/move.cc index 510eead..8da2f14 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/move.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/move.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/sfinae.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/sfinae.cc index 5f8ef79..80419c0 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/sfinae.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/sfinae.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr.cc index 9b190cc..f9878e0 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc index 5fdd8a8..23fed1c 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc index 0cc6fe3..beed140 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc index 40cffc4..b5807d8 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/1.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/1.cc index 358dbe8..041710f 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/1.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/1.cc @@ -17,6 +17,7 @@ // { dg-do run { target c++11 } } // { dg-require-gthreads "" } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/2.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/2.cc index 307ddd9..954582a 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/2.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/2.cc @@ -17,6 +17,7 @@ // { dg-do run { target c++11 } } // { dg-require-gthreads "" } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/casts/1.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/casts/1.cc index a4fd959..556b250 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/casts/1.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/casts/1.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2006-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/casts/reinterpret.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/casts/reinterpret.cc index e1662476..f3fd495 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/casts/reinterpret.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/casts/reinterpret.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++17 } } +// { dg-require-effective-target hosted } // Copyright (C) 2016-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc index 0178245..ba2b9c1 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } +// { dg-require-effective-target hosted } // Copyright (C) 2019-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/42925.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/42925.cc index 9ebd02c..5e3978e 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/42925.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/42925.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2010-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/86537.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/86537.cc index 79019d9..f247e63 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/86537.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/86537.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp.cc index 8faa9eb..4a2f41d 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc index 406d3a8..89598ed 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/dr1401.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/dr1401.cc index bde69ae..6f165d0 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/dr1401.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/dr1401.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2011-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/less.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/less.cc index 5061e99..bd9e9d8 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/less.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/less.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc index 666564a..c8f816b 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2009-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc index bce7e33..2c78e87 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc @@ -1,6 +1,7 @@ // { dg-options "-Wno-deprecated" } // { dg-add-options using-deprecated } // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2010-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/46910.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/46910.cc index fdd0ec5..92a479d 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/46910.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/46910.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2010-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/51365.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/51365.cc index d16cf40..7cc00c9 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/51365.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/51365.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2012-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc index 88cc02c..9ebd25a 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2012-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/55123.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/55123.cc index cf80f03..00d75f5 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/55123.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/55123.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2012-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58659.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58659.cc index 9467ffe..35a88fc 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58659.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58659.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2013-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc index 4998bbd..ee33865 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2013-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/61036.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/61036.cc index c2e568e..0183c56 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/61036.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/61036.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2014-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/79467.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/79467.cc index 09c99d1..9169285 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/79467.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/79467.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/80229.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/80229.cc index a1221a3..e666caa 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/80229.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/80229.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc index 0186a84..2ae5038 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } +// { dg-require-effective-target hosted } // Copyright (C) 2019-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc index 9e5da17..e7273b7 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/array.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/array.cc index d69d90b..5a4d68c 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/array.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/array.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2016-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr.cc index f8e6920..79d74dc 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr.cc @@ -1,6 +1,7 @@ // { dg-options "-Wno-deprecated" } // { dg-add-options using-deprecated } // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc index 3a33e6c..19bb8e7 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc @@ -1,6 +1,7 @@ // { dg-options "-Wno-deprecated" } // { dg-add-options using-deprecated } // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc index fe5427c..2a6d43c 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc index 98428b4..5174401 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc index b23c8f4..c1670ac 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc index 30c7cbf..4f2a2f6 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg3548.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg3548.cc index d6ec7b1..6607867 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg3548.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg3548.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc index 15fae50..03de2b0 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc index 3339da1..76bc810 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // 2011-06-14 Paolo Carlini <paolo.carlini@oracle.com> // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc index 3dc16f5..8f6796b 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2010-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc index ee50648..c4ffcff 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc index 518e0f5..bc416ca 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc index a50c305..11a0967 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2012-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc index 1ebec84..ed448f1 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc index 4d727df..7c266eb 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc index 5ef21fe..94fc2d2 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc index b6e4eb0..1852f01 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2013-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr.cc index 5a9b462..e6e225e 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/36949.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/36949.cc index 84049f4..bcc90136 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/36949.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/36949.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc index 077d981f..0bac6e1 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc @@ -1,5 +1,6 @@ // { dg-options "-fno-rtti" } // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2014-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc index 9bee1da..454e7a6 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2013-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc index aa4a0ba..1b45609 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc index c5a34ab..c7298df 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } +// { dg-require-effective-target hosted } // Copyright (C) 2020-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc index 67069a1..df482ba 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc @@ -1,4 +1,5 @@ // { dg-do compile { target { c++11 } } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc index 50c4bd6..c3da8cf 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr925.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr925.cc index f20a710..6092cc9 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr925.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr925.cc @@ -1,6 +1,7 @@ // { dg-options "-Wno-deprecated" } // { dg-add-options using-deprecated } // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2010-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/make.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/make.cc index e34b87b..968be24 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/make.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/make.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/no_rtti.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/no_rtti.cc index 611e6ce..71e6aeb 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/no_rtti.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/no_rtti.cc @@ -1,5 +1,6 @@ // { dg-options "-fno-rtti" } // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2014-2022 Free Software Foundation, Inc. // 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 f207fde..923e909 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++20 -fno-lifetime-dse -O0" } // { dg-do run { target c++20 } } +// { dg-require-effective-target hosted } // C++20 20.11.3.7 shared_ptr Creation [util.smartptr.shared.create] diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/private.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/private.cc index b55cd10..7332df3 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/private.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/private.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2011-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation.cc index e73a1f5..14dd010 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc index 68328bb..08b8f5a 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc @@ -17,6 +17,7 @@ // { dg-options "-fno-rtti" } // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> 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 0e47f19..4dd1b49 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-options "-std=gnu++20" } // { dg-do preprocess { target c++20 } } +// { dg-require-effective-target hosted } // C++20 20.11.3.7 shared_ptr Creation [util.smartptr.shared.create] diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/dest/dest.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/dest/dest.cc index fb6abdb..322fad9 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/dest/dest.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/dest/dest.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/hash/1.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/hash/1.cc index 53b9146..bf3024e 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/hash/1.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/hash/1.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // 2010-06-11 Paolo Carlini <paolo.carlini@oracle.com> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/misc/24595.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/misc/24595.cc index b77b505..921eec3 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/misc/24595.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/misc/24595.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/misc/42019.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/misc/42019.cc index 7b431be..744ce12 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/misc/42019.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/misc/42019.cc @@ -1,5 +1,6 @@ // { dg-options "-fno-rtti" } // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2009-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/misc/get_deleter.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/misc/get_deleter.cc index 1aab13f..4789cf3 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/misc/get_deleter.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/misc/get_deleter.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/misc/swap.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/misc/swap.cc index bb1da52..ca87104 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/misc/swap.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/misc/swap.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset.cc index 9762ffe..06184f1 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc index bf75591..870526b8 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc index 9aa3550..b7b2e2e 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap.cc index ad8b1c3..ebea40a 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap_neg.cc index c7363db..fa50049 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap_neg.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap_neg.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/array.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/array.cc index 6093652..a655372 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/array.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/array.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2016-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/bool_conv.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/bool_conv.cc index 99c38cc..54a1b3f 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/bool_conv.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/bool_conv.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/get.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/get.cc index 161ffea..59a99a2 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/get.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/get.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc index 651e7a87..7c4d0ea 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/unique.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/unique.cc index 8b3e7a0..083c654 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/unique.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/unique.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/use_count.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/use_count.cc index 044cf0d..f4e82af 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/observers/use_count.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/observers/use_count.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2005-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc index b226b31..48563ae 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2006-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc index cc67b55..fa6b7f3 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/weak_type.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/weak_type.cc index 6c4e4b1..48efae2 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/weak_type.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/weak_type.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc index 5f70b6c..8fd7acc 100644 --- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc +++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc @@ -17,6 +17,8 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +// FIXME [!HOSTED]: avoidable std::allocator usage +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/temporary_buffer.cc b/libstdc++-v3/testsuite/20_util/temporary_buffer.cc index 54b0edb..3d414ad 100644 --- a/libstdc++-v3/testsuite/20_util/temporary_buffer.cc +++ b/libstdc++-v3/testsuite/20_util/temporary_buffer.cc @@ -19,6 +19,8 @@ // 20.4.3 temporary buffers +// { dg-require-effective-target hosted } + #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/20_util/tuple/48476.cc b/libstdc++-v3/testsuite/20_util/tuple/48476.cc index 32ece32..ec31247 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/48476.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/48476.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2011-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/90700.cc b/libstdc++-v3/testsuite/20_util/tuple/cons/90700.cc index 274cc3a..38615d8 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/cons/90700.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/cons/90700.cc @@ -16,6 +16,8 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// FIXME [!HOSTED]: avoidable std::allocator usage +// { dg-require-effective-target hosted } #include <tuple> #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/96803.cc b/libstdc++-v3/testsuite/20_util/tuple/cons/96803.cc index 6441f8d..7b4916b 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/cons/96803.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/cons/96803.cc @@ -16,6 +16,8 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// FIXME [!HOSTED]: avoidable std::allocator usage +// { dg-require-effective-target hosted } #include <tuple> #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc b/libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc index 0fa1ad7..7924a92 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++14 } } +// FIXME [!HOSTED]: avoidable std::allocator usage +// { dg-require-effective-target hosted } // Copyright (C) 2016-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc b/libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc index 74c1d68..9d2d909 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc @@ -1,4 +1,6 @@ // { dg-do run { target c++11 } } +// FIXME [!HOSTED]: avoidable std::allocator usage +// { dg-require-effective-target hosted } // Copyright (C) 2011-2022 Free Software Foundation, Inc. // 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 24be893..c49c9ff 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,5 +1,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +// FIXME [!HOSTED]: avoidable std::allocator usage +// { dg-require-effective-target hosted } // // Copyright (C) 2019-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/deduction.cc b/libstdc++-v3/testsuite/20_util/tuple/cons/deduction.cc index 8b9393d..c4b5a5c 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/cons/deduction.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/cons/deduction.cc @@ -145,6 +145,7 @@ test04() void test05() { +#if __STDC_HOSTED__ std::allocator<double> a; std::tuple x{std::allocator_arg, a, 1}; check_type<std::tuple<int>>(x); @@ -161,4 +162,5 @@ test05() check_type<decltype(x)>(x5); std::tuple x6{std::allocator_arg, a, std::move(x)}; check_type<decltype(x)>(x6); +#endif } diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/explicit_construct.cc b/libstdc++-v3/testsuite/20_util/tuple/cons/explicit_construct.cc index c0ea6f8..998dd75 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/cons/explicit_construct.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/cons/explicit_construct.cc @@ -1,4 +1,6 @@ // { dg-do compile { target c++11 } } +// FIXME [!HOSTED]: avoidable std::allocator usage +// { dg-require-effective-target hosted } // Copyright (C) 2015-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc b/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc index 80fc23c..04ac273 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc @@ -1,6 +1,8 @@ // Verify P2321R2 "zip" enhancements to std::tuple. // { dg-options "-std=gnu++23" } // { dg-do run { target c++23 } } +// FIXME [!HOSTED]: avoidable std::allocator usage +// { dg-require-effective-target hosted } #include <tuple> #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc index b850d24..40c8f57 100644 --- a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc +++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } +// { dg-require-effective-target hosted } // Copyright (C) 2020-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/array.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/array.cc index b18fafc..3e84052 100644 --- a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/array.cc +++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/array.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++14 } } +// { dg-require-effective-target hosted } // Copyright (C) 2013-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/array_neg.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/array_neg.cc index 1ab36a5..6fcf8c2 100644 --- a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/array_neg.cc +++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/array_neg.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++14 } } +// { dg-require-effective-target hosted } // Copyright (C) 2013-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc index 90d1119..f673342 100644 --- a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc +++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++23" } // { dg-do compile { target c++23 } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> 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 f736c76..65b5758 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 @@ -1,6 +1,7 @@ // { dg-options "-std=gnu++20 -fno-lifetime-dse -O0" } // { dg-do run { target c++2a } } // { dg-xfail-run-if "AIX operator new" { powerpc-ibm-aix* } } +// { dg-require-effective-target hosted } // Copyright (C) 2020-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc index 6548558..5fbed70 100644 --- a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc +++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++20" } // { dg-do compile { target c++2a } } +// { dg-require-effective-target hosted } // Copyright (C) 2020-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/single.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/single.cc index 9d7108d..a53efe0 100644 --- a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/single.cc +++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/single.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++14 } } +// { dg-require-effective-target hosted } // Copyright (C) 2013-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc b/libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc index 8a41e4e..9c4ea3e 100644 --- a/libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc +++ b/libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc @@ -16,6 +16,8 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// FIXME [!HOSTED]: avoidable std::allocator usage +// { dg-require-effective-target hosted } // PR libstdc++/69293 diff --git a/libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc b/libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc index ca7d1119..73c5b7b 100644 --- a/libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc +++ b/libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } +// { dg-require-effective-target hosted } // Copyright (C) 2020-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc b/libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc index f403cbe..06e850f 100644 --- a/libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc +++ b/libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc @@ -1,5 +1,7 @@ // { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } +// TODO [!HOSTED]: avoidable std::allocator usage +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc index a729847..bc41f00 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc index b990276..03f2a44 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++17 } } +// { dg-require-effective-target hosted } #include <memory> diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc index 0ee3efc..c3ba892 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // 2011-06-14 Paolo Carlini <paolo.carlini@oracle.com> // diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc index 92250a1..20e0503 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc @@ -23,6 +23,7 @@ #include <testsuite_tr1.h> // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } int main() { diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc index 723f0b4..6008dca 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2008-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc index 0d8165a..19c9756 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2006-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc index 461415e..df1cdb3 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/version.cc b/libstdc++-v3/testsuite/21_strings/basic_string/version.cc index a99bb17..865b179 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/version.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/version.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-require-effective-target hosted } #include <version> 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 c106a55..3501006 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,5 +1,6 @@ // { dg-options "-std=gnu++23" } // { dg-do compile { target c++23 } } +// { dg-require-effective-target hosted } // Copyright (C) 2021-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/21_strings/c_strings/char/69626.cc b/libstdc++-v3/testsuite/21_strings/c_strings/char/69626.cc index 7710ee6..1d10d01 100644 --- a/libstdc++-v3/testsuite/21_strings/c_strings/char/69626.cc +++ b/libstdc++-v3/testsuite/21_strings/c_strings/char/69626.cc @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++98" } // { dg-do compile { target *-*-linux-gnu } } +// { dg-require-effective-target hosted } #include <cstdlib> 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 6f571f4..908163a 100644 --- a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc +++ b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++17 } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc index c85e060..4c69d14 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-options "-std=gnu++20" } // { dg-do preprocess { target c++20 } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc index 3a3208a..241ab21 100644 --- a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc +++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc @@ -1,4 +1,6 @@ // { dg-do compile } +// { dg-require-effective-target hosted } + // 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2001-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc index 7fd4932..f7fa5b1 100644 --- a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc +++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc @@ -1,4 +1,6 @@ // { dg-do compile } +// { dg-require-effective-target hosted } + // 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2001-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc index eafb6b2..7270ce0 100644 --- a/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc @@ -1,4 +1,6 @@ // { dg-do compile } +// { dg-require-effective-target hosted } + // 2001-06-21 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2001-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc index a3d3952..283ffaf 100644 --- a/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc +++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc @@ -1,4 +1,6 @@ // { dg-do compile } +// { dg-require-effective-target hosted } + // 2001-06-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2001-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/92285.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/92285.cc index 07f46a9..f4167b6 100644 --- a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/92285.cc +++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/92285.cc @@ -15,6 +15,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + #include <iterator> #include <iostream> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc index 17c826e..1cf8e6d 100644 --- a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc +++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +// { dg-require-effective-target hosted } // Copyright (C) 2020-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc index 3540362..a6625b4 100644 --- a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc +++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc @@ -1,4 +1,6 @@ // { dg-do compile } +// { dg-require-effective-target hosted } + // 1999-06-28 bkoz // Copyright (C) 1999-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc index 4193ccd..5f3df97 100644 --- a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc +++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // Copyright (C) 2011-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc index a979ac9..f32de1e 100644 --- a/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc +++ b/libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc @@ -1,4 +1,6 @@ // { dg-do compile } +// { dg-require-effective-target hosted } + // 2001-06-25 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2001-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc index c7cfd80..27aacc8 100644 --- a/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc +++ b/libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc @@ -1,4 +1,6 @@ // { dg-do compile } +// { dg-require-effective-target hosted } + // 2001-04-30 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2001-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc b/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc index 5f11d90..edaaf71 100644 --- a/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc +++ b/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc index cab3552..33571fe 100644 --- a/libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc +++ b/libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } +// { dg-require-effective-target hosted } #include <algorithm> #include <functional> diff --git a/libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc index b698eab..02d9278 100644 --- a/libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc +++ b/libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc @@ -1,4 +1,5 @@ // { dg-do compile } +// { dg-require-effective-target hosted } // Copyright (C) 2007-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc index e518f57..a6cbc1a 100644 --- a/libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc +++ b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc @@ -17,6 +17,9 @@ // 25.3.4 [lib.alg.merge] +// <testsuite_new_operators.h> requires malloc/free. +// { dg-require-effective-target hosted } + #include <algorithm> #include <testsuite_hooks.h> #include <testsuite_iterators.h> diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc index ef904e6..02ce4e3 100644 --- a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc +++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } +// { dg-require-effective-target hosted } #include <algorithm> #include <functional> diff --git a/libstdc++-v3/testsuite/25_algorithms/make_heap/movable.cc b/libstdc++-v3/testsuite/25_algorithms/make_heap/movable.cc index bd11546..d0d8882 100644 --- a/libstdc++-v3/testsuite/25_algorithms/make_heap/movable.cc +++ b/libstdc++-v3/testsuite/25_algorithms/make_heap/movable.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <functional> #include <algorithm> diff --git a/libstdc++-v3/testsuite/25_algorithms/move/93872.cc b/libstdc++-v3/testsuite/25_algorithms/move/93872.cc index 4b0c810..8496a22 100644 --- a/libstdc++-v3/testsuite/25_algorithms/move/93872.cc +++ b/libstdc++-v3/testsuite/25_algorithms/move/93872.cc @@ -18,6 +18,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +#include <iterator> #include <algorithm> #include <functional> 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 2e85b92..1a5724e 100644 --- a/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc +++ b/libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do preprocess { target c++17 } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc b/libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc index fd1f5eb..8c2450d 100644 --- a/libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc +++ b/libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-add-options using-deprecated } +// { dg-require-effective-target hosted } // 25.2.11 random_shuffle() diff --git a/libstdc++-v3/testsuite/25_algorithms/random_shuffle/moveable.cc b/libstdc++-v3/testsuite/25_algorithms/random_shuffle/moveable.cc index d729068..8238998 100644 --- a/libstdc++-v3/testsuite/25_algorithms/random_shuffle/moveable.cc +++ b/libstdc++-v3/testsuite/25_algorithms/random_shuffle/moveable.cc @@ -1,5 +1,6 @@ // { dg-do run { target c++11 } } // { dg-add-options using-deprecated } +// { dg-require-effective-target hosted } // Copyright (C) 2009-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc index b3c7f0c..63701d9 100644 --- a/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc @@ -1,6 +1,7 @@ // { dg-options "-Wno-deprecated-declarations" } // { dg-do compile } // { dg-add-options using-deprecated } +// { dg-require-effective-target hosted } // 2007-09-20 Benjamin Kosnik <bkoz@redhat.com> diff --git a/libstdc++-v3/testsuite/25_algorithms/sort/35588.cc b/libstdc++-v3/testsuite/25_algorithms/sort/35588.cc index a3176bc..40579c5 100644 --- a/libstdc++-v3/testsuite/25_algorithms/sort/35588.cc +++ b/libstdc++-v3/testsuite/25_algorithms/sort/35588.cc @@ -15,6 +15,9 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// Transitively includes string related bits. +// { dg-require-effective-target hosted } + #include <algorithm> #include <functional> #include <tr1/functional> diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_partition/1.cc b/libstdc++-v3/testsuite/25_algorithms/stable_partition/1.cc index 6c089e4..afa525a 100644 --- a/libstdc++-v3/testsuite/25_algorithms/stable_partition/1.cc +++ b/libstdc++-v3/testsuite/25_algorithms/stable_partition/1.cc @@ -17,6 +17,9 @@ // 25.2.12 [lib.alg.partitions] Partitions. +// std::stable_partition is not freestanding. +// { dg-require-effective-target hosted } + #include <algorithm> #include <functional> #include <testsuite_new_operators.h> diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc index c4c1d53..bec0a8a 100644 --- a/libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc +++ b/libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc @@ -18,6 +18,9 @@ // { dg-options "-std=gnu++2a" } // { dg-do run { target c++2a } } +// std::stable_partition is not freestanding. +// { dg-require-effective-target hosted } + #include <algorithm> #include <testsuite_hooks.h> #include <testsuite_iterators.h> diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc b/libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc index 2e21e35..8c44acc 100644 --- a/libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc +++ b/libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc @@ -15,6 +15,9 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// std::stable_partition is not freestanding. +// { dg-require-effective-target hosted } + // 25.2.12 [lib.alg.partitions] Partitions. #include <algorithm> diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc b/libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc index 9747092..02792a3 100644 --- a/libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc +++ b/libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc @@ -17,6 +17,9 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// std::stable_partition is not freestanding. +// { dg-require-effective-target hosted } + // 25.2.12 [lib.alg.partitions] Partitions. #include <algorithm> diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc index f2e4419..75d14b8 100644 --- a/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc @@ -1,5 +1,6 @@ // { dg-options "-Wno-deprecated-declarations" } // { dg-do compile } +// { dg-require-effective-target hosted } // 2007-09-20 Benjamin Kosnik <bkoz@redhat.com> diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc b/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc index e4e0980..3326b17 100644 --- a/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc +++ b/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc @@ -1,6 +1,9 @@ // { dg-options "-Wno-deprecated-declarations" } // { dg-do compile } +// std::stable_partition is not freestanding. +// { dg-require-effective-target hosted } + // 2007-09-20 Benjamin Kosnik <bkoz@redhat.com> // Copyright (C) 2007-2022 Free Software Foundation, Inc. diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc b/libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc index f9042ee..8f712bf 100644 --- a/libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc +++ b/libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc @@ -17,6 +17,9 @@ // 25.3.1.2 [lib.stable.sort] +// testsuite_new_operators.h requires malloc/free. +// { dg-require-effective-target hosted } + #include <algorithm> #include <testsuite_new_operators.h> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/26_numerics/complex/2.cc b/libstdc++-v3/testsuite/26_numerics/complex/2.cc index ff76a40..fed1d90 100644 --- a/libstdc++-v3/testsuite/26_numerics/complex/2.cc +++ b/libstdc++-v3/testsuite/26_numerics/complex/2.cc @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do preprocess { target c++2a } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc index 2111648..4410aea 100644 --- a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc @@ -15,6 +15,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// Math-related cstdlib bits are not freestanding. +// { dg-require-effective-target hosted } #include <cstdlib> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc index 8dd5b87..f140c31 100644 --- a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc @@ -17,6 +17,9 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// Math-related cstdlib bits are not freestanding. +// { dg-require-effective-target hosted } + // 17.4.1.2 Headers, cstdlib #include <cstdlib> diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/60401.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/60401.cc index 5de912c..fe9bc8e 100644 --- a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/60401.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/60401.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// { dg-require-effective-target hosted } // PR libstdc++/60401 diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192.cc index a7a5efa..6e93f08 100644 --- a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192.cc @@ -16,6 +16,8 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile { target c++11 } } +// Math-related cstdlib bits are not freestanding. +// { dg-require-effective-target hosted } // NB: Don't include any other headers in this file. // LWG 2192 requires <cstdlib> to declare overloads for floating point types. diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc index 02f234a..e705862 100644 --- a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc @@ -17,6 +17,9 @@ // { dg-do compile { target c++11 } } +// Math-related cstdlib bits are not freestanding. +// { dg-require-effective-target hosted } + // NB: Don't include any other headers in this file. // LWG 2192 requires abs to be ill-formed for unsigned arguments. #include <cstdlib> diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2735.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2735.cc index fb1c002..93e9784 100644 --- a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2735.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2735.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } +// { dg-require-effective-target hosted } // NB: Don't include any other headers in this file. // LWG 2735. std::abs(short), std::abs(signed char) and others should return diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc index af28adf..35b389d 100644 --- a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc @@ -1,5 +1,8 @@ // { dg-do compile } +// Math-related cstdlib bits are not freestanding. +// { dg-require-effective-target hosted } + // Copyright (C) 2007-2022 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc index b4e2cd4..a6c1854 100644 --- a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc @@ -1,5 +1,8 @@ // { dg-do compile } +// Math-related cstdlib bits are not freestanding. +// { dg-require-effective-target hosted } + // Copyright (C) 2007-2022 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc index 6992a2b..bd1f5b4 100644 --- a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc @@ -1,5 +1,8 @@ // { dg-do compile } +// Math-related cstdlib bits are not freestanding. +// { dg-require-effective-target hosted } + // Copyright (C) 2007-2022 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc index e4db20d..904d404 100644 --- a/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc +++ b/libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc @@ -1,5 +1,8 @@ // { dg-do compile { target c++11 } } +// Math-related cstdlib bits are not freestanding. +// { dg-require-effective-target hosted } + // Copyright (C) 2007-2022 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free diff --git a/libstdc++-v3/testsuite/26_numerics/lerp/version.cc b/libstdc++-v3/testsuite/26_numerics/lerp/version.cc index 3ccb032..c19ead7 100644 --- a/libstdc++-v3/testsuite/26_numerics/lerp/version.cc +++ b/libstdc++-v3/testsuite/26_numerics/lerp/version.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++2a" } // { dg-do preprocess { target c++2a } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc b/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc index 3ccb032..c19ead7 100644 --- a/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc +++ b/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++2a" } // { dg-do preprocess { target c++2a } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc index f62023c..e45af3c 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc @@ -42,7 +42,7 @@ std::ostream& operator<<(std::ostream&, const X&) = delete; struct Y {}; std::ostream& operator<<(std::ostream& os, const Y&) {return os;} -std::ostream& operator<<(std::ostream&& os, const Y&) {return os;} +std::ostream& operator<<(std::ostream&& os, const Y&) {throw 1;} // not used struct Z{}; diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc index 6bbf4a7..7ef6442 100644 --- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc +++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc @@ -42,7 +42,7 @@ std::wostream& operator<<(std::wostream&, const X&) = delete; struct Y {}; std::wostream& operator<<(std::wostream& os, const Y&) {return os;} -std::wostream& operator<<(std::wostream&& os, const Y&) {return os;} +std::wostream& operator<<(std::wostream&& os, const Y&) {throw 1;} // not used struct Z{}; diff --git a/libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc index ef390a6..b88969f 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-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } // { dg-require-effective-target cxx11_abi } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc index ef390a6..b88969f 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-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } // { dg-require-effective-target cxx11_abi } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/27_io/fpos/14320-1.cc b/libstdc++-v3/testsuite/27_io/fpos/14320-1.cc index 6614898..17cfbd1 100644 --- a/libstdc++-v3/testsuite/27_io/fpos/14320-1.cc +++ b/libstdc++-v3/testsuite/27_io/fpos/14320-1.cc @@ -20,6 +20,7 @@ // 27.4.3 fpos // { dg-do compile } +// { dg-require-effective-target hosted } #include <limits> #include <iterator> diff --git a/libstdc++-v3/testsuite/27_io/fpos/14320-2.cc b/libstdc++-v3/testsuite/27_io/fpos/14320-2.cc index c3a150e..924809c 100644 --- a/libstdc++-v3/testsuite/27_io/fpos/14320-2.cc +++ b/libstdc++-v3/testsuite/27_io/fpos/14320-2.cc @@ -17,6 +17,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + // 27.4.3 fpos #include <iterator> diff --git a/libstdc++-v3/testsuite/27_io/fpos/14320-3.cc b/libstdc++-v3/testsuite/27_io/fpos/14320-3.cc index 00c812d0..3dc2bfd 100644 --- a/libstdc++-v3/testsuite/27_io/fpos/14320-3.cc +++ b/libstdc++-v3/testsuite/27_io/fpos/14320-3.cc @@ -17,6 +17,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + // 27.4.3 fpos #include <iterator> diff --git a/libstdc++-v3/testsuite/27_io/fpos/14320-4.cc b/libstdc++-v3/testsuite/27_io/fpos/14320-4.cc index df84762..c920f72 100644 --- a/libstdc++-v3/testsuite/27_io/fpos/14320-4.cc +++ b/libstdc++-v3/testsuite/27_io/fpos/14320-4.cc @@ -17,6 +17,8 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +// { dg-require-effective-target hosted } + // 27.4.3 fpos #include <iterator> diff --git a/libstdc++-v3/testsuite/27_io/spanstream/version.cc b/libstdc++-v3/testsuite/27_io/spanstream/version.cc index 6261755..26077c9 100644 --- a/libstdc++-v3/testsuite/27_io/spanstream/version.cc +++ b/libstdc++-v3/testsuite/27_io/spanstream/version.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++23" } // { dg-do compile { target c++23 } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc b/libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc index d2ff6cf..ba289e1 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc @@ -1,4 +1,8 @@ // { dg-do compile { target c++11 } } + +// std::shared_ptr is not freestanding. +// { dg-require-effective-target hosted } + // DR 3220. P0558 broke conforming C++14 uses of atomic shared_ptr #include <atomic> diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc b/libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc index 61b0a54..2e6037f 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc @@ -1,6 +1,9 @@ // { dg-do run { target c++11 } } // { dg-require-atomic-builtins "" } +// std::abs from <cstdlib> is not freestanding. +// { dg-require-effective-target hosted } + // Copyright (C) 2012-2022 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free 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 9d22835..db12f68 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-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } // { dg-require-effective-target gthreads } +// { dg-require-effective-target hosted } #include <atomic> diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc index f572ce7..72d9a92 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc @@ -1,6 +1,7 @@ // { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // { dg-require-gthreads "" } +// { dg-require-effective-target hosted } #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 88a779c..9eacc91 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-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } // { dg-require-effective-target gthreads } +// { dg-require-effective-target hosted } #include <version> 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 dbaf6bc..ab74fe6 100644 --- a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc +++ b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc @@ -1,6 +1,9 @@ // { dg-options "-std=gnu++23" } // { dg-do preprocess { target c++23 } } +// <stdatomic.h> is not freestanding. +// { dg-require-effective-target hosted } + #include <version> #ifndef __cpp_lib_stdatomic_h diff --git a/libstdc++-v3/testsuite/30_threads/barrier/2.cc b/libstdc++-v3/testsuite/30_threads/barrier/2.cc index ef4049a..313a567 100644 --- a/libstdc++-v3/testsuite/30_threads/barrier/2.cc +++ b/libstdc++-v3/testsuite/30_threads/barrier/2.cc @@ -18,6 +18,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } // { dg-require-effective-target gthreads } +// { dg-require-effective-target hosted } #include <version> 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 231b0e8..3c7ff40 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-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/30_threads/jthread/version.cc b/libstdc++-v3/testsuite/30_threads/jthread/version.cc index e17031b..0621035 100644 --- a/libstdc++-v3/testsuite/30_threads/jthread/version.cc +++ b/libstdc++-v3/testsuite/30_threads/jthread/version.cc @@ -18,6 +18,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } // { dg-require-gthreads "" } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/30_threads/latch/2.cc b/libstdc++-v3/testsuite/30_threads/latch/2.cc index ac7fce0..27a591f 100644 --- a/libstdc++-v3/testsuite/30_threads/latch/2.cc +++ b/libstdc++-v3/testsuite/30_threads/latch/2.cc @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/2.cc b/libstdc++-v3/testsuite/30_threads/semaphore/2.cc index ab89ecd..41a042f 100644 --- a/libstdc++-v3/testsuite/30_threads/semaphore/2.cc +++ b/libstdc++-v3/testsuite/30_threads/semaphore/2.cc @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/2.cc b/libstdc++-v3/testsuite/30_threads/stop_token/2.cc index 231b0e8..3c7ff40 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-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +// { dg-require-effective-target hosted } #include <version> diff --git a/libstdc++-v3/testsuite/abi/pr42230.cc b/libstdc++-v3/testsuite/abi/pr42230.cc index 48156e4..e10803c 100644 --- a/libstdc++-v3/testsuite/abi/pr42230.cc +++ b/libstdc++-v3/testsuite/abi/pr42230.cc @@ -1,4 +1,5 @@ // { dg-do run } +// { dg-require-effective-target hosted } #include <cxxabi.h> #include <cassert> diff --git a/libstdc++-v3/testsuite/ext/shared_ptr/1.cc b/libstdc++-v3/testsuite/ext/shared_ptr/1.cc index 4ea932b..45723fb 100644 --- a/libstdc++-v3/testsuite/ext/shared_ptr/1.cc +++ b/libstdc++-v3/testsuite/ext/shared_ptr/1.cc @@ -16,6 +16,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do run { target c++11 } } +// { dg-require-effective-target hosted } #include <memory> #include <testsuite_hooks.h> diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp index 0338b50..635f16d 100644 --- a/libstdc++-v3/testsuite/lib/libstdc++.exp +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp @@ -654,7 +654,7 @@ proc v3-build_support { } { # do not prevent compilation. # Disable LTO so that ar/ranlib don't need the LTO plugin. if { [v3_target_compile $srcdir/util/$f $object_file "object" \ - [list "incdir=$srcdir" "additional_flags=-w -fno-lto"]] + [list "incdir=$srcdir" "additional_flags=-w -fno-lto -fno-freestanding"]] != "" } { error "could not compile $f" } @@ -693,7 +693,7 @@ proc v3-build_support { } { # Compile with "-w" so that warnings issued by the compiler # do not prevent compilation. if { [v3_target_compile $srcdir/util/$f $object_file "sharedlib" \ - [list "incdir=$srcdir" "additional_flags=-fno-inline -w -shared -fPIC -DPIC -std=gnu++98"]] + [list "incdir=$srcdir" "additional_flags=-fno-inline -w -shared -fPIC -DPIC -std=gnu++98 -fno-freestanding"]] != "" } { error "could not compile $f" } @@ -1376,7 +1376,7 @@ proc check_effective_target_std_allocator_new { } { # Return 1 if libstdc++ was built as --enable-libstdcxx-backtrace proc check_effective_target_stacktrace { } { return [check_v3_target_prop_cached et_stacktrace { - set cond "_GLIBCXX_HAVE_STACKTRACE" + set cond "_GLIBCXX_HAVE_STACKTRACE && _GLIBCXX_HOSTED" return [v3_check_preprocessor_condition stacktrace $cond] }] } @@ -1389,6 +1389,14 @@ proc check_effective_target_rtti { } { }] } +# Return 1 if a hosted implementation is available (i.e. not freestanding). +proc check_effective_target_hosted { } { + return [check_v3_target_prop_cached et_hosted { + set cond "_GLIBCXX_HOSTED" + return [v3_check_preprocessor_condition hosted $cond] + }] +} + set additional_prunes "" if { [info exists env(GCC_RUNTEST_PARALLELIZE_DIR)] \ diff --git a/libstdc++-v3/testsuite/lib/prune.exp b/libstdc++-v3/testsuite/lib/prune.exp index 70ff302..d457e97 100644 --- a/libstdc++-v3/testsuite/lib/prune.exp +++ b/libstdc++-v3/testsuite/lib/prune.exp @@ -33,6 +33,10 @@ proc libstdc++-dg-prune { system text } { # send_user "Before:$text\n" + if { [string match "*This header is not available in freestanding mode.*" $text] } { + return "::unsupported::hosted C++ headers not supported" + } + # Ignore caret diagnostics. Unfortunately dejaGNU trims leading # spaces, so one cannot rely on them being present. regsub -all "(^|\n)\[^\n\]+\n *\\^\n" $text "\n" text diff --git a/libstdc++-v3/testsuite/libstdc++-abi/abi.exp b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp index 9e919e1..66f19ea 100644 --- a/libstdc++-v3/testsuite/libstdc++-abi/abi.exp +++ b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp @@ -60,7 +60,7 @@ remote_exec "build" "$blddir/scripts/extract_symvers" \ # Build the abi_check program. if { [v3_target_compile "$srcdir/util/testsuite_abi_check.cc" "abi_check" \ - "executable" [list "additional_flags=-w"]] != "" } { + "executable" [list "additional_flags=-w -fno-freestanding"]] != "" } { error "could not compile testsuite_abi_check.cc" } diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc index 4abe7d3..d1016b5 100644 --- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc @@ -18,9 +18,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// Type printers only recognize the old std::string for now. -#define _GLIBCXX_USE_CXX11_ABI 0 - #include <iostream> #include <list> #include <memory> @@ -46,7 +43,7 @@ main() // { dg-final { whatis-regexp-test p1 "std::unique_ptr<std::(__debug::)?vector<std::unique_ptr<std::(__debug::)?vector<int>\\*>>>" } } // { dg-final { whatis-regexp-test p2 "std::unique_ptr<std::(__debug::)?vector<std::unique_ptr<std::(__debug::)?set<int>\\*>>\\\[\\\]>" } } // { dg-final { whatis-regexp-test p3 "std::unique_ptr<std::(__debug::)?set<std::unique_ptr<std::(__debug::)?vector<int>\\*>>\\\[10\\\]>" } } - // { dg-final { whatis-regexp-test p4 "std::unique_ptr<std::(__debug::)?vector<std::unique_ptr<std::(__debug::)?list<std::string>\\\[\\\]>>\\\[99\\\]>" { xfail { c++20 || debug_mode } } } } + // { dg-final { whatis-regexp-test p4 "std::unique_ptr<std::(__debug::)?vector<std::unique_ptr<std::(__debug::)?list<std::string>\\\[\\\]>>\\\[99\\\]>" } } placeholder(&p1); // Mark SPOT placeholder(&p2); diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc index e52ffbb..cf699d2 100644 --- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc @@ -18,9 +18,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// Type printers only recognize the old std::string for now. -#define _GLIBCXX_USE_CXX11_ABI 0 - #include <filesystem> #include <any> #include <optional> diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc index e81308d..b2f464d 100644 --- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc @@ -18,9 +18,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// Type printers only recognize the old std::string for now. -#define _GLIBCXX_USE_CXX11_ABI 0 - #include <experimental/any> #include <experimental/optional> #include <experimental/string_view> @@ -50,7 +47,7 @@ main() om = std::map<int, double>{ {1, 2.}, {3, 4.}, {5, 6.} }; // { dg-final { regexp-test om {std::experimental::optional<std::(__debug::)?map<int, double>> containing std::(__debug::)?map with 3 elements = {\[1\] = 2, \[3\] = 4, \[5\] = 6}} } } optional<std::string> os{ "stringy" }; -// { dg-final { note-test os {std::experimental::optional<std::string> = {[contained value] = "stringy"}} { xfail { c++20 || debug_mode } } } } +// { dg-final { note-test os {std::experimental::optional<std::string> = {[contained value] = "stringy"}} } } any a; // { dg-final { note-test a {std::experimental::any [no contained value]} } } @@ -61,7 +58,7 @@ main() any ap = (void*)nullptr; // { dg-final { note-test ap {std::experimental::any containing void * = {[contained value] = 0x0}} } } any as = *os; -// { dg-final { note-test as {std::experimental::any containing std::string = {[contained value] = "stringy"}} { xfail { c++20 || debug_mode } } } } +// { dg-final { note-test as {std::experimental::any containing std::string = {[contained value] = "stringy"}} } } any as2("stringiest"); // { dg-final { regexp-test as2 {std::experimental::any containing const char \* = {\[contained value\] = 0x[[:xdigit:]]+ "stringiest"}} } } any am = *om; diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc index 1609ae2..41aec95 100644 --- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc @@ -20,9 +20,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// Type printers only recognize the old std::string for now. -#define _GLIBCXX_USE_CXX11_ABI 0 - #include <string> #include <deque> #include <bitset> @@ -65,7 +62,7 @@ main() std::list<std::string> lst; lst.push_back("one"); lst.push_back("two"); -// { dg-final { regexp-test lst {std::(__debug::)?list = {\[0\] = "one", \[1\] = "two"}} } } +// { dg-final { regexp-test lst {std::(__cxx11::)?(__debug::)?list = {\[0\] = "one", \[1\] = "two"}} } } std::list<int>::iterator lstiter0; // { dg-final { note-test lstiter0 {non-dereferenceable iterator for std::list} } } diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc index a4b82e3..407fee4 100644 --- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc @@ -20,9 +20,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// Type printers only recognize the old std::string for now. -#define _GLIBCXX_USE_CXX11_ABI 0 - #include <string> #include <deque> #include <bitset> @@ -61,7 +58,7 @@ main() std::list<std::string> lst; lst.push_back("one"); lst.push_back("two"); -// { dg-final { regexp-test lst {std::(__debug::)?list = {\[0\] = "one", \[1\] = "two"}} } } +// { dg-final { regexp-test lst {std::(__cxx11::)?(__debug::)?list = {\[0\] = "one", \[1\] = "two"}} } } std::list<std::string>::iterator lstiter = lst.begin(); tem = *lstiter; diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc index 046d26f..23b9947 100644 --- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc @@ -18,10 +18,6 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// GDB can't find global variables using the abi_tag attribute. -// https://sourceware.org/bugzilla/show_bug.cgi?id=19436 -#define _GLIBCXX_USE_CXX11_ABI 0 - #include <string> #include <iostream> #include <regex> diff --git a/libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc b/libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc index ad16170..b1a3372 100644 --- a/libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc +++ b/libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc @@ -1,5 +1,6 @@ // { dg-do run { target c++11 } } // { dg-options "-g -O0" } +// { dg-require-effective-target hosted } // Copyright (C) 2016-2022 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc index 97401da..c900553 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc @@ -22,6 +22,9 @@ #include <ranges> #include <functional> +#if __STDC_HOSTED__ +#include <string> +#endif namespace ranges = std::ranges; namespace views = std::ranges::views; @@ -38,9 +41,11 @@ test01() static_assert(__adaptor_has_simple_extra_args<decltype(views::take), int>); static_assert(__adaptor_has_simple_extra_args<decltype(views::take_while), identity>); static_assert(__adaptor_has_simple_extra_args<decltype(views::drop_while), identity>); - static_assert(__adaptor_has_simple_extra_args<decltype(views::lazy_split), std::string_view>); static_assert(__adaptor_has_simple_extra_args<decltype(views::lazy_split), char>); +#if __STDC_HOSTED__ + static_assert(__adaptor_has_simple_extra_args<decltype(views::lazy_split), std::string_view>); static_assert(!__adaptor_has_simple_extra_args<decltype(views::lazy_split), std::string>); +#endif using views::__adaptor::__closure_has_simple_call_op; __closure_has_simple_call_op auto a00 = views::all; @@ -60,6 +65,7 @@ test01() __closure_has_simple_call_op auto b = (a00 | a01) | (a02 | a03) | (a04 | a05 | a06) | (a07 | a08 | a09 | a10) | a11; +#if __STDC_HOSTED__ // Verify views::lazy_split(non_view_range) is an exception. extern std::string s; auto a12 = views::lazy_split(s); @@ -72,6 +78,7 @@ test01() static_assert(!__closure_has_simple_call_op<decltype(a12a)>); static_assert(!__closure_has_simple_call_op<decltype(a12a | a00)>); static_assert(!__closure_has_simple_call_op<decltype(a00 | a12a)>); +#endif } void @@ -129,6 +136,7 @@ test03() void test04() { +#if __STDC_HOSTED__ // Non-trivially-copyable extra arguments make a closure not simple. using F = std::function<bool(bool)>; static_assert(!std::is_trivially_copyable_v<F>); @@ -137,6 +145,7 @@ test04() static_assert(!__closure_has_simple_call_op<decltype(views::drop_while(std::declval<F>()))>); static_assert(!__closure_has_simple_call_op<decltype(views::filter(std::declval<F>()))>); static_assert(!__closure_has_simple_call_op<decltype(views::transform(std::declval<F>()))>); +#endif } // { dg-prune-output "in requirements" } diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc index bbc7770..a9c9598 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +// { dg-require-effective-target hosted } #include <algorithm> #include <ranges> diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc index 3e51aa0..a1e6673 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc @@ -1,8 +1,10 @@ // { dg-options "-std=gnu++20" } // { dg-do run { target c++20 } } +// { dg-require-effective-target hosted } #include <algorithm> #include <ranges> +#include <string_view> #include <testsuite_hooks.h> // Verify P1739R4 (and LWG 3407) changes to views::take/drop/counted. diff --git a/libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc b/libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc index a6c7381..435c609 100644 --- a/libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc +++ b/libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc @@ -17,6 +17,7 @@ // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } +// { dg-require-effective-target hosted } #include <sstream> #include <ranges> diff --git a/libstdc++-v3/testsuite/std/ranges/p2325.cc b/libstdc++-v3/testsuite/std/ranges/p2325.cc index d2ebe9a..accd265 100644 --- a/libstdc++-v3/testsuite/std/ranges/p2325.cc +++ b/libstdc++-v3/testsuite/std/ranges/p2325.cc @@ -1,5 +1,6 @@ // { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } +// { dg-require-effective-target hosted } // P2325R3 "Views should not be required to be default constructible" #include <ranges> |