From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 06B023858005 for ; Mon, 11 Sep 2023 16:35:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 06B023858005 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1694450137; 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=oODF1JatEdf+O8DdyQ018nt1YS3Id6OxK/Sy/QPeXa0=; b=ZLtBsLEiYAx4OdlK3fe4FdWIgCz6YtIyFj6H2QrSLjf4D9zSBmAlZvspS4UpwBbwcHazxG int2fuqVOGDuyaQwc1PgJn7+PzGAbXKWCPYpINA+gtKxHJCg3QsoPhjQun5oSAQgG/Ov/L c8ly9DQgxVDsV8eOWlWoSB6BWtVIa94= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-413-62MyL-FvOYWD_azRbhnQ4Q-1; Mon, 11 Sep 2023 12:35:35 -0400 X-MC-Unique: 62MyL-FvOYWD_azRbhnQ4Q-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8A0473813F28; Mon, 11 Sep 2023 16:35:35 +0000 (UTC) Received: from localhost (unknown [10.42.28.190]) by smtp.corp.redhat.com (Postfix) with ESMTP id 11BA52156701; Mon, 11 Sep 2023 16:35:34 +0000 (UTC) From: Jonathan Wakely To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: [PATCH 00/13] libstdc++: Add support for running tests with multiple -std options Date: Mon, 11 Sep 2023 17:16:31 +0100 Message-ID: <20230911163534.1913512-1-jwakely@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,URI_HEX autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This patch series replicates the behaviour of the g++ testsuite, so that libstdc++ tests can easily be run for multiple different -std options in a single testsuite run. As described in the updated docs, the -std options to use for every test can be overridden by setting v3_std_list in ~/.dejagnurc or $DEJAGNU, or setting $GLIBCXX_TESTSUITE_STDS in the environment. If not overridden, the default is just to run with -std=gnu++17 (so that we don't increase the time taken for a full testsuite run). Tests that require a newer standard than C++17 will default to that newer standard and C++26, so e.g. std::format tests will be run with both -std=gnu++20 and -std=gnu++26. This does increase the number of tests, but only for the subset of tests for C++20/23/26 features. If this is too costly for testers, we can change that (this might be needed, because the C++20 tests for std::ranges and std::format are particularly slow to compile). Because a correct default will be chosen for tests that require something newer than C++17, we no longer need dg-options "-std=gnu++20" or similar in any tests. Removing the explicit -std option allows the test to be run for later standards via the v3_std_list settings, so that we can verify that C++20 features still work in C++23 and C++26, for example. This change already found some tests which failed when run with a later standard (see r14-3771-gf12e26f3496275). Patches 2-13 in the series remove those unnecessary dg-options from about half the relevant tests, but there are more than 500 others that still need adjusting. We can remove files like testsuite/std/format/functions/format_c++23.cc which only exist to duplicate existing tests with a different -std option. We can remove that file now, and rely on format.cc being run with multiple -std options by libstdc++ maintainers. It might also be useful to add a 'make check-quick' target which runs a small subset of smoke tests with every standard version in v3_std_list. This would be a suitable target for CI bots and for packagers who want to verify that a build of GCC is functional, without running the entire libstdc++ testsuite. Any comments or suggestions? -- >8 -- Jonathan Wakely (13): libstdc++: Add support for running tests with multiple -std options libstdc++: Replace dg-options "-std=c++11" with dg-add-options strict_std libstdc++: Replace dg-options "-std=c++17" with dg-add-options strict_std libstdc++: Replace dg-options "-std=c++20" with dg-add-options strict_std libstdc++: Remove dg-options "-std=c++20" from and tests libstdc++: Remove dg-options "-std=gnu++20" from and tests libstdc++: Remove dg-options "-std=gnu++2a" from constrained algo tests libstdc++: Remove dg-options "-std=gnu++20" from std::format tests libstdc++: Remove dg-options "-std=gnu++20" from std::chrono tests libstdc++: Remove dg-options "-std=gnu++23" from std::expected tests libstdc++: Remove dg-options "-std=gnu++23" from remaining tests libstdc++: Remove dg-options "-std=gnu++2a" from XFAIL std::span tests libstdc++: Simplify dejagnu directives for some tests using threads libstdc++-v3/doc/html/manual/test.html | 46 +++++--- libstdc++-v3/doc/xml/manual/test.xml | 52 ++++++--- .../headers/limits/synopsis_cxx23.cc | 1 - .../18_support/headers/stdfloat/types_std.cc | 1 - .../18_support/type_info/constexpr.cc | 2 +- .../19_diagnostics/stacktrace/current.cc | 2 +- .../19_diagnostics/stacktrace/entry.cc | 2 +- .../19_diagnostics/stacktrace/stacktrace.cc | 2 +- .../19_diagnostics/stacktrace/synopsis.cc | 1 - .../19_diagnostics/stacktrace/version.cc | 1 - .../20_util/aligned_storage/deprecated-2b.cc | 1 - .../20_util/aligned_union/deprecated-2b.cc | 1 - .../20_util/bitset/access/constexpr.cc | 1 - .../20_util/bitset/cons/constexpr_c++23.cc | 1 - .../20_util/bitset/count/constexpr.cc | 1 - .../testsuite/20_util/bitset/ext/constexpr.cc | 1 - .../bitset/operations/constexpr_c++23.cc | 1 - .../testsuite/20_util/bitset/version.cc | 1 - .../duration/arithmetic/overflow_c++20.cc | 1 - libstdc++-v3/testsuite/20_util/duration/io.cc | 1 - .../testsuite/20_util/expected/assign.cc | 1 - .../testsuite/20_util/expected/bad.cc | 1 - .../testsuite/20_util/expected/cons.cc | 1 - .../testsuite/20_util/expected/equality.cc | 1 - .../20_util/expected/illformed_neg.cc | 1 - .../testsuite/20_util/expected/lwg3877.cc | 1 - .../testsuite/20_util/expected/lwg3938.cc | 1 - .../testsuite/20_util/expected/monadic.cc | 1 - .../testsuite/20_util/expected/observers.cc | 1 - .../20_util/expected/requirements.cc | 1 - .../testsuite/20_util/expected/swap.cc | 1 - .../testsuite/20_util/expected/synopsis.cc | 1 - .../testsuite/20_util/expected/unexpected.cc | 1 - .../testsuite/20_util/expected/version.cc | 1 - .../testsuite/20_util/from_chars/8.cc | 1 - .../testsuite/20_util/from_chars/constexpr.cc | 1 - .../20_util/function/cons/deduction_c++23.cc | 1 - .../20_util/function_objects/invoke/4.cc | 1 - .../function_objects/invoke/dangling_ref.cc | 1 - .../function_objects/range.cmp/equal_to.cc | 3 +- .../function_objects/range.cmp/greater.cc | 3 +- .../range.cmp/greater_equal.cc | 3 +- .../function_objects/range.cmp/less.cc | 3 +- .../function_objects/range.cmp/less_equal.cc | 3 +- .../function_objects/range.cmp/lwg3530.cc | 1 - .../range.cmp/not_equal_to.cc | 3 +- .../testsuite/20_util/is_scoped_enum/value.cc | 1 - .../20_util/is_scoped_enum/version.cc | 1 - .../20_util/move_only_function/call.cc | 1 - .../20_util/move_only_function/cons.cc | 1 - .../20_util/move_only_function/move.cc | 1 - .../20_util/move_only_function/version.cc | 1 - .../20_util/optional/monadic/and_then.cc | 1 - .../20_util/optional/monadic/or_else.cc | 1 - .../20_util/optional/monadic/or_else_neg.cc | 1 - .../20_util/optional/monadic/pr109242.cc | 1 - .../20_util/optional/monadic/transform.cc | 1 - .../testsuite/20_util/pair/p2321r2.cc | 1 - .../20_util/reference_from_temporary/value.cc | 1 - .../reference_from_temporary/value2.cc | 1 - .../reference_from_temporary/version.cc | 1 - .../testsuite/20_util/shared_ptr/atomic/3.cc | 3 +- .../shared_ptr/thread/default_weaktoshared.cc | 3 +- .../shared_ptr/thread/mutex_weaktoshared.cc | 3 +- .../specialized_algorithms/construct_at/1.cc | 3 +- .../construct_at/92878_92947.cc | 3 +- .../construct_at/95788.cc | 3 +- .../destroy/constrained.cc | 3 +- .../uninitialized_copy/constrained.cc | 3 +- .../constrained.cc | 3 +- .../uninitialized_fill/94017.cc | 3 +- .../uninitialized_fill/constrained.cc | 3 +- .../uninitialized_fill_n/94017.cc | 3 +- .../uninitialized_move/constrained.cc | 3 +- .../constrained.cc | 3 +- .../synchronized_pool_resource/allocate.cc | 6 +- .../allocate_single.cc | 3 +- .../synchronized_pool_resource/cons.cc | 6 +- .../synchronized_pool_resource/cons_single.cc | 3 +- .../synchronized_pool_resource/is_equal.cc | 6 +- .../multithreaded.cc | 6 +- .../synchronized_pool_resource/options.cc | 6 +- .../synchronized_pool_resource/release.cc | 6 +- .../release_single.cc | 3 +- .../testsuite/20_util/to_chars/constexpr.cc | 1 - .../20_util/to_chars/float128_c++23.cc | 1 - .../20_util/to_chars/float16_c++23.cc | 1 - .../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/p2321r2.cc | 1 - .../20_util/unique_ptr/assign/constexpr.cc | 1 - .../unique_ptr/comparison/constexpr.cc | 1 - .../unique_ptr/cons/constexpr_c++20.cc | 1 - .../20_util/unique_ptr/creation/constexpr.cc | 1 - .../20_util/unique_ptr/modifiers/constexpr.cc | 1 - .../specialized_algorithms/constexpr.cc | 1 - .../testsuite/20_util/unreachable/1.cc | 1 - .../testsuite/20_util/unreachable/version.cc | 1 - .../20_util/uses_allocator/lwg3677.cc | 1 - .../capacity/char/resize_and_overwrite.cc | 1 - .../basic_string/operations/contains/char.cc | 1 - .../operations/contains/nonnull.cc | 2 +- .../operations/contains/wchar_t.cc | 1 - .../cons/char/range_c++20.cc | 1 - .../cons/wchar_t/range_c++20.cc | 1 - .../operations/contains/char.cc | 1 - .../operations/contains/char/2.cc | 1 - .../operations/contains/nonnull.cc | 2 +- .../operations/contains/wchar_t.cc | 1 - .../headers/cuchar/functions_std_cxx20.cc | 1 - .../23_containers/deque/48101-2_neg.cc | 4 +- .../23_containers/forward_list/48101-2_neg.cc | 4 +- .../23_containers/list/48101-2_neg.cc | 4 +- .../23_containers/map/48101-2_neg.cc | 4 +- .../testsuite/23_containers/map/48101_neg.cc | 3 +- .../23_containers/multimap/48101-2_neg.cc | 4 +- .../23_containers/multimap/48101_neg.cc | 3 +- .../23_containers/multiset/48101-2_neg.cc | 4 +- .../23_containers/queue/cons_from_iters.cc | 1 - .../23_containers/set/48101-2_neg.cc | 4 +- .../23_containers/span/back_assert_neg.cc | 5 +- .../testsuite/23_containers/span/back_neg.cc | 3 +- .../23_containers/span/cons_1_assert_neg.cc | 5 +- .../23_containers/span/cons_2_assert_neg.cc | 5 +- .../span/contiguous_range_neg.cc | 3 +- .../23_containers/span/everything.cc | 3 +- .../23_containers/span/first_2_assert_neg.cc | 5 +- .../23_containers/span/first_assert_neg.cc | 5 +- .../testsuite/23_containers/span/first_neg.cc | 3 +- .../23_containers/span/front_assert_neg.cc | 5 +- .../testsuite/23_containers/span/front_neg.cc | 3 +- .../23_containers/span/index_op_assert_neg.cc | 5 +- .../23_containers/span/index_op_neg.cc | 3 +- .../23_containers/span/last_2_assert_neg.cc | 5 +- .../23_containers/span/last_assert_neg.cc | 5 +- .../testsuite/23_containers/span/last_neg.cc | 3 +- .../span/subspan_2_assert_neg.cc | 5 +- .../span/subspan_3_assert_neg.cc | 5 +- .../span/subspan_4_assert_neg.cc | 5 +- .../span/subspan_5_assert_neg.cc | 5 +- .../span/subspan_6_assert_neg.cc | 5 +- .../23_containers/span/subspan_assert_neg.cc | 5 +- .../23_containers/span/subspan_neg.cc | 3 +- .../23_containers/stack/cons_from_iters.cc | 1 - .../unordered_map/48101-2_neg.cc | 4 +- .../unordered_multimap/48101-2_neg.cc | 4 +- .../unordered_multiset/48101-2_neg.cc | 4 +- .../unordered_set/48101-2_neg.cc | 4 +- .../23_containers/vector/48101-2_neg.cc | 4 +- .../vector/bool/element_access/1.cc | 1 - .../24_iterators/const_iterator/1.cc | 1 - .../range_operations/advance_debug_neg.cc | 5 +- .../24_iterators/reverse_iterator/100639.cc | 4 +- .../25_algorithms/adjacent_find/constexpr.cc | 3 +- .../adjacent_find/constrained.cc | 3 +- .../25_algorithms/all_of/constexpr.cc | 3 +- .../25_algorithms/all_of/constrained.cc | 3 +- .../25_algorithms/any_of/constexpr.cc | 3 +- .../25_algorithms/any_of/constrained.cc | 3 +- .../25_algorithms/binary_search/constexpr.cc | 3 +- .../binary_search/constrained.cc | 3 +- .../25_algorithms/clamp/constrained.cc | 3 +- .../25_algorithms/constexpr_macro.cc | 3 +- .../testsuite/25_algorithms/contains/1.cc | 1 - .../25_algorithms/contains_subrange/1.cc | 1 - .../testsuite/25_algorithms/copy/95578.cc | 3 +- .../testsuite/25_algorithms/copy/constexpr.cc | 3 +- .../25_algorithms/copy/constrained.cc | 3 +- .../25_algorithms/copy/debug/constexpr_neg.cc | 3 +- .../25_algorithms/copy_backward/95578.cc | 3 +- .../25_algorithms/copy_backward/constexpr.cc | 3 +- .../copy_backward/constrained.cc | 3 +- .../copy_backward/debug/constexpr_neg.cc | 3 +- .../25_algorithms/copy_if/constexpr.cc | 3 +- .../25_algorithms/copy_if/constrained.cc | 3 +- .../25_algorithms/copy_n/constexpr.cc | 3 +- .../25_algorithms/copy_n/constrained.cc | 3 +- .../25_algorithms/count/constexpr.cc | 3 +- .../25_algorithms/count/constrained.cc | 3 +- .../25_algorithms/count_if/constexpr.cc | 3 +- .../25_algorithms/count_if/constrained.cc | 3 +- .../25_algorithms/cpp_lib_constexpr.cc | 3 +- .../testsuite/25_algorithms/equal/95578.cc | 3 +- .../25_algorithms/equal/constexpr.cc | 3 +- .../25_algorithms/equal/constexpr_neg.cc | 3 +- .../25_algorithms/equal/constrained.cc | 3 +- .../equal/debug/constexpr_neg.cc | 3 +- .../25_algorithms/equal_range/constexpr.cc | 3 +- .../25_algorithms/equal_range/constrained.cc | 3 +- .../testsuite/25_algorithms/fill/94017.cc | 3 +- .../testsuite/25_algorithms/fill/constexpr.cc | 3 +- .../25_algorithms/fill/constrained.cc | 3 +- .../testsuite/25_algorithms/fill_n/94017.cc | 3 +- .../25_algorithms/fill_n/constexpr.cc | 3 +- .../25_algorithms/fill_n/constrained.cc | 3 +- .../testsuite/25_algorithms/find/constexpr.cc | 3 +- .../25_algorithms/find/constrained.cc | 3 +- .../25_algorithms/find_end/constexpr.cc | 3 +- .../25_algorithms/find_end/constrained.cc | 3 +- .../25_algorithms/find_first_of/constexpr.cc | 3 +- .../find_first_of/constrained.cc | 3 +- .../25_algorithms/find_if/constexpr.cc | 3 +- .../25_algorithms/find_if/constrained.cc | 3 +- .../25_algorithms/find_if_not/constexpr.cc | 3 +- .../25_algorithms/find_if_not/constrained.cc | 3 +- .../testsuite/25_algorithms/find_last/1.cc | 1 - .../testsuite/25_algorithms/find_last_if/1.cc | 1 - .../25_algorithms/find_last_if_not/1.cc | 1 - .../testsuite/25_algorithms/fold_left/1.cc | 1 - .../testsuite/25_algorithms/fold_right/1.cc | 1 - .../25_algorithms/for_each/constexpr.cc | 3 +- .../25_algorithms/for_each/constrained.cc | 3 +- .../25_algorithms/generate/constexpr.cc | 3 +- .../25_algorithms/generate/constrained.cc | 3 +- .../25_algorithms/generate_n/constexpr.cc | 3 +- .../25_algorithms/generate_n/constrained.cc | 3 +- .../25_algorithms/heap/constrained.cc | 3 +- .../25_algorithms/includes/constrained.cc | 3 +- .../inplace_merge/constrained.cc | 3 +- .../testsuite/25_algorithms/iota/1.cc | 1 - .../25_algorithms/is_heap/constexpr.cc | 3 +- .../25_algorithms/is_heap_until/constexpr.cc | 3 +- .../25_algorithms/is_partitioned/constexpr.cc | 3 +- .../is_partitioned/constrained.cc | 3 +- .../25_algorithms/is_permutation/constexpr.cc | 3 +- .../is_permutation/constrained.cc | 3 +- .../25_algorithms/is_sorted/constexpr.cc | 3 +- .../25_algorithms/is_sorted/constrained.cc | 3 +- .../is_sorted_until/constexpr.cc | 3 +- .../is_sorted_until/constrained.cc | 3 +- .../25_algorithms/iter_swap/constexpr.cc | 3 +- .../lexicographical_compare/93972.cc | 3 +- .../lexicographical_compare/95578.cc | 3 +- .../lexicographical_compare/constexpr.cc | 3 +- .../lexicographical_compare/constrained.cc | 3 +- .../lexicographical_compare_three_way/1.cc | 3 +- .../constexpr.cc | 3 +- .../25_algorithms/lower_bound/constexpr.cc | 3 +- .../25_algorithms/lower_bound/constrained.cc | 3 +- .../debug/constexpr_partitioned_neg.cc | 3 +- .../debug/constexpr_partitioned_pred_neg.cc | 3 +- .../debug/constexpr_valid_range_neg.cc | 3 +- .../25_algorithms/make_heap/constexpr.cc | 3 +- .../25_algorithms/max/constrained.cc | 3 +- .../25_algorithms/max_element/constrained.cc | 3 +- .../25_algorithms/merge/constexpr.cc | 3 +- .../25_algorithms/merge/constrained.cc | 3 +- .../25_algorithms/min/constrained.cc | 3 +- .../25_algorithms/min_element/constrained.cc | 3 +- .../25_algorithms/minmax/constrained.cc | 3 +- .../minmax_element/constrained.cc | 3 +- .../25_algorithms/mismatch/constexpr.cc | 3 +- .../25_algorithms/mismatch/constrained.cc | 3 +- .../testsuite/25_algorithms/move/93872.cc | 3 +- .../testsuite/25_algorithms/move/95578.cc | 3 +- .../testsuite/25_algorithms/move/constexpr.cc | 1 - .../25_algorithms/move/constrained.cc | 3 +- .../25_algorithms/move_backward/93872.cc | 3 +- .../25_algorithms/move_backward/95578.cc | 3 +- .../move_backward/constrained.cc | 3 +- .../next_permutation/constexpr.cc | 3 +- .../next_permutation/constrained.cc | 3 +- .../25_algorithms/none_of/constexpr.cc | 3 +- .../25_algorithms/none_of/constrained.cc | 3 +- .../25_algorithms/nth_element/constexpr.cc | 3 +- .../25_algorithms/nth_element/constrained.cc | 3 +- .../25_algorithms/partial_sort/constexpr.cc | 3 +- .../25_algorithms/partial_sort/constrained.cc | 3 +- .../partial_sort_copy/constexpr.cc | 3 +- .../partial_sort_copy/constrained.cc | 3 +- .../25_algorithms/partition/constexpr.cc | 3 +- .../25_algorithms/partition/constrained.cc | 3 +- .../25_algorithms/partition_copy/constexpr.cc | 3 +- .../partition_copy/constrained.cc | 3 +- .../partition_point/constexpr.cc | 3 +- .../partition_point/constrained.cc | 3 +- .../25_algorithms/pop_heap/constexpr.cc | 3 +- .../prev_permutation/constexpr.cc | 3 +- .../prev_permutation/constrained.cc | 3 +- .../25_algorithms/push_heap/constexpr.cc | 3 +- .../25_algorithms/remove/constexpr.cc | 3 +- .../25_algorithms/remove/constrained.cc | 3 +- .../25_algorithms/remove_copy/constexpr.cc | 3 +- .../25_algorithms/remove_copy/constrained.cc | 3 +- .../25_algorithms/remove_copy_if/constexpr.cc | 3 +- .../remove_copy_if/constrained.cc | 3 +- .../25_algorithms/remove_if/constexpr.cc | 3 +- .../25_algorithms/remove_if/constrained.cc | 3 +- .../25_algorithms/replace/constrained.cc | 3 +- .../25_algorithms/replace_copy/constexpr.cc | 3 +- .../25_algorithms/replace_copy/constrained.cc | 3 +- .../replace_copy_if/constexpr.cc | 3 +- .../replace_copy_if/constrained.cc | 3 +- .../25_algorithms/replace_if/constexpr.cc | 3 +- .../25_algorithms/replace_if/constrained.cc | 3 +- .../25_algorithms/reverse/constexpr.cc | 3 +- .../25_algorithms/reverse/constrained.cc | 3 +- .../25_algorithms/reverse_copy/constexpr.cc | 3 +- .../25_algorithms/reverse_copy/constrained.cc | 3 +- .../25_algorithms/rotate/constexpr.cc | 3 +- .../25_algorithms/rotate/constrained.cc | 3 +- .../25_algorithms/rotate_copy/constexpr.cc | 3 +- .../25_algorithms/rotate_copy/constrained.cc | 3 +- .../25_algorithms/sample/constrained.cc | 3 +- .../25_algorithms/search/constexpr.cc | 3 +- .../25_algorithms/search/constrained.cc | 3 +- .../testsuite/25_algorithms/search_n/97828.cc | 3 +- .../25_algorithms/search_n/constexpr.cc | 3 +- .../25_algorithms/search_n/constrained.cc | 3 +- .../25_algorithms/set_difference/constexpr.cc | 3 +- .../set_difference/constrained.cc | 3 +- .../set_intersection/constexpr.cc | 3 +- .../set_intersection/constrained.cc | 3 +- .../set_symmetric_difference/constexpr.cc | 3 +- .../set_symmetric_difference/constrained.cc | 3 +- .../25_algorithms/set_union/constexpr.cc | 3 +- .../25_algorithms/set_union/constrained.cc | 3 +- .../testsuite/25_algorithms/shift_left/1.cc | 3 +- .../testsuite/25_algorithms/shift_right/1.cc | 3 +- .../25_algorithms/shuffle/constrained.cc | 3 +- .../testsuite/25_algorithms/sort/constexpr.cc | 3 +- .../25_algorithms/sort/constrained.cc | 3 +- .../25_algorithms/sort_heap/constexpr.cc | 3 +- .../stable_partition/constrained.cc | 3 +- .../25_algorithms/stable_sort/constrained.cc | 3 +- .../testsuite/25_algorithms/swap/constexpr.cc | 3 +- .../25_algorithms/swap_ranges/constexpr.cc | 3 +- .../25_algorithms/swap_ranges/constrained.cc | 3 +- .../25_algorithms/transform/constexpr.cc | 3 +- .../25_algorithms/transform/constrained.cc | 3 +- .../25_algorithms/unique/constexpr.cc | 3 +- .../25_algorithms/unique/constrained.cc | 3 +- .../25_algorithms/unique_copy/constexpr.cc | 3 +- .../25_algorithms/unique_copy/constrained.cc | 3 +- .../25_algorithms/upper_bound/constexpr.cc | 3 +- .../25_algorithms/upper_bound/constrained.cc | 3 +- .../debug/constexpr_partitioned_neg.cc | 3 +- .../debug/constexpr_partitioned_pred_neg.cc | 3 +- .../debug/constexpr_valid_range_neg.cc | 3 +- .../26_numerics/bit/bit.byteswap/byteswap.cc | 1 - .../26_numerics/bit/bit.byteswap/version.cc | 1 - .../26_numerics/complex/ext_c++23.cc | 1 - .../cmath/c99_classification_macros_c++23.cc | 1 - .../headers/cmath/constexpr_std_c++23.cc | 1 - .../headers/cmath/functions_std_c++23.cc | 1 - .../headers/cmath/nextafter_c++23.cc | 1 - .../testsuite/26_numerics/numbers/4.cc | 1 - .../inserters_other/char/volatile_ptr.cc | 2 +- .../filesystem/path/native/conv_c++23.cc | 1 - libstdc++-v3/testsuite/27_io/spanstream/1.cc | 1 - libstdc++-v3/testsuite/27_io/spanstream/2.cc | 1 - .../testsuite/27_io/spanstream/version.cc | 1 - .../atomic_float/requirements_cxx23.cc | 1 - .../headers/stdatomic.h/c_compat.cc | 1 - .../29_atomics/headers/stdatomic.h/version.cc | 1 - .../stop_token/wait_on.cc | 6 +- .../packaged_task/cons/deduction_c++23.cc | 1 - .../stop_token/stop_callback/deadlock-mt.cc | 5 +- .../stop_token/stop_callback/destroy.cc | 5 +- libstdc++-v3/testsuite/Makefile.am | 1 + libstdc++-v3/testsuite/Makefile.in | 1 + .../filesystem/path/native/conv_c++23.cc | 1 - libstdc++-v3/testsuite/lib/dg-options.exp | 7 ++ libstdc++-v3/testsuite/lib/libstdc++.exp | 107 ++++++++++++++++++ .../testsuite/libstdc++-dg/conformance.exp | 3 +- libstdc++-v3/testsuite/std/concepts/1.cc | 3 +- libstdc++-v3/testsuite/std/concepts/2.cc | 3 +- .../concepts/concepts.callable/invocable.cc | 3 +- .../concepts.callable/regular_invocable.cc | 3 +- .../concepts/concepts.callable/relation.cc | 3 +- .../concepts.callable/strictweakorder.cc | 3 +- .../concept.arithmetic/floating_point.cc | 3 +- .../concept.arithmetic/integral.cc | 3 +- .../concept.arithmetic/signed_integral.cc | 3 +- .../concept.arithmetic/unsigned_integral.cc | 3 +- .../concepts.lang/concept.assignable/1.cc | 3 +- .../concepts.lang/concept.common/1.cc | 3 +- .../concepts.lang/concept.commonref/1.cc | 3 +- .../concepts.lang/concept.constructible/1.cc | 3 +- .../concepts.lang/concept.convertible/1.cc | 3 +- .../concept.copyconstructible/1.cc | 3 +- .../concept.defaultinitializable/1.cc | 3 +- .../concept.defaultinitializable/lwg3149.cc | 3 +- .../concepts.lang/concept.derived/1.cc | 3 +- .../concepts.lang/concept.destructible/1.cc | 3 +- .../concept.moveconstructible/1.cc | 3 +- .../concepts/concepts.lang/concept.same/1.cc | 3 +- .../concepts.lang/concept.swappable/swap.cc | 3 +- .../concept.swappable/swappable.cc | 3 +- .../concept.swappable/swappable_with.cc | 3 +- .../std/concepts/concepts.object/copyable.cc | 3 +- .../std/concepts/concepts.object/movable.cc | 3 +- .../std/concepts/concepts.object/regular.cc | 3 +- .../concepts/concepts.object/semiregular.cc | 3 +- .../testsuite/std/format/arguments/args.cc | 1 - .../testsuite/std/format/arguments/lwg3810.cc | 1 - libstdc++-v3/testsuite/std/format/error.cc | 1 - .../testsuite/std/format/format_string.cc | 1 - .../testsuite/std/format/formatter/concept.cc | 1 - .../std/format/formatter/ext_float.cc | 1 - .../std/format/formatter/requirements.cc | 1 - .../testsuite/std/format/functions/107871.cc | 1 - .../testsuite/std/format/functions/format.cc | 1 - .../std/format/functions/format_c++23.cc | 5 - .../std/format/functions/format_to.cc | 1 - .../std/format/functions/format_to_n.cc | 1 - .../testsuite/std/format/functions/size.cc | 1 - .../std/format/functions/vformat_to.cc | 1 - .../testsuite/std/format/parse_ctx.cc | 1 - libstdc++-v3/testsuite/std/format/string.cc | 1 - .../testsuite/std/format/string_neg.cc | 1 - libstdc++-v3/testsuite/std/ranges/97600.cc | 3 +- .../testsuite/std/ranges/access/101782.cc | 2 +- .../testsuite/std/ranges/access/begin.cc | 3 +- .../testsuite/std/ranges/access/begin_neg.cc | 3 +- .../testsuite/std/ranges/access/cbegin.cc | 3 +- .../testsuite/std/ranges/access/cdata.cc | 3 +- .../testsuite/std/ranges/access/cend.cc | 3 +- .../testsuite/std/ranges/access/crbegin.cc | 3 +- .../testsuite/std/ranges/access/crend.cc | 3 +- .../testsuite/std/ranges/access/data.cc | 3 +- .../testsuite/std/ranges/access/empty.cc | 3 +- .../testsuite/std/ranges/access/end.cc | 3 +- .../testsuite/std/ranges/access/end_neg.cc | 3 +- .../testsuite/std/ranges/access/lwg3467.cc | 3 +- .../testsuite/std/ranges/access/p2602.cc | 1 - .../testsuite/std/ranges/access/rbegin.cc | 3 +- .../testsuite/std/ranges/access/rend.cc | 3 +- .../testsuite/std/ranges/access/size.cc | 3 +- .../testsuite/std/ranges/access/size_neg.cc | 3 +- .../testsuite/std/ranges/access/ssize.cc | 3 +- .../testsuite/std/ranges/adaptors/100479.cc | 3 +- .../testsuite/std/ranges/adaptors/100577.cc | 3 +- .../testsuite/std/ranges/adaptors/93978.cc | 3 +- .../testsuite/std/ranges/adaptors/95322.cc | 3 +- .../testsuite/std/ranges/adaptors/99433.cc | 3 +- .../std/ranges/adaptors/adjacent/1.cc | 1 - .../ranges/adaptors/adjacent_transform/1.cc | 1 - .../testsuite/std/ranges/adaptors/all.cc | 3 +- .../std/ranges/adaptors/as_const/1.cc | 1 - .../std/ranges/adaptors/as_rvalue/1.cc | 1 - .../testsuite/std/ranges/adaptors/chunk/1.cc | 1 - .../std/ranges/adaptors/chunk_by/1.cc | 1 - .../testsuite/std/ranges/adaptors/common.cc | 3 +- .../ranges/adaptors/conditionally_borrowed.cc | 3 +- .../testsuite/std/ranges/adaptors/counted.cc | 3 +- .../ranges/adaptors/detail/copyable_box.cc | 3 +- .../testsuite/std/ranges/adaptors/drop.cc | 3 +- .../std/ranges/adaptors/drop_while.cc | 3 +- .../testsuite/std/ranges/adaptors/elements.cc | 3 +- .../std/ranges/adaptors/enumerate/1.cc | 1 - .../testsuite/std/ranges/adaptors/filter.cc | 3 +- .../testsuite/std/ranges/adaptors/join.cc | 3 +- .../std/ranges/adaptors/join_with/1.cc | 1 - .../std/ranges/adaptors/lazy_split.cc | 3 +- .../std/ranges/adaptors/lazy_split_neg.cc | 3 +- .../testsuite/std/ranges/adaptors/lwg3286.cc | 3 +- .../std/ranges/adaptors/lwg3313_neg.cc | 3 +- .../std/ranges/adaptors/lwg3325_neg.cc | 3 +- .../testsuite/std/ranges/adaptors/lwg3406.cc | 3 +- .../testsuite/std/ranges/adaptors/lwg3715.cc | 1 - .../testsuite/std/ranges/adaptors/p1739.cc | 1 - .../testsuite/std/ranges/adaptors/p2281.cc | 3 +- .../testsuite/std/ranges/adaptors/p2770r0.cc | 1 - .../testsuite/std/ranges/adaptors/reverse.cc | 3 +- .../testsuite/std/ranges/adaptors/sizeof.cc | 3 +- .../testsuite/std/ranges/adaptors/slide/1.cc | 1 - .../testsuite/std/ranges/adaptors/split.cc | 3 +- .../testsuite/std/ranges/adaptors/stride/1.cc | 1 - .../testsuite/std/ranges/adaptors/take.cc | 3 +- .../std/ranges/adaptors/take_while.cc | 3 +- .../std/ranges/adaptors/transform.cc | 3 +- .../std/ranges/cartesian_product/1.cc | 1 - .../testsuite/std/ranges/empty_view.cc | 3 +- .../std/ranges/headers/ranges/synopsis.cc | 3 +- .../testsuite/std/ranges/iota/93267.cc | 4 +- .../testsuite/std/ranges/iota/96042.cc | 4 +- .../std/ranges/iota/difference_type.cc | 3 +- .../testsuite/std/ranges/iota/iota_view.cc | 3 +- .../testsuite/std/ranges/iota/iterator.cc | 3 +- .../testsuite/std/ranges/iota/lwg3292_neg.cc | 3 +- .../std/ranges/iota/max_size_type.cc | 3 +- .../testsuite/std/ranges/iota/size.cc | 2 +- .../testsuite/std/ranges/istream_view.cc | 3 +- libstdc++-v3/testsuite/std/ranges/p2259.cc | 3 +- libstdc++-v3/testsuite/std/ranges/p2367.cc | 3 +- libstdc++-v3/testsuite/std/ranges/range.cc | 3 +- .../std/ranges/range_adaptor_closure.cc | 1 - .../testsuite/std/ranges/refinements.cc | 3 +- libstdc++-v3/testsuite/std/ranges/repeat/1.cc | 1 - .../testsuite/std/ranges/safe_range.cc | 3 +- .../testsuite/std/ranges/safe_range_types.cc | 3 +- .../testsuite/std/ranges/single_view.cc | 3 +- libstdc++-v3/testsuite/std/ranges/sized.cc | 3 +- .../testsuite/std/ranges/subrange/96042.cc | 4 +- .../testsuite/std/ranges/subrange/97512.cc | 3 +- .../std/ranges/subrange/lwg3282_neg.cc | 7 +- .../testsuite/std/ranges/subrange/lwg3286.cc | 3 +- .../testsuite/std/ranges/subrange/lwg3433.cc | 3 +- .../testsuite/std/ranges/subrange/sizeof.cc | 3 +- .../std/ranges/subrange/tuple_like.cc | 3 +- .../testsuite/std/ranges/version_c++23.cc | 1 - libstdc++-v3/testsuite/std/ranges/view.cc | 3 +- libstdc++-v3/testsuite/std/ranges/zip/1.cc | 1 - .../testsuite/std/ranges/zip_transform/1.cc | 1 - .../testsuite/std/time/clock/file/io.cc | 1 - .../testsuite/std/time/clock/file/members.cc | 3 +- .../testsuite/std/time/clock/file/overview.cc | 3 +- .../testsuite/std/time/clock/gps/1.cc | 1 - .../testsuite/std/time/clock/gps/io.cc | 1 - .../testsuite/std/time/clock/local/io.cc | 1 - .../testsuite/std/time/clock/system/io.cc | 1 - .../testsuite/std/time/clock/tai/1.cc | 1 - .../testsuite/std/time/clock/tai/io.cc | 1 - .../testsuite/std/time/clock/utc/1.cc | 1 - .../testsuite/std/time/clock/utc/io.cc | 1 - .../std/time/clock/utc/leap_second_info.cc | 1 - libstdc++-v3/testsuite/std/time/day/1.cc | 3 +- libstdc++-v3/testsuite/std/time/day/io.cc | 1 - libstdc++-v3/testsuite/std/time/exceptions.cc | 1 - libstdc++-v3/testsuite/std/time/format.cc | 1 - libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc | 3 +- .../testsuite/std/time/hh_mm_ss/109772.cc | 1 - .../testsuite/std/time/hh_mm_ss/io.cc | 1 - libstdc++-v3/testsuite/std/time/is_am/1.cc | 3 +- libstdc++-v3/testsuite/std/time/is_pm/1.cc | 3 +- libstdc++-v3/testsuite/std/time/make12/1.cc | 3 +- libstdc++-v3/testsuite/std/time/make24/1.cc | 3 +- libstdc++-v3/testsuite/std/time/month/1.cc | 3 +- libstdc++-v3/testsuite/std/time/month/io.cc | 1 - .../testsuite/std/time/month_day/1.cc | 3 +- .../testsuite/std/time/month_day/io.cc | 1 - .../testsuite/std/time/month_day_last/1.cc | 3 +- .../testsuite/std/time/month_day_last/io.cc | 1 - .../testsuite/std/time/month_weekday/1.cc | 3 +- .../testsuite/std/time/month_weekday/io.cc | 1 - .../std/time/month_weekday_last/1.cc | 3 +- .../std/time/month_weekday_last/io.cc | 1 - libstdc++-v3/testsuite/std/time/parse.cc | 1 - libstdc++-v3/testsuite/std/time/syn_c++20.cc | 3 +- .../std/time/time_zone/get_info_local.cc | 1 - .../std/time/time_zone/get_info_sys.cc | 1 - .../std/time/time_zone/requirements.cc | 1 - .../testsuite/std/time/traits/is_clock.cc | 3 +- libstdc++-v3/testsuite/std/time/tzdb/1.cc | 1 - .../testsuite/std/time/tzdb/leap_seconds.cc | 1 - .../testsuite/std/time/tzdb_list/1.cc | 1 - .../std/time/tzdb_list/requirements.cc | 1 - libstdc++-v3/testsuite/std/time/weekday/1.cc | 3 +- libstdc++-v3/testsuite/std/time/weekday/io.cc | 1 - .../testsuite/std/time/weekday_indexed/1.cc | 3 +- .../testsuite/std/time/weekday_indexed/io.cc | 1 - .../testsuite/std/time/weekday_last/1.cc | 3 +- .../testsuite/std/time/weekday_last/io.cc | 1 - libstdc++-v3/testsuite/std/time/year/1.cc | 3 +- libstdc++-v3/testsuite/std/time/year/2.cc | 3 +- libstdc++-v3/testsuite/std/time/year/io.cc | 1 - .../testsuite/std/time/year_month/1.cc | 3 +- .../testsuite/std/time/year_month/2.cc | 3 +- .../testsuite/std/time/year_month/io.cc | 1 - .../testsuite/std/time/year_month_day/1.cc | 3 +- .../testsuite/std/time/year_month_day/2.cc | 3 +- .../testsuite/std/time/year_month_day/3.cc | 3 +- .../testsuite/std/time/year_month_day/4.cc | 3 +- .../testsuite/std/time/year_month_day/io.cc | 1 - .../std/time/year_month_day_last/1.cc | 3 +- .../std/time/year_month_day_last/2.cc | 3 +- .../std/time/year_month_day_last/io.cc | 1 - .../std/time/year_month_weekday/1.cc | 3 +- .../std/time/year_month_weekday/2.cc | 3 +- .../std/time/year_month_weekday/3.cc | 3 +- .../std/time/year_month_weekday/io.cc | 1 - .../std/time/year_month_weekday_last/1.cc | 3 +- .../std/time/year_month_weekday_last/2.cc | 3 +- .../std/time/year_month_weekday_last/io.cc | 1 - .../testsuite/std/time/zoned_time/1.cc | 1 - .../testsuite/std/time/zoned_time/custom.cc | 1 - .../std/time/zoned_time/deduction.cc | 1 - .../testsuite/std/time/zoned_time/io.cc | 1 - .../testsuite/std/time/zoned_time/req_neg.cc | 1 - .../std/time/zoned_time/requirements.cc | 1 - .../testsuite/std/time/zoned_traits.cc | 1 - .../07_conf_hyperg/compile_cxx17.cc | 2 +- .../17_hyperg/compile_cxx17.cc | 2 +- 585 files changed, 622 insertions(+), 1029 deletions(-) delete mode 100644 libstdc++-v3/testsuite/std/format/functions/format_c++23.cc -- 2.41.0