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.

Reply via email to