https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109183
--- Comment #4 from Yann Droneaud <yann at droneaud dot fr> --- (In reply to Alexandre Oliva from comment #3) > dump files now consistently take the base name from the output name, when > not overridden > > since in this case gcc is called for (compiling and) linking, and the final > output name is a.* (.out or .exe, depending on the platform), That the issue at hand, `gcc -MM -MMD test.c` does not compile nor link anything: it preprocess and extract dependencies, nothing more. Thus using "a.out" as the output is not expected.