https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117124
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- Keywords are not reserved identifiers, so for some reason C doesn't say this is undefined. I suppose you just get what you deserve when you replace 'extern' with something that makes the program ill-formed.