https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64517
Bug ID: 64517 Summary: Inconsistent behavior when mixing -E and -M Product: gcc Version: 4.9.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: thfanning at gmail dot com According to documentation, "Passing -M to the driver implies -E". However an explicit `-E` produces different behavior. touch test.F90 gfortran -M test.F90 produces: test.o: test.F90 However, gfortran -E -M test.F90 produces # 1 "test.F90" # 1 "<built-in>" # 1 "<command-line>" # 1 "test.F90" test.o: test.F90 As a result, preprocessor output is mixed with dependency output. A kludge is to add `-o /dev/null`, but that is ugly. The description for `-E` states: "The output is in the form of preprocessed source code, which is sent to the standard output." But shouldn't `-M` change *what* is sent to stdout?