You might be able to avoid many syntax errors in code in the wild if you pass -U __GNUC__ -U __GNUC_MINOR__
to the preprocessor by default. It is very common for projects to use GNU C extensions guarded by #ifdef __GNUC__
, and it probably shouldn't affect the generated references too much.