https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107405
--- Comment #19 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- On Tue, 22 Nov 2022, macro at orcam dot me.uk via Gcc-bugs wrote: > Well, according to the assertion triggered `typeof (EM_MAX_SLOTS)' will > yield a data type of a different width depending on the compiler version. I don't think typeof(expression) should really be considered part of the ABI. Technically, yes, someone could declare a variable in a header as "extern typeof (EM_MAX_SLOTS) x;", and then the ABI for that variable would change. What hasn't changed is the normal case - where the variable is declared as "extern enum whatever_the_tag_is x;" - the size of the enum type itself is the same as what it was before.