https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68854
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So --ansi and -isystem causes the headers to be marked as system headers so they get special treatment (because otherwise some system headers would be rejected) when it comes things so we need to know if a macro is from a system header or not. So you end up with b as being marked as not coming from a system header but .globl is. This is invalid for a couple of reasons: 1) Don't ever invoke cc1 directly that is bad 2) Don't pass --ansi if you are doing assembly because it changes the behavior of the preprocessor to keep track of system headers macros better 3) Use --traditional-cpp option to get what you really want.