aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2022-10-04 12:04:54 +0200
committerMartin Liska <mliska@suse.cz>2022-10-04 12:04:54 +0200
commitda0970e441345f8349522ff1abac5c223044ebb1 (patch)
tree17c2091a83c584a1eae4f8e219a460f85c5d3fd8 /libstdc++-v3
parent54f3cfaf3a6f50958c71d79c85206a6c722e1a22 (diff)
parente886ebd17965d78f609b62479f4f48085108389c (diff)
downloadgcc-da0970e441345f8349522ff1abac5c223044ebb1.zip
gcc-da0970e441345f8349522ff1abac5c223044ebb1.tar.gz
gcc-da0970e441345f8349522ff1abac5c223044ebb1.tar.bz2
Merge branch 'master' into devel/sphinx
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog715
-rw-r--r--libstdc++-v3/acinclude.m42
-rwxr-xr-xlibstdc++-v3/configure27
-rw-r--r--libstdc++-v3/configure.ac9
-rw-r--r--libstdc++-v3/doc/html/manual/status.html9
-rw-r--r--libstdc++-v3/doc/xml/manual/status_cxx2020.xml15
-rw-r--r--libstdc++-v3/include/Makefile.am303
-rw-r--r--libstdc++-v3/include/Makefile.in657
-rw-r--r--libstdc++-v3/include/bits/algorithmfwd.h4
-rw-r--r--libstdc++-v3/include/bits/concept_check.h2
-rw-r--r--libstdc++-v3/include/bits/ranges_algo.h2
-rw-r--r--libstdc++-v3/include/bits/requires_hosted.h37
-rw-r--r--libstdc++-v3/include/bits/stl_algo.h2
-rw-r--r--libstdc++-v3/include/bits/unique_ptr.h5
-rw-r--r--libstdc++-v3/include/c_global/cmath2
-rw-r--r--libstdc++-v3/include/experimental/algorithm2
-rw-r--r--libstdc++-v3/include/experimental/any2
-rw-r--r--libstdc++-v3/include/experimental/array2
-rw-r--r--libstdc++-v3/include/experimental/buffer2
-rw-r--r--libstdc++-v3/include/experimental/chrono2
-rw-r--r--libstdc++-v3/include/experimental/deque2
-rw-r--r--libstdc++-v3/include/experimental/executor2
-rw-r--r--libstdc++-v3/include/experimental/filesystem2
-rw-r--r--libstdc++-v3/include/experimental/forward_list2
-rw-r--r--libstdc++-v3/include/experimental/functional2
-rw-r--r--libstdc++-v3/include/experimental/internet4
-rw-r--r--libstdc++-v3/include/experimental/io_context2
-rw-r--r--libstdc++-v3/include/experimental/iterator2
-rw-r--r--libstdc++-v3/include/experimental/list2
-rw-r--r--libstdc++-v3/include/experimental/map2
-rw-r--r--libstdc++-v3/include/experimental/memory2
-rw-r--r--libstdc++-v3/include/experimental/memory_resource2
-rw-r--r--libstdc++-v3/include/experimental/net2
-rw-r--r--libstdc++-v3/include/experimental/netfwd2
-rw-r--r--libstdc++-v3/include/experimental/numeric2
-rw-r--r--libstdc++-v3/include/experimental/optional2
-rw-r--r--libstdc++-v3/include/experimental/propagate_const2
-rw-r--r--libstdc++-v3/include/experimental/random2
-rw-r--r--libstdc++-v3/include/experimental/ratio2
-rw-r--r--libstdc++-v3/include/experimental/regex2
-rw-r--r--libstdc++-v3/include/experimental/scope2
-rw-r--r--libstdc++-v3/include/experimental/set2
-rw-r--r--libstdc++-v3/include/experimental/simd2
-rw-r--r--libstdc++-v3/include/experimental/socket2
-rw-r--r--libstdc++-v3/include/experimental/source_location2
-rw-r--r--libstdc++-v3/include/experimental/string2
-rw-r--r--libstdc++-v3/include/experimental/string_view2
-rw-r--r--libstdc++-v3/include/experimental/system_error2
-rw-r--r--libstdc++-v3/include/experimental/timer2
-rw-r--r--libstdc++-v3/include/experimental/tuple2
-rw-r--r--libstdc++-v3/include/experimental/unordered_map2
-rw-r--r--libstdc++-v3/include/experimental/unordered_set2
-rw-r--r--libstdc++-v3/include/experimental/utility2
-rw-r--r--libstdc++-v3/include/experimental/vector2
-rw-r--r--libstdc++-v3/include/ext/algorithm2
-rw-r--r--libstdc++-v3/include/ext/bitmap_allocator.h2
-rw-r--r--libstdc++-v3/include/ext/cmath2
-rw-r--r--libstdc++-v3/include/ext/codecvt_specializations.h2
-rw-r--r--libstdc++-v3/include/ext/debug_allocator.h2
-rw-r--r--libstdc++-v3/include/ext/enc_filebuf.h2
-rw-r--r--libstdc++-v3/include/ext/extptr_allocator.h2
-rw-r--r--libstdc++-v3/include/ext/functional2
-rw-r--r--libstdc++-v3/include/ext/malloc_allocator.h2
-rw-r--r--libstdc++-v3/include/ext/memory2
-rw-r--r--libstdc++-v3/include/ext/mt_allocator.h2
-rw-r--r--libstdc++-v3/include/ext/new_allocator.h2
-rw-r--r--libstdc++-v3/include/ext/numeric2
-rw-r--r--libstdc++-v3/include/ext/pod_char_traits.h2
-rw-r--r--libstdc++-v3/include/ext/pointer.h7
-rw-r--r--libstdc++-v3/include/ext/pool_allocator.h2
-rw-r--r--libstdc++-v3/include/ext/random2
-rw-r--r--libstdc++-v3/include/ext/random.tcc2
-rw-r--r--libstdc++-v3/include/ext/rb_tree2
-rw-r--r--libstdc++-v3/include/ext/rc_string_base.h2
-rw-r--r--libstdc++-v3/include/ext/rope2
-rw-r--r--libstdc++-v3/include/ext/ropeimpl.h2
-rw-r--r--libstdc++-v3/include/ext/slist2
-rw-r--r--libstdc++-v3/include/ext/sso_string_base.h2
-rw-r--r--libstdc++-v3/include/ext/stdio_filebuf.h2
-rw-r--r--libstdc++-v3/include/ext/stdio_sync_filebuf.h2
-rw-r--r--libstdc++-v3/include/ext/string_conversions.h2
-rw-r--r--libstdc++-v3/include/ext/throw_allocator.h2
-rw-r--r--libstdc++-v3/include/ext/vstring.h2
-rw-r--r--libstdc++-v3/include/ext/vstring.tcc2
-rw-r--r--libstdc++-v3/include/ext/vstring_fwd.h2
-rw-r--r--libstdc++-v3/include/ext/vstring_util.h2
-rw-r--r--libstdc++-v3/include/precompiled/extc++.h17
-rw-r--r--libstdc++-v3/include/precompiled/stdc++.h81
-rw-r--r--libstdc++-v3/include/std/algorithm4
-rw-r--r--libstdc++-v3/include/std/barrier2
-rw-r--r--libstdc++-v3/include/std/bitset178
-rw-r--r--libstdc++-v3/include/std/charconv4
-rw-r--r--libstdc++-v3/include/std/chrono2
-rw-r--r--libstdc++-v3/include/std/condition_variable2
-rw-r--r--libstdc++-v3/include/std/deque2
-rw-r--r--libstdc++-v3/include/std/execution2
-rw-r--r--libstdc++-v3/include/std/filesystem2
-rw-r--r--libstdc++-v3/include/std/forward_list2
-rw-r--r--libstdc++-v3/include/std/fstream2
-rw-r--r--libstdc++-v3/include/std/functional3
-rw-r--r--libstdc++-v3/include/std/future2
-rw-r--r--libstdc++-v3/include/std/iomanip2
-rw-r--r--libstdc++-v3/include/std/ios2
-rw-r--r--libstdc++-v3/include/std/iosfwd2
-rw-r--r--libstdc++-v3/include/std/iostream18
-rw-r--r--libstdc++-v3/include/std/istream2
-rw-r--r--libstdc++-v3/include/std/iterator4
-rw-r--r--libstdc++-v3/include/std/latch2
-rw-r--r--libstdc++-v3/include/std/limits10
-rw-r--r--libstdc++-v3/include/std/list2
-rw-r--r--libstdc++-v3/include/std/locale2
-rw-r--r--libstdc++-v3/include/std/map2
-rw-r--r--libstdc++-v3/include/std/memory2
-rw-r--r--libstdc++-v3/include/std/memory_resource2
-rw-r--r--libstdc++-v3/include/std/mutex2
-rw-r--r--libstdc++-v3/include/std/numeric2
-rw-r--r--libstdc++-v3/include/std/ostream2
-rw-r--r--libstdc++-v3/include/std/queue2
-rw-r--r--libstdc++-v3/include/std/random2
-rw-r--r--libstdc++-v3/include/std/regex2
-rw-r--r--libstdc++-v3/include/std/semaphore2
-rw-r--r--libstdc++-v3/include/std/set2
-rw-r--r--libstdc++-v3/include/std/shared_mutex2
-rw-r--r--libstdc++-v3/include/std/spanstream2
-rw-r--r--libstdc++-v3/include/std/sstream2
-rw-r--r--libstdc++-v3/include/std/stack2
-rw-r--r--libstdc++-v3/include/std/stacktrace2
-rw-r--r--libstdc++-v3/include/std/stop_token2
-rw-r--r--libstdc++-v3/include/std/streambuf2
-rw-r--r--libstdc++-v3/include/std/string2
-rw-r--r--libstdc++-v3/include/std/syncstream2
-rw-r--r--libstdc++-v3/include/std/system_error2
-rw-r--r--libstdc++-v3/include/std/thread2
-rw-r--r--libstdc++-v3/include/std/type_traits7
-rw-r--r--libstdc++-v3/include/std/unordered_map2
-rw-r--r--libstdc++-v3/include/std/unordered_set2
-rw-r--r--libstdc++-v3/include/std/valarray2
-rw-r--r--libstdc++-v3/include/std/vector2
-rw-r--r--libstdc++-v3/include/std/version100
-rw-r--r--libstdc++-v3/include/tr1/array2
-rw-r--r--libstdc++-v3/include/tr1/ccomplex2
-rw-r--r--libstdc++-v3/include/tr1/cctype2
-rw-r--r--libstdc++-v3/include/tr1/cfenv2
-rw-r--r--libstdc++-v3/include/tr1/cfloat2
-rw-r--r--libstdc++-v3/include/tr1/cinttypes2
-rw-r--r--libstdc++-v3/include/tr1/climits2
-rw-r--r--libstdc++-v3/include/tr1/cmath2
-rw-r--r--libstdc++-v3/include/tr1/complex2
-rw-r--r--libstdc++-v3/include/tr1/complex.h2
-rw-r--r--libstdc++-v3/include/tr1/cstdarg2
-rw-r--r--libstdc++-v3/include/tr1/cstdbool2
-rw-r--r--libstdc++-v3/include/tr1/cstdint2
-rw-r--r--libstdc++-v3/include/tr1/cstdio2
-rw-r--r--libstdc++-v3/include/tr1/cstdlib2
-rw-r--r--libstdc++-v3/include/tr1/ctgmath2
-rw-r--r--libstdc++-v3/include/tr1/ctime2
-rw-r--r--libstdc++-v3/include/tr1/ctype.h2
-rw-r--r--libstdc++-v3/include/tr1/cwchar2
-rw-r--r--libstdc++-v3/include/tr1/cwctype2
-rw-r--r--libstdc++-v3/include/tr1/fenv.h2
-rw-r--r--libstdc++-v3/include/tr1/float.h2
-rw-r--r--libstdc++-v3/include/tr1/functional2
-rw-r--r--libstdc++-v3/include/tr1/inttypes.h2
-rw-r--r--libstdc++-v3/include/tr1/limits.h2
-rw-r--r--libstdc++-v3/include/tr1/math.h2
-rw-r--r--libstdc++-v3/include/tr1/memory2
-rw-r--r--libstdc++-v3/include/tr1/random2
-rw-r--r--libstdc++-v3/include/tr1/regex2
-rw-r--r--libstdc++-v3/include/tr1/stdarg.h2
-rw-r--r--libstdc++-v3/include/tr1/stdbool.h2
-rw-r--r--libstdc++-v3/include/tr1/stdint.h2
-rw-r--r--libstdc++-v3/include/tr1/stdio.h2
-rw-r--r--libstdc++-v3/include/tr1/stdlib.h2
-rw-r--r--libstdc++-v3/include/tr1/tgmath.h2
-rw-r--r--libstdc++-v3/include/tr1/tuple2
-rw-r--r--libstdc++-v3/include/tr1/type_traits2
-rw-r--r--libstdc++-v3/include/tr1/unordered_map2
-rw-r--r--libstdc++-v3/include/tr1/unordered_set2
-rw-r--r--libstdc++-v3/include/tr1/utility2
-rw-r--r--libstdc++-v3/include/tr1/wchar.h2
-rw-r--r--libstdc++-v3/include/tr1/wctype.h2
-rw-r--r--libstdc++-v3/python/libstdcxx/v6/printers.py25
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc2
-rw-r--r--libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc32
-rw-r--r--libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc53
-rw-r--r--libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc53
-rw-r--r--libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc1
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/cstdlib/functions_std.cc2
-rw-r--r--libstdc++-v3/testsuite/18_support/new_nothrow.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/105975.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/14176.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/64135.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/89510.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/lwg3190.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/overaligned.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc5
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc5
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/void.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc5
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator_traits/header.cc5
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc6
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator_traits/members/pointers.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator_traits/members/rebind_alloc.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator_traits/requirements/typedefs.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/bad_function_call/cons_virtual_derivation.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bind/42593.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bind/ref_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/access/dr396.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/access/to_string.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/access/to_ulong.cc13
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/cons/16020.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/cons/dr1325-2.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/cons/dr396.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/debug/invalidation/1.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/ext/15361.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/operations/13838.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/assign.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/const.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/reinit.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/forward/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/forward/1_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/1.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/10.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/2.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/3.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/4.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/43397.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/48541.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/5.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/58569.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/6.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/60594.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/65760.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/69222.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/7.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/77322.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/8.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/9.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/91456.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/assign/move.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/assign/move_target.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cmp/cmp_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/55320.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/57465.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/70692.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/72820.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/addressof.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/callable.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/deduction.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/lwg2774.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/move.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/move_target.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/noexcept.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/non_copyconstructible.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/refqual.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/invoke/forwarding.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/invoke/move_only.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/null_pointer_comparisons.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/requirements/explicit_instantiation.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function/target_no_rtti.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/83607.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/mem_fn/adl.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/bitset/synopsis.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/cstdlib/functions_std.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/functional/types_std_c++0x.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/headers/memory/types_std_c++0x.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/is_function/35637.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/20_util/move/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/move_only_function/call.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/move_only_function/cons.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/move_only_function/move.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/move_only_function/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/owner_less/cmp.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/owner_less/void.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/pointer_safety/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/assign/assign.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/assign/dr541.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/assign/move.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/assign/sfinae.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/atomic/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/atomic/2.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/casts/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/casts/reinterpret.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/comparison/42925.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/comparison/86537.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/comparison/dr1401.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/comparison/less.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/46910.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/51365.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/55123.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/58659.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/61036.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/79467.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/80229.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/array.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/deduction.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/default.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg3548.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/nullptr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/pointer.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/void_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/weak_ptr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/36949.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/58594.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/87278.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/99006.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr402.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/dr925.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/make.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/no_rtti.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/private.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/dest/dest.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/hash/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/misc/24595.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/misc/42019.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/misc/get_deleter.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/misc/swap.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/modifiers/swap_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/observers/array.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/observers/bool_conv.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/observers/get.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/observers/unique.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/observers/use_count.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/requirements/weak_type.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/temporary_buffer.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/48476.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/cons/90700.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/cons/96803.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/cons/allocator_with_any.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/cons/allocators.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/cons/deduction.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/cons/explicit_construct.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/creation/array.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/creation/array_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/creation/single.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/version.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/c_strings/char/69626.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/char_traits/requirements/version.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc2
-rw-r--r--libstdc++-v3/testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc2
-rw-r--r--libstdc++-v3/testsuite/24_iterators/insert_iterator/requirements/base_classes.cc2
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istream_iterator/requirements/base_classes.cc2
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/92285.cc2
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc2
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc2
-rw-r--r--libstdc++-v3/testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc2
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/headers/cstdlib/functions_std.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/inplace_merge/1.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/make_heap/movable.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/move/93872.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/pstl/feature_test-4.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/random_shuffle/moveable.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/sort/35588.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_partition/1.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_sort/1.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/complex/2.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/13943.cc2
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/2190.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/60401.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192.cc2
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/dr2735.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/functions_std.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/macros.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/lerp/version.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/midpoint/version.cc1
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc1
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc1
-rw-r--r--libstdc++-v3/testsuite/27_io/fpos/14320-1.cc1
-rw-r--r--libstdc++-v3/testsuite/27_io/fpos/14320-2.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/fpos/14320-3.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/fpos/14320-4.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/spanstream/version.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/barrier/2.cc1
-rw-r--r--libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc1
-rw-r--r--libstdc++-v3/testsuite/30_threads/jthread/version.cc1
-rw-r--r--libstdc++-v3/testsuite/30_threads/latch/2.cc1
-rw-r--r--libstdc++-v3/testsuite/30_threads/semaphore/2.cc1
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/2.cc1
-rw-r--r--libstdc++-v3/testsuite/abi/pr42230.cc1
-rw-r--r--libstdc++-v3/testsuite/ext/shared_ptr/1.cc1
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++.exp14
-rw-r--r--libstdc++-v3/testsuite/lib/prune.exp4
-rw-r--r--libstdc++-v3/testsuite/libstdc++-abi/abi.exp2
-rw-r--r--libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc5
-rw-r--r--libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc3
-rw-r--r--libstdc++-v3/testsuite/libstdc++-prettyprinters/libfundts.cc7
-rw-r--r--libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc5
-rw-r--r--libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc5
-rw-r--r--libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis.cc4
-rw-r--r--libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc11
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc2
-rw-r--r--libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/p2325.cc1
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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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 &gt;= 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>