https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81968
--- Comment #22 from Richard Biener <rguenth at gcc dot gnu.org> --- Testcase (takes a bit too long / time for the testsuite): #define F(i) int F ## i () { return i; } #define FS(x) F(x ## 0) F(x ## 1) F(x ## 2) F(x ## 3) F(x ## 4) F(x ## 5) F(x ## 6) F(x ## 7) F(x ## 8) F(x ## 9) #define FS1(x) FS(x ## 0) FS(x ## 1) FS(x ## 2) FS(x ## 3) FS(x ## 4) FS(x ## 5) FS(x ## 6) FS(x ## 7) FS(x ## 8) FS(x ## 9) #define FS2(x) FS1(x ## 0) FS1(x ## 1) FS1(x ## 2) FS1(x ## 3) FS1(x ## 4) FS1(x ## 5) FS1(x ## 6) FS1(x ## 7) FS1(x ## 8) FS1(x ## 9) #define FS3(x) FS2(x ## 0) FS2(x ## 1) FS2(x ## 2) FS2(x ## 3) FS2(x ## 4) FS2(x ## 5) FS2(x ## 6) FS2(x ## 7) FS2(x ## 8) FS2(x ## 9) #define FS4(x) FS3(x ## 0) FS3(x ## 1) FS3(x ## 2) FS3(x ## 3) FS3(x ## 4) FS3(x ## 5) FS3(x ## 6) FS4(1) int main() {} > ./xgcc -B. t.c -flto -g /tmp/ccfYIkiwdebugobjtem: file not recognized: File format not recognized collect2: error: ld returned 1 exit status lto-wrapper: fatal error: ./xgcc returned 1 exit status compilation terminated. /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status that's with the attached patch, it seems to work fine without it.