Developer Options (The GNU Fortran Compiler)

### 2.9 GNU Fortran Developer Options ¶

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 that 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 that 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 that 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 that 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`.