https://gcc.gnu.org/g:49d997554d4d526cfce7f8384584c081ed3577c9
commit r16-7540-g49d997554d4d526cfce7f8384584c081ed3577c9 Author: Jakub Jelinek <[email protected]> Date: Tue Feb 17 09:00:08 2026 +0100 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 <[email protected]> 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: --- gcc/testsuite/g++.dg/reflect/is_type_alias2.C | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/g++.dg/reflect/is_type_alias2.C b/gcc/testsuite/g++.dg/reflect/is_type_alias2.C index 0fa0a46868c9..82cff34bc0c0 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<typename T> using V = S<T*>; typedef int T; +using W = decltype (sizeof (0)); static_assert (!is_type_alias (^^S<int>)); static_assert (is_type_alias (^^U)); @@ -22,7 +23,7 @@ static_assert (!is_type_alias (^^V)); static_assert (is_type_alias (^^V<int>)); 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));
