From: Jakub Jelinek Date: Tue, 17 Feb 2026 08:00:08 +0000 (+0100) Subject: c++: Fix up is_type_alias2.C testcase for Solaris [PR124119] X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=49d997554d4d526cfce7f8384584c081ed3577c9;p=thirdparty%2Fgcc.git c++: Fix up is_type_alias2.C testcase for Solaris [PR124119] Given https://eel.is/c++draft/expr.reflect#5.1 we error on typedef __SIZE_TYPE__ A; namespace B { using ::A; typedef __SIZE_TYPE__ C; } using B::C; constexpr auto a = ^^A; constexpr auto b = ^^B::A; constexpr auto c = ^^B::C; constexpr auto d = ^^C; on ^^B::A and ^^C (note, clang++ fork only errors on ^^B::A). Now, whether size_t is typedef __SIZE_TYPE__ size_t; namespace std { using ::size_t; } or namespace std { typedef __SIZE_TYPE__ size_t; } using std::size_t; depends on the target and clearly is the latter on Solaris, so testing whether ^^size_t is a type alias doesn't work there - it is found as a using decl there. So the following patch stops testing it for size_t and tests yet another user alias (a typedef is already tested - ^^T). 2026-02-17 Jakub Jelinek PR c++/124119 * g++.dg/reflect/is_type_alias2.C (W): New type alias. Assert is_type_alias (^^W). Don't assert is_type_alias (^^size_t). --- diff --git a/gcc/testsuite/g++.dg/reflect/is_type_alias2.C b/gcc/testsuite/g++.dg/reflect/is_type_alias2.C index 0fa0a46868c..82cff34bc0c 100644 --- a/gcc/testsuite/g++.dg/reflect/is_type_alias2.C +++ b/gcc/testsuite/g++.dg/reflect/is_type_alias2.C @@ -15,6 +15,7 @@ template using V = S; typedef int T; +using W = decltype (sizeof (0)); static_assert (!is_type_alias (^^S)); static_assert (is_type_alias (^^U)); @@ -22,7 +23,7 @@ static_assert (!is_type_alias (^^V)); static_assert (is_type_alias (^^V)); static_assert (is_type_alias (^^T)); static_assert (!is_type_alias (^^wchar_t)); -static_assert (is_type_alias (^^size_t)); +static_assert (is_type_alias (^^W)); using A = void(int, int); static_assert (is_type_alias (^^A));