When investigating PR lto/40702, I noticed that no definition of __STDC__ is emitted at all in the output of gcc -g3 -save-temps, making it very hard to understand why conditional pieces of code are used.
$ cat head.h #define HEAD 1 $ cat stdc0.c #include <head.h> #define STDC0 $ gcc -I. -g3 -save-temps -c stdc0.c $ grep __STDC__ stdc0.i $ -- Summary: No __STDC__ definition in -g3 -E output on STDC_0_IN_SYSTEM_HEADERS systems Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ro at gcc dot gnu dot org GCC target triplet: *-*-solaris2* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41590