From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout-p-102.mailbox.org (mout-p-102.mailbox.org [80.241.56.152]) by sourceware.org (Postfix) with ESMTPS id 844F23858D1E; Fri, 30 Sep 2022 16:46:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 844F23858D1E Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=aarsen.me Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=aarsen.me Received: from smtp1.mailbox.org (smtp1.mailbox.org [IPv6:2001:67c:2050:b231:465::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4MfGMS2Dcmz9sSZ; Fri, 30 Sep 2022 18:46:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aarsen.me; s=MBO0001; t=1664556372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WxAyoO3c2O5cjbUl8I4VUsG719WWGayKYqLtcMSH46A=; b=hk6r3b2RLRR3FMpKTUpEc7kCfSuEXXUAab7E6O8o8lnXBAAu/mpsupWS4qx9Fkh2hp8A+C UKdhIrtXaWCxEqBfMEeP9m68udUDF6maqtVnoMa8ZXue3I1TNYAdQjaZwr50QhZv3Zf/hD z03/UctnQe8NMVFwi8UJXeq3Quk+KjtknbF7ULm1OJFTUcHluOr5GonFopvxYWb637YYQD aMIdbthv/CLHxyHZWGudE9I8z5MQH6I7yl1Vb9AmemyYEyE/9osRWQmjWAG0O+nSTospwh +8Aem9vhYvZLduAlIArUgf4OEBG9ckH/8Fh0kaAgIo0XAPkZrY/Z3d8gWmlJog== From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= To: gcc-patches@gcc.gnu.org Cc: libstdc++@gcc.gnu.org, =?UTF-8?q?Arsen=20Arsenovi=C4=87?= Subject: [PATCH 00/10] c-family,libstdc++: P1642 and related changes Date: Fri, 30 Sep 2022 18:45:46 +0200 Message-Id: <20220930164556.1198044-1-arsen@aarsen.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4MfGMS2Dcmz9sSZ X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_INFOUSMEBIZ,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,TXREP,URI_HEX autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi, This patchset: - Implements the P1642 WG21 paper, with a fair few extensions, - Fixes libstdc++' build system on systems --without-headers, - Ports (a large chunk of) the libstdc++ testsuite to freestanding, and - Changes the semantics of `int main' in freestanding (!!). Thanks, Arsen Arsenović (7): libstdc++: Filter out unconditional default include libstdc++: Mark headers that must be hosted as such [PR103626] c-family: Implement new `int main' semantics in freestanding libstdc++: Rework how freestanding install works [PR106953] libstdc++: Make some tests work on freestanding [PR103626] libstdc++: Re-enable std::hash in freestanding [PR103626] libstdc++: Disable hosted-only tests [PR103626] Jonathan Wakely (3): libstdc++: Make _GLIBCXX_HOSTED respect -ffreestanding [PR103626] libstdc++: Adjust precompiled headers for freestanding libstdc++: Add effective-target 'hosted' for testsuite [PR103626] gcc/c-family/c-common.cc | 6 + gcc/c-family/c-common.h | 10 + gcc/c/c-decl.cc | 4 +- gcc/c/c-objc-common.cc | 9 +- gcc/cp/cp-tree.h | 12 +- gcc/doc/invoke.texi | 20 +- .../freestanding-main-implicitly-returns.C | 5 + gcc/testsuite/g++.dg/no-builtin-main.C | 5 + gcc/testsuite/gcc.dg/c11-noreturn-4.c | 2 +- .../freestanding-main-implicitly-returns.c | 5 + gcc/testsuite/gcc.dg/inline-10.c | 2 +- gcc/testsuite/gcc.dg/no-builtin-main.c | 5 + gcc/testsuite/gcc.dg/noreturn-4.c | 2 +- libstdc++-v3/acinclude.m4 | 2 +- libstdc++-v3/configure | 2 +- libstdc++-v3/configure.ac | 9 + libstdc++-v3/include/Makefile.am | 303 ++++---- libstdc++-v3/include/Makefile.in | 657 +++++++++--------- libstdc++-v3/include/bits/algorithmfwd.h | 4 + libstdc++-v3/include/bits/concept_check.h | 2 +- libstdc++-v3/include/bits/ranges_algo.h | 2 + libstdc++-v3/include/bits/requires_hosted.h | 37 + libstdc++-v3/include/bits/stl_algo.h | 2 +- libstdc++-v3/include/c_global/cmath | 2 + libstdc++-v3/include/experimental/algorithm | 2 + libstdc++-v3/include/experimental/any | 2 + libstdc++-v3/include/experimental/array | 2 + libstdc++-v3/include/experimental/buffer | 2 + libstdc++-v3/include/experimental/chrono | 2 + libstdc++-v3/include/experimental/deque | 2 + libstdc++-v3/include/experimental/executor | 2 + libstdc++-v3/include/experimental/filesystem | 2 + .../include/experimental/forward_list | 2 + libstdc++-v3/include/experimental/functional | 2 + libstdc++-v3/include/experimental/internet | 2 + libstdc++-v3/include/experimental/io_context | 2 + libstdc++-v3/include/experimental/iterator | 2 + libstdc++-v3/include/experimental/list | 2 + libstdc++-v3/include/experimental/map | 2 + libstdc++-v3/include/experimental/memory | 2 + .../include/experimental/memory_resource | 2 + libstdc++-v3/include/experimental/net | 2 + libstdc++-v3/include/experimental/netfwd | 2 + libstdc++-v3/include/experimental/numeric | 2 + libstdc++-v3/include/experimental/optional | 2 + .../include/experimental/propagate_const | 2 + libstdc++-v3/include/experimental/random | 2 + libstdc++-v3/include/experimental/ratio | 2 + libstdc++-v3/include/experimental/regex | 2 + libstdc++-v3/include/experimental/scope | 2 + libstdc++-v3/include/experimental/set | 2 + libstdc++-v3/include/experimental/simd | 2 + libstdc++-v3/include/experimental/socket | 2 + .../include/experimental/source_location | 2 + libstdc++-v3/include/experimental/string | 2 + libstdc++-v3/include/experimental/string_view | 2 + .../include/experimental/system_error | 2 + libstdc++-v3/include/experimental/timer | 2 + libstdc++-v3/include/experimental/tuple | 2 + .../include/experimental/unordered_map | 2 + .../include/experimental/unordered_set | 2 + libstdc++-v3/include/experimental/utility | 2 + libstdc++-v3/include/experimental/vector | 2 + libstdc++-v3/include/ext/algorithm | 2 + libstdc++-v3/include/ext/bitmap_allocator.h | 2 + libstdc++-v3/include/ext/cmath | 2 + .../include/ext/codecvt_specializations.h | 2 + libstdc++-v3/include/ext/debug_allocator.h | 2 + libstdc++-v3/include/ext/enc_filebuf.h | 2 + libstdc++-v3/include/ext/extptr_allocator.h | 2 + libstdc++-v3/include/ext/functional | 2 + libstdc++-v3/include/ext/malloc_allocator.h | 2 + libstdc++-v3/include/ext/memory | 2 + libstdc++-v3/include/ext/mt_allocator.h | 2 + libstdc++-v3/include/ext/new_allocator.h | 2 + libstdc++-v3/include/ext/numeric | 2 + libstdc++-v3/include/ext/pod_char_traits.h | 2 + libstdc++-v3/include/ext/pointer.h | 7 +- libstdc++-v3/include/ext/pool_allocator.h | 2 + libstdc++-v3/include/ext/random | 2 + libstdc++-v3/include/ext/random.tcc | 2 + libstdc++-v3/include/ext/rb_tree | 2 + libstdc++-v3/include/ext/rc_string_base.h | 2 + libstdc++-v3/include/ext/rope | 2 + libstdc++-v3/include/ext/ropeimpl.h | 2 + libstdc++-v3/include/ext/slist | 2 + libstdc++-v3/include/ext/sso_string_base.h | 2 + libstdc++-v3/include/ext/stdio_filebuf.h | 2 + libstdc++-v3/include/ext/stdio_sync_filebuf.h | 2 + libstdc++-v3/include/ext/string_conversions.h | 2 + libstdc++-v3/include/ext/throw_allocator.h | 2 + libstdc++-v3/include/ext/vstring.h | 2 + libstdc++-v3/include/ext/vstring.tcc | 2 + libstdc++-v3/include/ext/vstring_fwd.h | 2 + libstdc++-v3/include/ext/vstring_util.h | 2 + libstdc++-v3/include/precompiled/extc++.h | 17 +- libstdc++-v3/include/precompiled/stdc++.h | 81 ++- libstdc++-v3/include/std/algorithm | 4 +- libstdc++-v3/include/std/barrier | 2 + libstdc++-v3/include/std/bitset | 9 +- libstdc++-v3/include/std/charconv | 4 +- libstdc++-v3/include/std/chrono | 2 + libstdc++-v3/include/std/condition_variable | 2 + libstdc++-v3/include/std/deque | 2 + libstdc++-v3/include/std/execution | 2 + libstdc++-v3/include/std/filesystem | 2 + libstdc++-v3/include/std/forward_list | 2 + libstdc++-v3/include/std/fstream | 2 + libstdc++-v3/include/std/functional | 3 +- libstdc++-v3/include/std/future | 2 + libstdc++-v3/include/std/iomanip | 2 + libstdc++-v3/include/std/ios | 2 + libstdc++-v3/include/std/iosfwd | 2 + libstdc++-v3/include/std/iostream | 2 + libstdc++-v3/include/std/istream | 2 + libstdc++-v3/include/std/iterator | 4 + libstdc++-v3/include/std/latch | 2 + libstdc++-v3/include/std/list | 2 + libstdc++-v3/include/std/locale | 2 + libstdc++-v3/include/std/map | 2 + libstdc++-v3/include/std/memory | 2 +- libstdc++-v3/include/std/memory_resource | 2 + libstdc++-v3/include/std/mutex | 2 + libstdc++-v3/include/std/numeric | 2 +- libstdc++-v3/include/std/ostream | 2 + libstdc++-v3/include/std/queue | 2 + libstdc++-v3/include/std/random | 2 + libstdc++-v3/include/std/regex | 2 + libstdc++-v3/include/std/semaphore | 2 + libstdc++-v3/include/std/set | 2 + libstdc++-v3/include/std/shared_mutex | 2 + libstdc++-v3/include/std/spanstream | 2 + libstdc++-v3/include/std/sstream | 2 + libstdc++-v3/include/std/stack | 2 + libstdc++-v3/include/std/stacktrace | 2 + libstdc++-v3/include/std/stop_token | 2 + libstdc++-v3/include/std/streambuf | 2 + libstdc++-v3/include/std/string | 2 + libstdc++-v3/include/std/syncstream | 2 + libstdc++-v3/include/std/system_error | 2 + libstdc++-v3/include/std/thread | 2 + libstdc++-v3/include/std/unordered_map | 2 + libstdc++-v3/include/std/unordered_set | 2 + libstdc++-v3/include/std/valarray | 2 + libstdc++-v3/include/std/vector | 2 + libstdc++-v3/include/std/version | 100 +-- libstdc++-v3/include/tr1/array | 2 + libstdc++-v3/include/tr1/ccomplex | 2 + libstdc++-v3/include/tr1/cctype | 2 + libstdc++-v3/include/tr1/cfenv | 2 + libstdc++-v3/include/tr1/cfloat | 2 + libstdc++-v3/include/tr1/cinttypes | 2 + libstdc++-v3/include/tr1/climits | 2 + libstdc++-v3/include/tr1/cmath | 2 + libstdc++-v3/include/tr1/complex | 2 + libstdc++-v3/include/tr1/complex.h | 2 + libstdc++-v3/include/tr1/cstdarg | 2 + libstdc++-v3/include/tr1/cstdbool | 2 + libstdc++-v3/include/tr1/cstdint | 2 + libstdc++-v3/include/tr1/cstdio | 2 + libstdc++-v3/include/tr1/cstdlib | 2 + libstdc++-v3/include/tr1/ctgmath | 2 + libstdc++-v3/include/tr1/ctime | 2 + libstdc++-v3/include/tr1/ctype.h | 2 + libstdc++-v3/include/tr1/cwchar | 2 + libstdc++-v3/include/tr1/cwctype | 2 + libstdc++-v3/include/tr1/fenv.h | 2 + libstdc++-v3/include/tr1/float.h | 2 + libstdc++-v3/include/tr1/functional | 2 + libstdc++-v3/include/tr1/inttypes.h | 2 + libstdc++-v3/include/tr1/limits.h | 2 + libstdc++-v3/include/tr1/math.h | 2 + libstdc++-v3/include/tr1/memory | 2 + libstdc++-v3/include/tr1/random | 2 + libstdc++-v3/include/tr1/regex | 2 + libstdc++-v3/include/tr1/stdarg.h | 2 + libstdc++-v3/include/tr1/stdbool.h | 2 + libstdc++-v3/include/tr1/stdint.h | 2 + libstdc++-v3/include/tr1/stdio.h | 2 + libstdc++-v3/include/tr1/stdlib.h | 2 + libstdc++-v3/include/tr1/tgmath.h | 2 + libstdc++-v3/include/tr1/tuple | 2 + libstdc++-v3/include/tr1/type_traits | 2 + libstdc++-v3/include/tr1/unordered_map | 2 + libstdc++-v3/include/tr1/unordered_set | 2 + libstdc++-v3/include/tr1/utility | 2 + libstdc++-v3/include/tr1/wchar.h | 2 + libstdc++-v3/include/tr1/wctype.h | 2 + .../17_intro/headers/c++1998/stdc++.cc | 2 + .../headers/c++1998/stdc++_assert_neg.cc | 1 + .../17_intro/tag_type_explicit_ctor.cc | 32 +- .../17_intro/using_namespace_std_exp_neg.cc | 53 +- .../17_intro/using_namespace_std_tr1_neg.cc | 53 +- .../18_support/aligned_alloc/aligned_alloc.cc | 1 + .../headers/cstdlib/functions_std.cc | 2 + .../testsuite/18_support/new_nothrow.cc | 1 + .../testsuite/20_util/allocator/105975.cc | 1 + .../testsuite/20_util/allocator/14176.cc | 2 + .../testsuite/20_util/allocator/64135.cc | 1 + .../testsuite/20_util/allocator/89510.cc | 1 + .../testsuite/20_util/allocator/lwg3190.cc | 1 + .../20_util/allocator/overaligned.cc | 1 + .../20_util/allocator/rebind_c++20.cc | 1 + .../allocator/requirements/constexpr.cc | 5 +- .../requirements/explicit_instantiation/1.cc | 1 + .../allocator/requirements/typedefs.cc | 1 + .../allocator/requirements/typedefs_c++20.cc | 5 +- .../testsuite/20_util/allocator/void.cc | 1 + .../20_util/allocator_traits/header-2.cc | 5 +- .../20_util/allocator_traits/header.cc | 5 +- .../allocator_traits/members/92878_92947.cc | 6 +- .../allocator_traits/members/pointers.cc | 1 + .../allocator_traits/members/rebind_alloc.cc | 2 + .../requirements/explicit_instantiation.cc | 2 + .../allocator_traits/requirements/typedefs.cc | 1 + .../cons_virtual_derivation.cc | 2 + libstdc++-v3/testsuite/20_util/bind/42593.cc | 2 + .../testsuite/20_util/bitset/access/dr396.cc | 2 + .../20_util/bitset/access/to_string.cc | 2 + .../20_util/bitset/access/to_ullong.cc | 2 + .../testsuite/20_util/bitset/cons/16020.cc | 2 + .../20_util/bitset/cons/constexpr_c++23.cc | 2 + .../testsuite/20_util/bitset/cons/dr1325-2.cc | 1 + .../testsuite/20_util/bitset/cons/dr396.cc | 2 + .../20_util/bitset/debug/invalidation/1.cc | 2 + .../testsuite/20_util/bitset/ext/15361.cc | 2 + .../testsuite/20_util/bitset/ext/constexpr.cc | 2 + .../20_util/bitset/operations/13838.cc | 2 + .../20_util/bitset/operations/96303.cc | 2 + .../testsuite/20_util/bitset/version.cc | 1 + .../20_util/enable_shared_from_this/56383.cc | 1 + .../20_util/enable_shared_from_this/89303.cc | 1 + .../enable_shared_from_this/members/assign.cc | 1 + .../enable_shared_from_this/members/const.cc | 1 + .../enable_shared_from_this/members/reinit.cc | 1 + .../members/unique_ptr.cc | 1 + .../members/weak_from_this.cc | 1 + .../requirements/explicit_instantiation.cc | 1 + libstdc++-v3/testsuite/20_util/forward/1.cc | 1 + .../testsuite/20_util/forward/1_neg.cc | 1 + libstdc++-v3/testsuite/20_util/function/1.cc | 2 + libstdc++-v3/testsuite/20_util/function/10.cc | 1 + libstdc++-v3/testsuite/20_util/function/2.cc | 2 + libstdc++-v3/testsuite/20_util/function/3.cc | 2 + libstdc++-v3/testsuite/20_util/function/4.cc | 2 + .../testsuite/20_util/function/43397.cc | 2 + .../testsuite/20_util/function/48541.cc | 2 + libstdc++-v3/testsuite/20_util/function/5.cc | 2 + .../testsuite/20_util/function/58569.cc | 2 + libstdc++-v3/testsuite/20_util/function/6.cc | 2 + .../testsuite/20_util/function/60594.cc | 1 + .../testsuite/20_util/function/65760.cc | 1 + .../testsuite/20_util/function/69222.cc | 1 + libstdc++-v3/testsuite/20_util/function/7.cc | 2 + .../testsuite/20_util/function/77322.cc | 1 + libstdc++-v3/testsuite/20_util/function/8.cc | 2 + libstdc++-v3/testsuite/20_util/function/9.cc | 2 + .../testsuite/20_util/function/91456.cc | 1 + .../testsuite/20_util/function/assign/move.cc | 1 + .../20_util/function/assign/move_target.cc | 1 + .../testsuite/20_util/function/cmp/cmp_neg.cc | 1 + .../testsuite/20_util/function/cons/55320.cc | 1 + .../testsuite/20_util/function/cons/57465.cc | 1 + .../testsuite/20_util/function/cons/70692.cc | 1 + .../testsuite/20_util/function/cons/72820.cc | 1 + .../20_util/function/cons/addressof.cc | 1 + .../20_util/function/cons/callable.cc | 1 + .../20_util/function/cons/deduction.cc | 1 + .../20_util/function/cons/deduction_c++23.cc | 1 + .../20_util/function/cons/lwg2774.cc | 2 + .../testsuite/20_util/function/cons/move.cc | 1 + .../20_util/function/cons/move_target.cc | 1 + .../20_util/function/cons/noexcept.cc | 2 + .../function/cons/non_copyconstructible.cc | 1 + .../20_util/function/cons/refqual.cc | 1 + .../20_util/function/invoke/forwarding.cc | 1 + .../20_util/function/invoke/move_only.cc | 1 + .../function/null_pointer_comparisons.cc | 1 + .../requirements/explicit_instantiation.cc | 1 + .../20_util/function/target_no_rtti.cc | 1 + .../20_util/function_objects/83607.cc | 1 + .../20_util/function_objects/mem_fn/adl.cc | 1 + .../20_util/headers/bitset/synopsis.cc | 2 + .../20_util/headers/cstdlib/functions_std.cc | 1 + .../headers/functional/types_std_c++0x.cc | 1 + .../20_util/headers/memory/types_std_c++0x.cc | 1 + .../testsuite/20_util/is_function/35637.cc | 1 + .../requirements/typedefs_neg.cc | 4 +- libstdc++-v3/testsuite/20_util/move/1.cc | 1 + .../20_util/move_only_function/call.cc | 1 + .../20_util/move_only_function/cons.cc | 1 + .../20_util/move_only_function/move.cc | 1 + .../20_util/move_only_function/version.cc | 1 + .../testsuite/20_util/owner_less/cmp.cc | 1 + .../testsuite/20_util/owner_less/noexcept.cc | 1 + .../testsuite/20_util/owner_less/void.cc | 1 + .../testsuite/20_util/pointer_safety/1.cc | 1 + .../pointer_traits/requirements/typedefs.cc | 2 + .../20_util/scoped_allocator/65279.cc | 2 + .../20_util/scoped_allocator/69293_neg.cc | 2 + .../scoped_allocator/construct_pair.cc | 1 + .../20_util/scoped_allocator/dr2586.cc | 2 + .../requirements/explicit_instantiation.cc | 2 + .../20_util/shared_ptr/assign/assign.cc | 1 + .../20_util/shared_ptr/assign/auto_ptr.cc | 1 + .../20_util/shared_ptr/assign/auto_ptr_neg.cc | 1 + .../shared_ptr/assign/auto_ptr_rvalue.cc | 1 + .../20_util/shared_ptr/assign/dr541.cc | 1 + .../20_util/shared_ptr/assign/move.cc | 1 + .../20_util/shared_ptr/assign/sfinae.cc | 1 + .../20_util/shared_ptr/assign/shared_ptr.cc | 1 + .../shared_ptr/assign/shared_ptr_neg.cc | 1 + .../assign/unique_ptr_lvalue_neg.cc | 1 + .../shared_ptr/assign/unique_ptr_rvalue.cc | 1 + .../testsuite/20_util/shared_ptr/atomic/1.cc | 1 + .../testsuite/20_util/shared_ptr/atomic/2.cc | 1 + .../testsuite/20_util/shared_ptr/casts/1.cc | 1 + .../20_util/shared_ptr/casts/reinterpret.cc | 1 + .../20_util/shared_ptr/casts/rval.cc | 1 + .../20_util/shared_ptr/comparison/42925.cc | 1 + .../20_util/shared_ptr/comparison/86537.cc | 1 + .../20_util/shared_ptr/comparison/cmp.cc | 1 + .../shared_ptr/comparison/cmp_c++20.cc | 1 + .../20_util/shared_ptr/comparison/dr1401.cc | 1 + .../20_util/shared_ptr/comparison/less.cc | 1 + .../20_util/shared_ptr/cons/39405.cc | 1 + .../20_util/shared_ptr/cons/43820_neg.cc | 1 + .../20_util/shared_ptr/cons/46910.cc | 1 + .../20_util/shared_ptr/cons/51365.cc | 1 + .../20_util/shared_ptr/cons/52924.cc | 1 + .../20_util/shared_ptr/cons/55123.cc | 1 + .../20_util/shared_ptr/cons/58659.cc | 1 + .../20_util/shared_ptr/cons/58839.cc | 1 + .../20_util/shared_ptr/cons/61036.cc | 1 + .../20_util/shared_ptr/cons/79467.cc | 1 + .../20_util/shared_ptr/cons/80229.cc | 1 + .../20_util/shared_ptr/cons/alias-rval.cc | 1 + .../20_util/shared_ptr/cons/alias.cc | 1 + .../20_util/shared_ptr/cons/array.cc | 1 + .../20_util/shared_ptr/cons/auto_ptr.cc | 1 + .../20_util/shared_ptr/cons/auto_ptr_neg.cc | 1 + .../testsuite/20_util/shared_ptr/cons/copy.cc | 1 + .../20_util/shared_ptr/cons/deduction.cc | 1 + .../20_util/shared_ptr/cons/default.cc | 1 + .../20_util/shared_ptr/cons/lwg2802.cc | 1 + .../20_util/shared_ptr/cons/lwg3548.cc | 1 + .../testsuite/20_util/shared_ptr/cons/move.cc | 1 + .../cons/noexcept_move_construct.cc | 1 + .../20_util/shared_ptr/cons/nullptr.cc | 1 + .../20_util/shared_ptr/cons/pointer.cc | 1 + .../20_util/shared_ptr/cons/unique_ptr.cc | 1 + .../shared_ptr/cons/unique_ptr_array.cc | 1 + .../shared_ptr/cons/unique_ptr_deleter.cc | 1 + .../cons/unique_ptr_deleter_ref_1.cc | 1 + .../cons/unique_ptr_deleter_ref_2.cc | 1 + .../20_util/shared_ptr/cons/void_neg.cc | 1 + .../20_util/shared_ptr/cons/weak_ptr.cc | 1 + .../20_util/shared_ptr/creation/36949.cc | 1 + .../shared_ptr/creation/58594-no-rtti.cc | 1 + .../20_util/shared_ptr/creation/58594.cc | 1 + .../20_util/shared_ptr/creation/87278.cc | 1 + .../shared_ptr/creation/92878_92947.cc | 1 + .../20_util/shared_ptr/creation/99006.cc | 1 + .../20_util/shared_ptr/creation/dr402.cc | 1 + .../20_util/shared_ptr/creation/dr925.cc | 1 + .../20_util/shared_ptr/creation/make.cc | 1 + .../20_util/shared_ptr/creation/no_rtti.cc | 1 + .../20_util/shared_ptr/creation/overwrite.cc | 1 + .../20_util/shared_ptr/creation/private.cc | 1 + .../shared_ptr/creation/single_allocation.cc | 1 + .../creation/single_allocation_no_rtti.cc | 1 + .../20_util/shared_ptr/creation/version.cc | 1 + .../testsuite/20_util/shared_ptr/dest/dest.cc | 1 + .../testsuite/20_util/shared_ptr/hash/1.cc | 1 + .../20_util/shared_ptr/misc/24595.cc | 1 + .../20_util/shared_ptr/misc/42019.cc | 1 + .../20_util/shared_ptr/misc/get_deleter.cc | 1 + .../testsuite/20_util/shared_ptr/misc/swap.cc | 1 + .../20_util/shared_ptr/modifiers/reset.cc | 1 + .../20_util/shared_ptr/modifiers/reset_neg.cc | 1 + .../shared_ptr/modifiers/reset_sfinae.cc | 1 + .../20_util/shared_ptr/modifiers/swap.cc | 1 + .../20_util/shared_ptr/modifiers/swap_neg.cc | 1 + .../20_util/shared_ptr/observers/array.cc | 1 + .../20_util/shared_ptr/observers/bool_conv.cc | 1 + .../20_util/shared_ptr/observers/get.cc | 1 + .../shared_ptr/observers/owner_before.cc | 1 + .../20_util/shared_ptr/observers/unique.cc | 1 + .../20_util/shared_ptr/observers/use_count.cc | 1 + .../requirements/explicit_instantiation/1.cc | 1 + .../requirements/explicit_instantiation/2.cc | 1 + .../shared_ptr/requirements/weak_type.cc | 1 + .../construct_at/95788.cc | 2 + .../testsuite/20_util/temporary_buffer.cc | 2 + libstdc++-v3/testsuite/20_util/tuple/48476.cc | 1 + .../testsuite/20_util/tuple/cons/90700.cc | 2 + .../testsuite/20_util/tuple/cons/96803.cc | 2 + .../20_util/tuple/cons/allocator_with_any.cc | 2 + .../20_util/tuple/cons/allocators.cc | 2 + .../tuple/cons/constexpr_allocator_arg_t.cc | 2 + .../testsuite/20_util/tuple/cons/deduction.cc | 2 + .../20_util/tuple/cons/explicit_construct.cc | 2 + .../testsuite/20_util/tuple/p2321r2.cc | 2 + .../unique_ptr/creation/92878_92947.cc | 1 + .../20_util/unique_ptr/creation/array.cc | 1 + .../20_util/unique_ptr/creation/array_neg.cc | 1 + .../20_util/unique_ptr/creation/constexpr.cc | 1 + .../unique_ptr/creation/for_overwrite.cc | 1 + .../unique_ptr/creation/for_overwrite__neg.cc | 1 + .../20_util/unique_ptr/creation/single.cc | 1 + .../20_util/uses_allocator/69293_neg.cc | 2 + .../20_util/uses_allocator/92878_92947.cc | 1 + .../uses_allocator/uninitialized_construct.cc | 2 + .../20_util/weak_ptr/comparison/cmp_neg.cc | 1 + .../20_util/weak_ptr/cons/deduction.cc | 1 + .../weak_ptr/cons/noexcept_move_construct.cc | 1 + .../testsuite/20_util/weak_ptr/lock/1.cc | 1 + .../weak_ptr/observers/owner_before.cc | 1 + .../requirements/explicit_instantiation/1.cc | 1 + .../requirements/explicit_instantiation/2.cc | 1 + .../21_strings/basic_string/version.cc | 1 + .../operations/contains/char/2.cc | 1 + .../21_strings/c_strings/char/69626.cc | 1 + .../char_traits/requirements/version.cc | 1 + .../vector/requirements/version.cc | 1 + .../requirements/base_classes.cc | 2 + .../requirements/base_classes.cc | 2 + .../requirements/base_classes.cc | 2 + .../requirements/base_classes.cc | 2 + .../24_iterators/istreambuf_iterator/92285.cc | 2 + .../istreambuf_iterator/cons/sentinel.cc | 1 + .../requirements/base_classes.cc | 2 + .../istreambuf_iterator/requirements/dr445.cc | 1 + .../requirements/base_classes.cc | 2 + .../requirements/base_classes.cc | 2 + .../25_algorithms/constexpr_macro.cc | 1 + .../25_algorithms/equal/constrained.cc | 1 + .../headers/cstdlib/functions_std.cc | 1 + .../25_algorithms/inplace_merge/1.cc | 3 + .../lexicographical_compare/constrained.cc | 1 + .../25_algorithms/make_heap/movable.cc | 1 + .../testsuite/25_algorithms/move/93872.cc | 1 + .../25_algorithms/pstl/feature_test-4.cc | 1 + .../25_algorithms/random_shuffle/1.cc | 1 + .../25_algorithms/random_shuffle/moveable.cc | 1 + .../requirements/explicit_instantiation/2.cc | 1 + .../testsuite/25_algorithms/sort/35588.cc | 3 + .../25_algorithms/stable_partition/1.cc | 3 + .../stable_partition/constrained.cc | 3 + .../stable_partition/mem_check.cc | 3 + .../stable_partition/moveable.cc | 3 + .../requirements/explicit_instantiation/2.cc | 1 + .../explicit_instantiation/pod.cc | 3 + .../testsuite/25_algorithms/stable_sort/1.cc | 3 + .../testsuite/26_numerics/complex/2.cc | 1 + .../26_numerics/headers/cstdlib/13943.cc | 2 + .../26_numerics/headers/cstdlib/2190.cc | 3 + .../26_numerics/headers/cstdlib/60401.cc | 1 + .../26_numerics/headers/cstdlib/dr2192.cc | 2 + .../26_numerics/headers/cstdlib/dr2192_neg.cc | 3 + .../26_numerics/headers/cstdlib/dr2735.cc | 1 + .../headers/cstdlib/functions_std.cc | 3 + .../26_numerics/headers/cstdlib/macros.cc | 3 + .../26_numerics/headers/cstdlib/types_std.cc | 3 + .../headers/cstdlib/types_std_c++0x.cc | 3 + .../testsuite/26_numerics/lerp/version.cc | 1 + .../testsuite/26_numerics/midpoint/version.cc | 1 + .../testsuite/27_io/basic_syncbuf/2.cc | 1 + .../testsuite/27_io/basic_syncstream/2.cc | 1 + libstdc++-v3/testsuite/27_io/fpos/14320-1.cc | 1 + libstdc++-v3/testsuite/27_io/fpos/14320-2.cc | 2 + libstdc++-v3/testsuite/27_io/fpos/14320-3.cc | 2 + libstdc++-v3/testsuite/27_io/fpos/14320-4.cc | 2 + .../testsuite/27_io/spanstream/version.cc | 1 + .../testsuite/29_atomics/atomic/lwg3220.cc | 4 + .../29_atomics/atomic/operators/51811.cc | 3 + .../29_atomics/atomic/wait_notify/1.cc | 1 + .../29_atomics/atomic/wait_notify/102994.cc | 1 + .../29_atomics/atomic/wait_notify/2.cc | 1 + .../29_atomics/headers/stdatomic.h/version.cc | 3 + .../testsuite/30_threads/barrier/2.cc | 1 + .../condition_variable_any/stop_token/2.cc | 1 + .../testsuite/30_threads/jthread/version.cc | 1 + libstdc++-v3/testsuite/30_threads/latch/2.cc | 1 + .../testsuite/30_threads/semaphore/2.cc | 1 + .../testsuite/30_threads/stop_token/2.cc | 1 + libstdc++-v3/testsuite/abi/pr42230.cc | 1 + libstdc++-v3/testsuite/ext/shared_ptr/1.cc | 1 + libstdc++-v3/testsuite/lib/libstdc++.exp | 14 +- libstdc++-v3/testsuite/lib/prune.exp | 4 + libstdc++-v3/testsuite/libstdc++-abi/abi.exp | 2 +- .../testsuite/std/ranges/adaptors/100577.cc | 11 +- .../std/ranges/adaptors/lazy_split_neg.cc | 1 + .../testsuite/std/ranges/adaptors/p1739.cc | 2 + .../testsuite/std/ranges/iota/lwg3292_neg.cc | 1 + libstdc++-v3/testsuite/std/ranges/p2325.cc | 1 + 496 files changed, 1588 insertions(+), 653 deletions(-) create mode 100644 gcc/testsuite/g++.dg/freestanding-main-implicitly-returns.C create mode 100644 gcc/testsuite/g++.dg/no-builtin-main.C create mode 100644 gcc/testsuite/gcc.dg/freestanding-main-implicitly-returns.c create mode 100644 gcc/testsuite/gcc.dg/no-builtin-main.c create mode 100644 libstdc++-v3/include/bits/requires_hosted.h -- 2.37.3