These tests were backported from gcc-14 where the testsuite automatically adds -std=gnu++20 as needed. That doesn't happen on the older release branches, so an explicit dg-options directive is needed to ensure the tests are run by default. Otherwise they'll only be run when somebody uses a custom --target_board that includes -std=gnu++20.
For 23_containers/span/nodiscard.cc we need to remove the dg-warning lines that only match for -std=gnu++23, because with the explicit dg-options to set -std=gnu++20 we never actually test it with C++23 mode. For 29_atomics/headers/stdatomic.h/115807.cc we need to compile with -std=gnu++23 instead. libstdc++-v3/ChangeLog: * testsuite/20_util/integer_sequence/112473.cc: Compile with -std=gnu++20. * testsuite/21_strings/char_traits/requirements/113200.cc: Likewise. * testsuite/23_containers/array/comparison_operators/106212.cc: Likewise. * testsuite/23_containers/array/creation/115522.cc: Likewise. * testsuite/23_containers/span/117966.cc: Likewise. * testsuite/23_containers/span/nodiscard.cc: Likewise. Remove dg-warning directives for et c++23. * testsuite/23_containers/vector/cons/113841.cc: Compile with -std=gnu++20. * testsuite/24_iterators/common_iterator/101527.cc: Likewise. * testsuite/24_iterators/counted_iterator/101527.cc: Likewise. * testsuite/24_iterators/move_iterator/lwg3736.cc: Likewise. * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc: Likewise. * testsuite/27_io/filesystem/iterators/lwg3480.cc: Likewise. * testsuite/29_atomics/headers/stdatomic.h/115807.cc: Compile with -std=gnu++23. * testsuite/experimental/scopeguard/114152.cc: Compile with -std=gnu++20. * testsuite/std/format/arguments/112607.cc: Likewise. * testsuite/std/format/arguments/args_neg.cc: Likewise. * testsuite/std/format/context.cc: Likewise. * testsuite/std/format/formatter/112832.cc: Likewise. * testsuite/std/format/formatter/basic.cc: Likewise. * testsuite/std/ranges/subrange/111948.cc: Likewise. * testsuite/std/ranges/subrange/lwg3589.cc: Likewise. * testsuite/std/time/format/pr117085.cc: Likewise. * testsuite/std/time/month/2.cc: Likewise. * testsuite/std/time/time_zone/sys_info_abbrev.cc: Likewise. * testsuite/std/time/tzdb/links.cc: Likewise. * testsuite/std/time/weekday/2.cc: Likewise. --- Tested x86_64-linux. Pushed to gcc-13. libstdc++-v3/testsuite/20_util/integer_sequence/112473.cc | 1 + .../21_strings/char_traits/requirements/113200.cc | 1 + .../23_containers/array/comparison_operators/106212.cc | 2 +- .../testsuite/23_containers/array/creation/115522.cc | 1 + libstdc++-v3/testsuite/23_containers/span/117966.cc | 2 +- libstdc++-v3/testsuite/23_containers/span/nodiscard.cc | 8 +------- .../testsuite/23_containers/vector/cons/113841.cc | 1 + .../testsuite/24_iterators/common_iterator/101527.cc | 1 + .../testsuite/24_iterators/counted_iterator/101527.cc | 1 + .../testsuite/24_iterators/move_iterator/lwg3736.cc | 1 + .../lexicographical_compare_three_way/113960.cc | 1 + .../testsuite/27_io/filesystem/iterators/lwg3480.cc | 1 + .../testsuite/29_atomics/headers/stdatomic.h/115807.cc | 1 + libstdc++-v3/testsuite/experimental/scopeguard/114152.cc | 1 + libstdc++-v3/testsuite/std/format/arguments/112607.cc | 1 + libstdc++-v3/testsuite/std/format/arguments/args_neg.cc | 1 + libstdc++-v3/testsuite/std/format/context.cc | 1 + libstdc++-v3/testsuite/std/format/formatter/112832.cc | 1 + libstdc++-v3/testsuite/std/format/formatter/basic.cc | 1 + libstdc++-v3/testsuite/std/ranges/subrange/111948.cc | 1 + libstdc++-v3/testsuite/std/ranges/subrange/lwg3589.cc | 1 + libstdc++-v3/testsuite/std/time/format/pr117085.cc | 1 + libstdc++-v3/testsuite/std/time/month/2.cc | 1 + .../testsuite/std/time/time_zone/sys_info_abbrev.cc | 1 + libstdc++-v3/testsuite/std/time/tzdb/links.cc | 1 + libstdc++-v3/testsuite/std/time/weekday/2.cc | 1 + 26 files changed, 26 insertions(+), 9 deletions(-) diff --git a/libstdc++-v3/testsuite/20_util/integer_sequence/112473.cc b/libstdc++-v3/testsuite/20_util/integer_sequence/112473.cc index 14abfbc8149..1c8035c6b1e 100644 --- a/libstdc++-v3/testsuite/20_util/integer_sequence/112473.cc +++ b/libstdc++-v3/testsuite/20_util/integer_sequence/112473.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // PR libstdc++/112473 - integer_sequence accepts non-integer types diff --git a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/113200.cc b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/113200.cc index 0fe765d53bc..6a1b03293ef 100644 --- a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/113200.cc +++ b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/113200.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // PR libstdc++/113200 diff --git a/libstdc++-v3/testsuite/23_containers/array/comparison_operators/106212.cc b/libstdc++-v3/testsuite/23_containers/array/comparison_operators/106212.cc index f7b12bd04ef..d6d9bf464b2 100644 --- a/libstdc++-v3/testsuite/23_containers/array/comparison_operators/106212.cc +++ b/libstdc++-v3/testsuite/23_containers/array/comparison_operators/106212.cc @@ -1,4 +1,4 @@ -// { dg-options "-D_GLIBCXX_DEBUG" } +// { dg-options "-D_GLIBCXX_DEBUG -std=gnu++20" } // { dg-do compile { target c++20 } } // Bug libstdc++/106212 - Code becomes non-constexpr with _GLIBCXX_DEBUG diff --git a/libstdc++-v3/testsuite/23_containers/array/creation/115522.cc b/libstdc++-v3/testsuite/23_containers/array/creation/115522.cc index 37073e002bd..052be9f7368 100644 --- a/libstdc++-v3/testsuite/23_containers/array/creation/115522.cc +++ b/libstdc++-v3/testsuite/23_containers/array/creation/115522.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // PR libstdc++/115522 std::to_array no longer works for struct which is diff --git a/libstdc++-v3/testsuite/23_containers/span/117966.cc b/libstdc++-v3/testsuite/23_containers/span/117966.cc index 8bbb5ca1e07..cf30fcadd8f 100644 --- a/libstdc++-v3/testsuite/23_containers/span/117966.cc +++ b/libstdc++-v3/testsuite/23_containers/span/117966.cc @@ -1,4 +1,4 @@ -// { dg-options "-D_GLIBCXX_DEBUG" } +// { dg-options "-D_GLIBCXX_DEBUG -std=gnu++20" } // { dg-do compile { target c++20 } } // Bug 117966 diff --git a/libstdc++-v3/testsuite/23_containers/span/nodiscard.cc b/libstdc++-v3/testsuite/23_containers/span/nodiscard.cc index 3bccd1545c3..6bcdc096c71 100644 --- a/libstdc++-v3/testsuite/23_containers/span/nodiscard.cc +++ b/libstdc++-v3/testsuite/23_containers/span/nodiscard.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } #include <span> @@ -28,13 +29,6 @@ test_iterators(std::span<S> s) s.end(); // { dg-warning "ignoring return value" } s.rbegin(); // { dg-warning "ignoring return value" } s.rend(); // { dg-warning "ignoring return value" } - -#if __cplusplus > 202002L - s.cbegin(); // { dg-warning "ignoring return value" "" { target c++23 } } - s.cend(); // { dg-warning "ignoring return value" "" { target c++23 } } - s.crbegin(); // { dg-warning "ignoring return value" "" { target c++23 } } - s.crend(); // { dg-warning "ignoring return value" "" { target c++23 } } -#endif } void diff --git a/libstdc++-v3/testsuite/23_containers/vector/cons/113841.cc b/libstdc++-v3/testsuite/23_containers/vector/cons/113841.cc index a7721d27f79..9c9c7d2d1c4 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/cons/113841.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/cons/113841.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } #include <vector> diff --git a/libstdc++-v3/testsuite/24_iterators/common_iterator/101527.cc b/libstdc++-v3/testsuite/24_iterators/common_iterator/101527.cc index 0a2a5e8dfcc..a2150aebd44 100644 --- a/libstdc++-v3/testsuite/24_iterators/common_iterator/101527.cc +++ b/libstdc++-v3/testsuite/24_iterators/common_iterator/101527.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // PR libstdc++/101527 diff --git a/libstdc++-v3/testsuite/24_iterators/counted_iterator/101527.cc b/libstdc++-v3/testsuite/24_iterators/counted_iterator/101527.cc index 51c6e99cd77..5bdd410cc8e 100644 --- a/libstdc++-v3/testsuite/24_iterators/counted_iterator/101527.cc +++ b/libstdc++-v3/testsuite/24_iterators/counted_iterator/101527.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // PR libstdc++/101527 diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3736.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3736.cc index eaf791b3089..49fb686aa06 100644 --- a/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3736.cc +++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3736.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // 3736. move_iterator missing disable_sized_sentinel_for specialization diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc index d51ae1a3d50..388a535b904 100644 --- a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc +++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do run { target c++20 } } // PR libstdc++/113960 diff --git a/libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3480.cc b/libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3480.cc index 15e0286fff6..98e97a7775f 100644 --- a/libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3480.cc +++ b/libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3480.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // { dg-require-filesystem-ts "" } diff --git a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/115807.cc b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/115807.cc index 14f320fe835..7f9d742838d 100644 --- a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/115807.cc +++ b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/115807.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++23" } // { dg-do compile { target c++23 } } #include <stdatomic.h> namespace other { diff --git a/libstdc++-v3/testsuite/experimental/scopeguard/114152.cc b/libstdc++-v3/testsuite/experimental/scopeguard/114152.cc index 63c1f710e9f..e7837b718d2 100644 --- a/libstdc++-v3/testsuite/experimental/scopeguard/114152.cc +++ b/libstdc++-v3/testsuite/experimental/scopeguard/114152.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // PR libstdc++/114152 diff --git a/libstdc++-v3/testsuite/std/format/arguments/112607.cc b/libstdc++-v3/testsuite/std/format/arguments/112607.cc index 19eec765ea5..8b53404ebd6 100644 --- a/libstdc++-v3/testsuite/std/format/arguments/112607.cc +++ b/libstdc++-v3/testsuite/std/format/arguments/112607.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // PR libstdc++/112607 diff --git a/libstdc++-v3/testsuite/std/format/arguments/args_neg.cc b/libstdc++-v3/testsuite/std/format/arguments/args_neg.cc index 16ac3040146..8ffea99fdfb 100644 --- a/libstdc++-v3/testsuite/std/format/arguments/args_neg.cc +++ b/libstdc++-v3/testsuite/std/format/arguments/args_neg.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // P2905R2 Runtime format strings diff --git a/libstdc++-v3/testsuite/std/format/context.cc b/libstdc++-v3/testsuite/std/format/context.cc index 5cc5e9c9ba2..3b9029eb8d7 100644 --- a/libstdc++-v3/testsuite/std/format/context.cc +++ b/libstdc++-v3/testsuite/std/format/context.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } #include <format> diff --git a/libstdc++-v3/testsuite/std/format/formatter/112832.cc b/libstdc++-v3/testsuite/std/format/formatter/112832.cc index 9aa2095a73d..338b112d084 100644 --- a/libstdc++-v3/testsuite/std/format/formatter/112832.cc +++ b/libstdc++-v3/testsuite/std/format/formatter/112832.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } #include <format> diff --git a/libstdc++-v3/testsuite/std/format/formatter/basic.cc b/libstdc++-v3/testsuite/std/format/formatter/basic.cc index 56c18864135..642d4c8ccea 100644 --- a/libstdc++-v3/testsuite/std/format/formatter/basic.cc +++ b/libstdc++-v3/testsuite/std/format/formatter/basic.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // BasicFormatter requirements do not require a const parameter. diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/111948.cc b/libstdc++-v3/testsuite/std/ranges/subrange/111948.cc index dcc64b56def..615bd94824a 100644 --- a/libstdc++-v3/testsuite/std/ranges/subrange/111948.cc +++ b/libstdc++-v3/testsuite/std/ranges/subrange/111948.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } #include <ranges> diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/lwg3589.cc b/libstdc++-v3/testsuite/std/ranges/subrange/lwg3589.cc index 1ccc52d81f8..4447b3186eb 100644 --- a/libstdc++-v3/testsuite/std/ranges/subrange/lwg3589.cc +++ b/libstdc++-v3/testsuite/std/ranges/subrange/lwg3589.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do compile { target c++20 } } // LWG 3589. The const lvalue reference overload of get for subrange does not diff --git a/libstdc++-v3/testsuite/std/time/format/pr117085.cc b/libstdc++-v3/testsuite/std/time/format/pr117085.cc index 99ef8389995..0fac91dd533 100644 --- a/libstdc++-v3/testsuite/std/time/format/pr117085.cc +++ b/libstdc++-v3/testsuite/std/time/format/pr117085.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do run { target c++20 } } // { dg-require-namedlocale "fr_FR.ISO8859-1" } diff --git a/libstdc++-v3/testsuite/std/time/month/2.cc b/libstdc++-v3/testsuite/std/time/month/2.cc index 3bcefa60003..4ef0adfbce3 100644 --- a/libstdc++-v3/testsuite/std/time/month/2.cc +++ b/libstdc++-v3/testsuite/std/time/month/2.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do run { target c++20 } } // Class month [time.cal.month] diff --git a/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc b/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc index f1a8fff02f5..d21bfacb97b 100644 --- a/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc +++ b/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do run { target c++20 } } // { dg-require-effective-target tzdb } // { dg-require-effective-target cxx11_abi } diff --git a/libstdc++-v3/testsuite/std/time/tzdb/links.cc b/libstdc++-v3/testsuite/std/time/tzdb/links.cc index 0ba214846c6..32834bf8a6a 100644 --- a/libstdc++-v3/testsuite/std/time/tzdb/links.cc +++ b/libstdc++-v3/testsuite/std/time/tzdb/links.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do run { target c++20 } } // { dg-require-effective-target tzdb } // { dg-require-effective-target cxx11_abi } diff --git a/libstdc++-v3/testsuite/std/time/weekday/2.cc b/libstdc++-v3/testsuite/std/time/weekday/2.cc index 924709321e5..6980f78fbe1 100644 --- a/libstdc++-v3/testsuite/std/time/weekday/2.cc +++ b/libstdc++-v3/testsuite/std/time/weekday/2.cc @@ -1,3 +1,4 @@ +// { dg-options "-std=gnu++20" } // { dg-do run { target c++20 } } // Class weekday [time.cal.wd] -- 2.49.0