https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64517
--- Comment #3 from Thomas Fanning <thfanning at gmail dot com> ---
In gcc-4.9.2, using both -M and -E produce the expected output: dependencies
only. But in gfortran, both preprocessed output and dependencies are produced.
This is incorrect.
It seems to me that the gfortran driver is not setting up the preprocessing
environment correctly, so I'm not sure this is strictly a preprocessor problem.
For the following C code: preprocess.c
// It's me!
#include "UTIL_System.h"
int main()
{
return 0;
}
gcc -M preprocess.c
--> preprocess.o: preprocess.c UTIL_System.h <-- dependencies
gcc -M -E preprocess.c
--> preprocess.o: preprocess.c UTIL_System.h <-- dependencies
Since GNU make defines CPP = '$(CC) -E', it is essential that combining -E and
-M are compatible.
For the following gfortran file however: preprocess.F90
! It's me!
program test
#include "UTIL_System.h"
print *, "Hello, World!"
end program
gfortran -M preprocess.F90
--> preprocess.o: preprocess.F90 UTIL_System.h <-- dependencies
But gfortran -M -E preprocess.F90
--> # 1 "preprocess.F90"
--> # 1 "<built-in>"
--> # 1 "<command-line>"
--> # 1 "preprocess.F90"
--> ! It's me!
--> program test
-->
--> # 1 "UTIL_System.h" 1
--> # 4 "preprocess.F90" 2
--> print *, "Hello, World!"
--> end program
--> preprocess.o: preprocess.F90 UTIL_System.h <-- dependencies