GNU Fortran has various special options that are used for debugging the GNU Fortran compiler.
-fdump-fortran-global
¶Output a list of the global identifiers after translating into middle-end representation. Mostly useful for debugging the GNU Fortran compiler itself. The output generated by this option might change between releases. This option may also generate internal compiler errors for features which have only recently been added.
-fdump-fortran-optimized
¶Output the parse tree after front-end optimization. Mostly useful for debugging the GNU Fortran compiler itself. The output generated by this option might change between releases. This option may also generate internal compiler errors for features which have only recently been added.
-fdump-fortran-original
¶Output the internal parse tree after translating the source program into internal representation. This option is mostly useful for debugging the GNU Fortran compiler itself. The output generated by this option might change between releases. This option may also generate internal compiler errors for features which have only recently been added.
-fdump-parse-tree
¶Output the internal parse tree after translating the source program
into internal representation. Mostly useful for debugging the GNU
Fortran compiler itself. The output generated by this option might
change between releases. This option may also generate internal
compiler errors for features which have only recently been added. This
option is deprecated; use -fdump-fortran-original
instead.
-save-temps
Store the usual “temporary” intermediate files permanently; name them as auxiliary output files, as specified described under GCC -dumpbase and -dumpdir.
gfortran -save-temps -c foo.F90
preprocesses input file foo.F90 to foo.fii, compiles to an intermediate foo.s, and then assembles to the (implied) output file foo.o, whereas:
gfortran -save-temps -S foo.F
saves the preprocessor output in foo.fi, and then compiles to the (implied) output file foo.s.