https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120585
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Last reconfirmed| |2025-06-07 Status|UNCONFIRMED |NEW Summary|"error: ‘signed’ specified |"error: ‘signed’ specified |with ‘typeof’" in code with |with ‘typeof’" with wchar_t |no typeof | --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. r259780 introduced the error message. So this gives the correct types(with -std=c++20): typedef signed char8_t x; Which points to else if (TREE_CODE (type) != INTEGER_TYPE || type == char8_type_node || type == char16_type_node || type == char32_type_node || ((long_p || short_p) && (explicit_char || explicit_intN))) error_at (loc, "%qs specified with %qT", key, type); Should include || type == wchar_type_node .