https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83294
--- Comment #5 from Rich Felker <bugdal at aerifal dot cx> --- Reading the relevant part of the standard in more detail, it seems like it's a GCC bug that GCC is applying the exception for plain int to typedefs. ¶5: "Each of the comma-separated multisets designates the same type, except that for bit-fields, it is implementation-defined whether the specifier int designates the same type as signed int or the same type as unsigned int." This text is referring to an above (¶3) list of types, containing "int, signed, or signed int" as one line item and "typedef name" as another. The exception is written explicitly in terms of the former, and makes no mention of the latter.