http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57653
--- Comment #8 from Allan McRae <allan at archlinux dot org> --- I really have no idea what I am looking for... but adding a breakpoint at linemap_add I see (reason, file): LC_ENTER "foo.c" LC_RENAME "<command-line>" LC_ENTER "/usr/include/stdc-predef.h" LC_LEAVE 0x0 LC_RENAME "foo.c" <- correct output printed here LC_LEAVE 0x0 LC_ENTER "foo.c" LC_RENAME "<command-line>" LC_ENTER "foo.h" LC_LEAVE 0x0 LC_ENTER "/usr/include/stdc-predef.h" LC_RENAME "foo.c" LC_LEAVE 0x0 <- incorrect output printed here LC_LEAVE 0x0 So it looks like it is not leaving "/usr/include/stdc-predef.h" at the right time so the wrong thing is being renamed?