https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107405
--- Comment #18 from Maciej W. Rozycki <macro at orcam dot me.uk> --- Well, according to the assertion triggered `typeof (EM_MAX_SLOTS)' will yield a data type of a different width depending on the compiler version. Even if this GNU extension does not constitute a part of the ABI it does guarantee link incompatibility for a feature we've had for decades now, even if the old semantics was unintentional. Data corruption cannot be ruled out. Besides, `sizeof (EM_MAX_SLOTS)' can also be used to build a data type (an array type) and process it. So I think a pedantic warning is not enough to fulfil the principle of least surprise for the real world out there. Therefore I maintain that for pre-C2x compilations we either need to keep the old semantics, possibly with a fat warning under `-Wall', or as I say make it a hard error.