https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95224
Bug ID: 95224 Summary: -flto -save-temps uses very unusual name for resolution file, looks arbitrary Product: gcc Version: 10.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto Assignee: unassigned at gcc dot gnu.org Reporter: slyfox at inbox dot ru CC: hubicka at gcc dot gnu.org, marxin at gcc dot gnu.org, rguenth at gcc dot gnu.org Target Milestone: --- Encountered when was debugging lto/95194. Reproducer: # good $ rm -- *; echo 'int main(){}' | gcc -c -x c -flto - -o main.o; gcc main.o -o main -flto -save-temps; ls -- *.res main.res # unexpected $ rm -- *; echo 'int main(){}' | gcc -c -x c -flto - -o main.o; gcc main.o -o main -flto -save-temps -lm; ls -- *.res -lm.res Expected behaviour: always get 'main.res' resolution file. In real scenario I was building 'genmatch' and got '-lm.res'. It confused me quite a bit: I explored very strange possibilities: driver did not recognize -lm as a library, '-lm.res' is not the only response file out there, etc. Would it be reasonable for response file to always use the same basename as '-o' paramemter?