http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61006
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to spamcop from comment #2) > Okay, but looking at the rest of the code, this seems to be the only > enum/struct/union that is not correctly "typed" according to C rules. E.g. > all the other variables of enum type have `enum` in the variable declaration > and if I just fix this one line, the file compiles as standard C without any > problem. So if nothing else than this line is a at least a serve break of > style compared to the rest of the file and as far as I can tell the only > reason why this file is not standard C and would need a C++ compiler. The code was originally written as C code and then moved over to C++ in 4.8; except it was not converted, just compiled as C++ code. Now C++ism are being placed in the code which is why you see the difference here.