On Wed, Feb 18, 2026 at 10:06 PM Jonathan Wakely <[email protected]> wrote:
> libstdc++-v3/ChangeLog:
>
> * testsuite/lib/libstdc++.exp (v3-minimum-std): Remove special
> case for c++2a and TODO comment.
> * testsuite/20_util/is_pod/requirements/explicit_instantiation.cc:
> Replace c++2a effective target with c++20.
> * testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
> * testsuite/20_util/is_pod/value.cc: Likewise.
> * testsuite/20_util/reference_wrapper/result_type.cc: Likewise.
> * testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise.
> * testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise.
> * testsuite/20_util/result_of/sfinae_friendly_1.cc: Likewise.
> * testsuite/20_util/tuple/78939.cc: Likewise.
> * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
> * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise.
> * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
> * testsuite/experimental/type_traits/value.cc: Likewise.
> * testsuite/ext/malloc_allocator/variadic_construct.cc:
> Likewise.
> * testsuite/ext/new_allocator/variadic_construct.cc: Likewise.
> * testsuite/libstdc++-prettyprinters/chrono.cc: Likewise.
> * testsuite/libstdc++-prettyprinters/cxx20.cc: Likewise.
> * testsuite/std/ranges/iota/size.cc: Likewise.
> * testsuite/tr1/3_function_objects/result_of.cc: Likewise.
> ---
>
> Tested x86_64-linux.
>
LGTM
>
> .../20_util/is_pod/requirements/explicit_instantiation.cc | 2 +-
> .../testsuite/20_util/is_pod/requirements/typedefs.cc | 2 +-
> libstdc++-v3/testsuite/20_util/is_pod/value.cc | 2 +-
> .../testsuite/20_util/reference_wrapper/result_type.cc | 2 +-
> .../testsuite/20_util/reference_wrapper/typedefs-2.cc | 2 +-
> .../testsuite/20_util/reference_wrapper/typedefs-3.cc | 2 +-
> libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc | 2 +-
> libstdc++-v3/testsuite/20_util/tuple/78939.cc | 2 +-
> libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc | 2 +-
> libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc | 2 +-
> .../testsuite/20_util/variable_templates_for_traits.cc | 2 +-
> libstdc++-v3/testsuite/experimental/type_traits/value.cc | 2 +-
> .../testsuite/ext/malloc_allocator/variadic_construct.cc | 2 +-
> .../testsuite/ext/new_allocator/variadic_construct.cc | 2 +-
> libstdc++-v3/testsuite/lib/libstdc++.exp | 4 ----
> libstdc++-v3/testsuite/libstdc++-prettyprinters/chrono.cc | 4 ++--
> libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc | 4 ++--
> libstdc++-v3/testsuite/std/ranges/iota/size.cc | 2 +-
> libstdc++-v3/testsuite/tr1/3_function_objects/result_of.cc | 2 +-
> 19 files changed, 20 insertions(+), 24 deletions(-)
>
> diff --git
> a/libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_instantiation.cc
> b/libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_instantiation.cc
> index 9ee9b5642676..a73293076b86 100644
> ---
> a/libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_instantiation.cc
> +++
> b/libstdc++-v3/testsuite/20_util/is_pod/requirements/explicit_instantiation.cc
> @@ -1,5 +1,5 @@
> // { dg-do compile { target c++11 } }
> -// { dg-additional-options "-Wno-deprecated-declarations" { target {
> c++2a } } }
> +// { dg-additional-options "-Wno-deprecated-declarations" { target {
> c++20 } } }
> // 2010-02-21 Paolo Carlini <[email protected]>
>
> // Copyright (C) 2010-2026 Free Software Foundation, Inc.
> diff --git
> a/libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc
> b/libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc
> index 61eee6c313d4..f833796d883d 100644
> --- a/libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc
> +++ b/libstdc++-v3/testsuite/20_util/is_pod/requirements/typedefs.cc
> @@ -1,5 +1,5 @@
> // { dg-do compile { target c++11 } }
> -// { dg-additional-options "-Wno-deprecated-declarations" { target {
> c++2a } } }
> +// { dg-additional-options "-Wno-deprecated-declarations" { target {
> c++20 } } }
>
> // 2010-02-21 Paolo Carlini <[email protected]>
> //
> diff --git a/libstdc++-v3/testsuite/20_util/is_pod/value.cc
> b/libstdc++-v3/testsuite/20_util/is_pod/value.cc
> index 951af8b6cd32..28878152e140 100644
> --- a/libstdc++-v3/testsuite/20_util/is_pod/value.cc
> +++ b/libstdc++-v3/testsuite/20_util/is_pod/value.cc
> @@ -1,5 +1,5 @@
> // { dg-do compile { target c++11 } }
> -// { dg-additional-options "-Wno-deprecated-declarations" { target {
> c++2a } } }
> +// { dg-additional-options "-Wno-deprecated-declarations" { target {
> c++20 } } }
>
> // 2010-02-21 Paolo Carlini <[email protected]>
> //
> diff --git
> a/libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc
> b/libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc
> index fcdbe4f4fc97..b8ce4db485e1 100644
> --- a/libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc
> +++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc
> @@ -1,5 +1,5 @@
> // { dg-do compile { target c++11 } }
> -// { dg-skip-if "result_type removed for C++20" { c++2a } }
> +// { dg-skip-if "result_type removed for C++20" { c++20 } }
>
> // 2010-10-06 Paolo Carlini <[email protected]>
>
> diff --git
> a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc
> b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc
> index e1c6312c890f..cae41fc0e3af 100644
> --- a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc
> +++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc
> @@ -1,5 +1,5 @@
> // { dg-do compile { target c++11 } }
> -// { dg-skip-if "argument_type removed for C++20" { c++2a } }
> +// { dg-skip-if "argument_type removed for C++20" { c++20 } }
>
> // 2010-10-06 Paolo Carlini <[email protected]>
>
> diff --git
> a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
> b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
> index 4bf65ba25fc8..2b2b36108c6d 100644
> --- a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
> +++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc
> @@ -1,5 +1,5 @@
> // { dg-do compile { target c++11 } }
> -// { dg-skip-if "argument_type removed for C++20" { c++2a } }
> +// { dg-skip-if "argument_type removed for C++20" { c++20 } }
>
> // Copyright (C) 2011-2026 Free Software Foundation, Inc.
> //
> diff --git a/libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc
> b/libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc
> index a82fdcca57e5..bd5d17f9bdcd 100644
> --- a/libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc
> +++ b/libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc
> @@ -1,5 +1,5 @@
> // { dg-do compile { target c++11 } }
> -// { dg-additional-options "-Wno-volatile" { target c++2a } }
> +// { dg-additional-options "-Wno-volatile" { target c++20 } }
>
> // Copyright (C) 2012-2026 Free Software Foundation, Inc.
> //
> diff --git a/libstdc++-v3/testsuite/20_util/tuple/78939.cc
> b/libstdc++-v3/testsuite/20_util/tuple/78939.cc
> index eb15403c3cf2..340a4b4a4a9a 100644
> --- a/libstdc++-v3/testsuite/20_util/tuple/78939.cc
> +++ b/libstdc++-v3/testsuite/20_util/tuple/78939.cc
> @@ -15,7 +15,7 @@
> // with this library; see the file COPYING3. If not see
> // <http://www.gnu.org/licenses/>.
>
> -// { dg-additional-options "-Wno-deprecated" { target c++2a } }
> +// { dg-additional-options "-Wno-deprecated" { target c++20 } }
> // { dg-do compile { target c++17 } }
>
> // PR libstdc++/78939
> diff --git a/libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc
> b/libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc
> index cb69b0277ddf..456dedb7d50e 100644
> --- a/libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc
> +++ b/libstdc++-v3/testsuite/20_util/uses_allocator/69293_neg.cc
> @@ -47,5 +47,5 @@ test01()
> alloc_type a;
> std::tuple<X> t(std::allocator_arg, a); // this is required to be
> ill-formed
> // { dg-error "failed: .* uses_allocator is true" "" { target *-*-* } 0
> }
> - // { dg-error "too many initializers for 'X'" "" { target c++2a } 0 }
> + // { dg-error "too many initializers for 'X'" "" { target c++20 } 0 }
> }
> diff --git a/libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc
> b/libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc
> index 26f9778540bc..4e4cf6f1f72d 100644
> --- a/libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc
> +++ b/libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc
> @@ -44,4 +44,4 @@ void test01()
> tuple<Type> t(allocator_arg, a, 1);
> }
> // { dg-error "failed: .* uses_allocator is true" "" { target *-*-* } 0 }
> -// { dg-error "no matching function for call" "" { target c++2a } 0 }
> +// { dg-error "no matching function for call" "" { target c++20 } 0 }
> diff --git
> a/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
> b/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
> index d2629ee44526..eb440a097071 100644
> --- a/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
> +++ b/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
> @@ -1,4 +1,4 @@
> -// { dg-additional-options "-Wno-deprecated-declarations" { target c++2a
> } }
> +// { dg-additional-options "-Wno-deprecated-declarations" { target c++20
> } }
> // { dg-do compile { target c++17 } }
> // { dg-additional-options "-freflection" { target c++26 } }
>
> diff --git a/libstdc++-v3/testsuite/experimental/type_traits/value.cc
> b/libstdc++-v3/testsuite/experimental/type_traits/value.cc
> index a909debad662..c5defa4f2f81 100644
> --- a/libstdc++-v3/testsuite/experimental/type_traits/value.cc
> +++ b/libstdc++-v3/testsuite/experimental/type_traits/value.cc
> @@ -1,5 +1,5 @@
> // { dg-do compile { target c++14 } }
> -// { dg-additional-options "-Wno-deprecated-declarations" { target {
> c++2a } } }
> +// { dg-additional-options "-Wno-deprecated-declarations" { target {
> c++20 } } }
>
> // Copyright (C) 2014-2026 Free Software Foundation, Inc.
> //
> diff --git
> a/libstdc++-v3/testsuite/ext/malloc_allocator/variadic_construct.cc
> b/libstdc++-v3/testsuite/ext/malloc_allocator/variadic_construct.cc
> index 8ceef7f6d6c7..d71458a7f67b 100644
> --- a/libstdc++-v3/testsuite/ext/malloc_allocator/variadic_construct.cc
> +++ b/libstdc++-v3/testsuite/ext/malloc_allocator/variadic_construct.cc
> @@ -1,4 +1,4 @@
> -// { dg-do run { target { c++11 && { ! c++2a } } } }
> +// { dg-do run { target { c++11 && { ! c++20 } } } }
>
> // 2007-10-26 Paolo Carlini <[email protected]>
>
> diff --git
> a/libstdc++-v3/testsuite/ext/new_allocator/variadic_construct.cc
> b/libstdc++-v3/testsuite/ext/new_allocator/variadic_construct.cc
> index 95f6384a00ba..91e4f55845ec 100644
> --- a/libstdc++-v3/testsuite/ext/new_allocator/variadic_construct.cc
> +++ b/libstdc++-v3/testsuite/ext/new_allocator/variadic_construct.cc
> @@ -1,4 +1,4 @@
> -// { dg-do run { target { c++11 && { ! c++2a } } } }
> +// { dg-do run { target { c++11 && { ! c++20 } } } }
>
> // 2007-10-26 Paolo Carlini <[email protected]>
>
> diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp
> b/libstdc++-v3/testsuite/lib/libstdc++.exp
> index 67c475499630..5b50972511f3 100644
> --- a/libstdc++-v3/testsuite/lib/libstdc++.exp
> +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
> @@ -482,10 +482,6 @@ proc v3-minimum-std { test default_std max_std } {
> return $s
> }
> }
> - # TODO: replace all c++2a with c++20 and remove this case.
> - if [search_for $test "\{ dg-do * \{ target c++2a"] {
> - return 20
> - }
> return $default_std
> }
>
> diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/chrono.cc
> b/libstdc++-v3/testsuite/libstdc++-prettyprinters/chrono.cc
> index 9aa284aea2f3..c10198df06eb 100644
> --- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/chrono.cc
> +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/chrono.cc
> @@ -1,5 +1,5 @@
> -// { dg-options "-g -O0 -std=gnu++2a" }
> -// { dg-do run { target c++2a } }
> +// { dg-options "-g -O0 -std=gnu++20" }
> +// { dg-do run { target c++20 } }
> // { dg-additional-options "-DTEST_ZONED_TIME" { target tzdb } }
>
> // Copyright The GNU Toolchain Authors.
> diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
> b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
> index 91d25219e240..0ec85dfac80f 100644
> --- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
> +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc
> @@ -1,5 +1,5 @@
> -// { dg-options "-g -O0 -std=gnu++2a" }
> -// { dg-do run { target c++2a } }
> +// { dg-options "-g -O0 -std=gnu++20" }
> +// { dg-do run { target c++20 } }
>
> // Copyright (C) 2014-2026 Free Software Foundation, Inc.
> //
> diff --git a/libstdc++-v3/testsuite/std/ranges/iota/size.cc
> b/libstdc++-v3/testsuite/std/ranges/iota/size.cc
> index e201d5125fac..efe4d66569d4 100644
> --- a/libstdc++-v3/testsuite/std/ranges/iota/size.cc
> +++ b/libstdc++-v3/testsuite/std/ranges/iota/size.cc
> @@ -15,7 +15,7 @@
> // with this library; see the file COPYING3. If not see
> // <http://www.gnu.org/licenses/>.
>
> -// { dg-do compile { target c++2a } }
> +// { dg-do compile { target c++20 } }
> // { dg-add-options strict_std }
>
> #include <ranges>
> diff --git a/libstdc++-v3/testsuite/tr1/3_function_objects/result_of.cc
> b/libstdc++-v3/testsuite/tr1/3_function_objects/result_of.cc
> index fbefc00ec629..10960a4955ba 100644
> --- a/libstdc++-v3/testsuite/tr1/3_function_objects/result_of.cc
> +++ b/libstdc++-v3/testsuite/tr1/3_function_objects/result_of.cc
> @@ -17,7 +17,7 @@
> // with this library; see the file COPYING3. If not see
> // <http://www.gnu.org/licenses/>.
>
> -// { dg-additional-options "-Wno-volatile" { target c++2a } }
> +// { dg-additional-options "-Wno-volatile" { target c++20 } }
>
> // 3.4 function return types
> #include <tr1/functional>
> --
> 2.53.0
>
>