http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57653
--- Comment #19 from Allan McRae <allan at archlinux dot org> --- That patch works. With -imacros foo.h: LC_ENTER foo.c LC_RENAME <command-line> LC_ENTER foo.h LC_LEAVE 0x0 LC_ENTER /usr/include/stdc-predef.h LC_LEAVE 0x0 LC_RENAME foo.c <- correct output LC_LEAVE 0x0 All other combinations of -include/-imacros/-ffreestanding/no foo.h all are unchanged as expected.