https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107164
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- clang says it is a GCC extension: <source>:2:6: warning: redeclaration of already-defined enum 'E' is a GNU extension [-Wgnu-redeclared-enum] enum E; ^ <source>:1:6: note: previous definition is here enum E {a,b,c}; ^ GCC does have a forward declaration extension for enum types so it makes sense to allow this as an extension too. That is: ``` enum E; enum E {a,b,c}; ``` (which GCC does have a pedantic diagnostic about).