http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59566
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |WAITING Last reconfirmed| |2013-12-20 Target Milestone|--- |4.8.3 Summary|[4.8 regression] g++ |[4.8/4.9 regression] g++ |preprocessor output |preprocessor output |includes comments meant for |includes comments meant for |GNU C Library files |GNU C Library files Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- You are using -C, so what do you expect? Note that since 4.8.x GCC automatically includes stdc-predef.h (which you can see when you remove the -P option). The comment nicely explains in the last sentence: /* This header is separate from features.h so that the compiler can include it implicitly at the start of every compilation. It must not itself include <features.h> or any other header that includes <features.h> because the implicit include comes before any feature test macros that may be defined in a source file before it first explicitly includes a system header. GCC knows the name of this header in order to preinclude it. */ Thus, it works as designed. No?