https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78970
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- Ok, basic problem is in _cpp_save_file_entries, where we calculate md5sum of all inputs files. Providing '-' will cause to have input file as fd == 0 and ff = fdopen (f->fd, "rb"); md5_stream (ff, result->entries[count].sum); fclose (ff); will fail as fdopen fails for 0 fd. Thoughts? Another corner case is using --save-temps that will also confuse command line: cc1: error: unrecognized command line option ‘-.i’ ./cc1 -fpreprocessed -.i -quiet -dumpbase - -mtune=generic -march=x86-64 -auxbase - -version -o -.s --output-pch= pes.pch