https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82215
Thomas Koenig <tkoenig at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2017-09-15 CC| |tkoenig at gcc dot gnu.org Ever confirmed|0 |1 Severity|normal |enhancement --- Comment #3 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- I think this is the PR that comes as a PDF report :-) I think it would actually be enough to have a flag to suppress the output of the *.mod file. You could then do foo.mod: foo.f90 gfortran -fsyntax-only foo.f90 foo.o: foo.mod foo.f90 gfortran -fmodule-files=no foo.f90 This would first generate the module file, and then compile it. The problem with this (which is like your suggestion in the footnote, but I don't think it is necessary to store the source path in the module) is the potential to generate inconsistent *.o and *.mod files if the user is not careful. We could just say "Use at your own risk" in the docs and give an exaple of correct use. I am not sure this is a good solution. Or we could decide to read in the module files, check for consistency, and abort if something inconsistent is found. This would be a major rewrite. And all of this to address a problem that, as far as I can tell, is already addressed using F2008's submodules. A better solution would be a utility (or compiler flag) that parses a *.mod file and outputs source code suitable for calling the original module as a submodule. This could ease the transition a lot. (A bit like the automatic output of C interop prototypes, which I wrote recently). It would just be syntactic sugar around the Fortran tree dumper. So, undecided on the best way to proceed, but confirming.