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