1 ; Options for the Fortran front end.
2 ; Copyright (C) 2003-2019 Free Software Foundation, Inc.
4 ; This file is part of GCC.
6 ; GCC is free software; you can redistribute it and/or modify it under
7 ; the terms of the GNU General Public License as published by the Free
8 ; Software Foundation; either version 3, or (at your option) any later
11 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 ; You should have received a copy of the GNU General Public License
17 ; along with GCC; see the file COPYING3. If not see
18 ; <http://www.gnu.org/licenses/>.
20 ; See the GCC internals manual for a description of this file's format.
22 ; Please try to keep this file in ASCII collating order.
31 Fortran Separate Alias(A)
34 Fortran Joined Alias(A)
43 Fortran Separate Alias(D)
46 Fortran Joined Alias(D)
52 Fortran Separate Alias(d)
55 Fortran Joined Alias(d)
61 Fortran Separate Alias(I)
64 Fortran Joined Alias(I)
66 -include-directory-after
67 Fortran Separate Alias(idirafter)
69 -include-directory-after=
70 Fortran Joined Alias(idirafter)
73 Fortran Separate Alias(iprefix)
76 Fortran JoinedOrMissing Alias(iprefix)
82 Fortran Alias(nostdinc)
85 Fortran Separate Alias(o)
88 Fortran Joined Alias(o)
91 Fortran Undocumented Alias(E)
93 -print-missing-file-dependencies
100 Fortran Separate Alias(U)
103 Fortran Joined Alias(U)
112 Fortran NoDriverArg Separate Alias(MD)
114 -write-user-dependencies
115 Fortran NoDriverArg Separate Alias(MMD)
118 Fortran Joined Separate
130 Fortran Joined Separate
141 Fortran Joined Separate
145 Fortran Joined Separate
146 -J<directory> Put MODULE files in 'directory'.
153 Fortran Separate NoDriverArg
157 Fortran Joined Separate
169 Fortran Separate NoDriverArg
177 Fortran Joined Separate
181 Fortran Joined Separate
189 Fortran Joined Separate
197 Fortran Warning Var(warn_aliasing) LangEnabledBy(Fortran,Wall)
198 Warn about possible aliasing of dummy arguments.
201 Fortran Warning Var(warn_align_commons) Init(1)
202 Warn about alignment of COMMON blocks.
205 Fortran Warning Var(warn_ampersand) LangEnabledBy(Fortran,Wall || Wpedantic)
206 Warn about missing ampersand in continued character constants.
209 Fortran Warning Var(warn_array_temporaries)
210 Warn about creation of array temporaries.
213 Fortran Warning Var(warn_argument_mismatch) Init(1)
214 Warn about type and rank mismatches between arguments and parameters.
217 Fortran Var(warn_c_binding_type) Warning LangEnabledBy(Fortran,Wall)
218 Warn if the type of a variable might be not interoperable with C.
224 Wcharacter-truncation
225 Fortran Var(warn_character_truncation) Warning LangEnabledBy(Fortran,Wall)
226 Warn about truncated character expressions.
229 Fortran Warning Var(warn_compare_reals) LangEnabledBy(Fortran,Wextra)
230 Warn about equality comparisons involving REAL or COMPLEX expressions.
233 Fortran Var(warn_conversion) Warning LangEnabledBy(Fortran,Wall)
237 Fortran Var(warn_conversion_extra) Warning
238 Warn about most implicit conversions.
241 Fortran Var(warn_do_subscript) Warning LangEnabledBy(Fortran,Wextra)
242 Warn about possibly incorrect subscripts in do loops.
246 ; Documented in common
248 Wfrontend-loop-interchange
249 Fortran Var(flag_warn_frontend_loop_interchange)
250 Warn if loops have been interchanged.
252 Wfunction-elimination
253 Fortran Warning Var(warn_function_elimination) LangEnabledBy(Fortran,Wextra)
254 Warn about function call elimination.
257 Fortran Warning Var(warn_implicit_interface)
258 Warn about calls with implicit interface.
261 Fortran Warning Var(warn_implicit_procedure)
262 Warn about called procedures not explicitly declared.
265 Fortran Warning Var(warn_integer_division) LangEnabledBy(Fortran,Wall)
266 Warn about constant integer divisions with truncated results.
269 Fortran Warning Var(warn_line_truncation) LangEnabledBy(Fortran,Wall) Init(-1)
270 Warn about truncated source lines.
273 Fortran Var(warn_intrinsics_std) Warning LangEnabledBy(Fortran,Wall)
274 Warn on intrinsics not part of the selected standard.
277 Fortran LangEnabledBy(Fortran,Wall)
278 ; Documented in common.opt
280 Wmissing-include-dirs
282 ; Documented in C/C++
285 Fortran Var(warn_use_without_only) Warning
286 Warn about USE statements that have no ONLY qualifier.
294 ; Documented in common.opt
297 Fortran Warning Var(warn_real_q_constant) LangEnabledBy(Fortran,Wall)
298 Warn about real-literal-constants with 'q' exponent-letter.
301 Fortran Warning Var(warn_realloc_lhs) LangEnabledBy(Fortran,Wrealloc-lhs-all)
302 Warn when a left-hand-side array variable is reallocated.
305 Fortran Warning Var(warn_realloc_lhs_all)
306 Warn when a left-hand-side variable is reallocated.
309 Fortran Warning Var(warn_target_lifetime) LangEnabledBy(Fortran,Wall)
310 Warn if the pointer in a pointer assignment might outlive its target.
313 Fortran Warning LangEnabledBy(Fortran,Wall)
317 Fortran Warning Var(warn_surprising) LangEnabledBy(Fortran,Wall)
318 Warn about \"suspicious\" constructs.
321 Fortran Warning Var(warn_tabs) LangEnabledBy(Fortran,Wall || Wpedantic)
322 Permit nonconforming uses of the tab character.
325 Fortran Warning Var(warn_undefined_do_loop) LangEnabledBy(Fortran,Wall)
326 Warn about an invalid DO loop.
329 Fortran Warning Var(warn_underflow) Init(1)
330 Warn about underflow of numerical constant expressions.
333 Fortran LangEnabledBy(Fortran,Wall)
334 ; Documented in common.opt
337 Fortran Warning Var(warn_intrinsic_shadow) LangEnabledBy(Fortran,Wall)
338 Warn if a user-procedure has the same name as an intrinsic.
341 LangEnabledBy(Fortran,Wall)
342 ; Documented in common.opt
344 Wunused-dummy-argument
345 Fortran Warning Var(warn_unused_dummy_argument) LangEnabledBy(Fortran,Wall)
346 Warn about unused dummy arguments.
349 Fortran Warning Var(warn_zerotrip) LangEnabledBy(Fortran,Wall)
350 Warn about zero-trip DO loops.
353 Fortran Negative(nocpp)
354 Enable preprocessing.
357 Fortran Joined Negative(nocpp) Undocumented NoDWARFRecord
358 ; Internal option generated by specs from -cpp.
361 Fortran Negative(cpp)
362 Disable preprocessing.
366 ; Documented in common.opt
368 fallow-argument-mismatch
369 Fortran Var(flag_allow_argument_mismatch) LangEnabledBy(Fortran,std=legacy)
370 Accept argument mismatches in procedure calls.
372 faggressive-function-elimination
373 Fortran Var(flag_aggressive_function_elimination)
374 Eliminate multiple function invocations also for impure functions.
377 Fortran Var(flag_align_commons) Init(1)
378 Enable alignment of COMMON blocks.
381 Fortran RejectNegative Var(flag_all_intrinsics)
382 All intrinsics procedures are available regardless of selected standard.
385 Fortran RejectNegative Var(flag_allow_invalid_boz)
386 Allow a BOZ literal constant to appear in an invalid context.
388 fallow-leading-underscore
389 Fortran Undocumented Var(flag_allow_leading_underscore)
390 ; For internal use only: allow the first character of symbol names to be an underscore
393 Fortran Var(flag_automatic) Init(1)
394 Do not treat local variables and COMMON blocks as if they were named in SAVE statements.
397 Fortran Var(flag_backslash)
398 Specify that backslash in string introduces an escape character.
401 Fortran Var(flag_backtrace) Init(1)
402 Produce a backtrace when a runtime error is encountered.
405 Fortran RejectNegative Joined UInteger Var(flag_blas_matmul_limit) Init(30)
406 -fblas-matmul-limit=<n> Size of the smallest matrix for which matmul will use BLAS.
408 fcheck-array-temporaries
410 Produce a warning at runtime if a array temporary has been created for a procedure argument.
413 Fortran RejectNegative Joined Enum(gfc_convert) Var(flag_convert) Init(GFC_FLAG_CONVERT_NATIVE)
414 -fconvert=<big-endian|little-endian|native|swap> The endianness used for unformatted files.
417 Name(gfc_convert) Type(enum gfc_convert) UnknownError(Unrecognized option to endianness value: %qs)
420 Enum(gfc_convert) String(big-endian) Value(GFC_FLAG_CONVERT_BIG)
423 Enum(gfc_convert) String(little-endian) Value(GFC_FLAG_CONVERT_LITTLE)
426 Enum(gfc_convert) String(native) Value(GFC_FLAG_CONVERT_NATIVE)
429 Enum(gfc_convert) String(swap) Value(GFC_FLAG_CONVERT_SWAP)
432 Fortran Var(flag_cray_pointer)
433 Use the Cray Pointer extension.
436 Fortran Var(flag_c_prototypes)
437 Generate C prototypes from BIND(C) declarations.
439 fc-prototypes-external
440 Fortran Var(flag_c_prototypes_external)
441 Generate C prototypes from non-BIND(C) external procedure definitions.
444 Fortran RejectNegative
445 Ignore 'D' in column one in fixed form.
448 Fortran RejectNegative
449 Treat lines with 'D' in column one as comments.
452 Fortran Var(flag_dec)
453 Enable all DEC language extensions.
455 fdec-blank-format-item
456 Fortran Var(flag_dec_blank_format_item)
457 Enable the use of blank format items in format strings.
460 Fortran Var(flag_dec_include)
461 Enable legacy parsing of INCLUDE as statement.
464 Fortran Var(flag_dec_format_defaults)
465 Enable default widths for i, f and g format specifiers.
468 Fortran Var(flag_dec_intrinsic_ints)
469 Enable kind-specific variants of integer intrinsic functions.
472 Fortran Var(flag_dec_math)
473 Enable legacy math intrinsics for compatibility.
476 Fortran Var(flag_dec_structure)
477 Enable support for DEC STRUCTURE/RECORD.
480 Fortran Var(flag_dec_static)
481 Enable DEC-style STATIC and AUTOMATIC attributes.
484 Fortran Var(flag_default_double)
485 Set the default double precision kind to an 8 byte wide type.
488 Fortran Var(flag_default_integer)
489 Set the default integer kind to an 8 byte wide type.
492 Fortran Var(flag_default_real_8)
493 Set the default real kind to an 8 byte wide type.
496 Fortran Var(flag_default_real_10)
497 Set the default real kind to an 10 byte wide type.
500 Fortran Var(flag_default_real_16)
501 Set the default real kind to an 16 byte wide type.
504 Fortran Var(flag_dollar_ok)
505 Allow dollar signs in entity names.
509 Does nothing. Preserved for backward compatibility.
511 fdump-fortran-original
512 Fortran Var(flag_dump_fortran_original)
513 Display the code tree after parsing.
515 fdump-fortran-optimized
516 Fortran Var(flag_dump_fortran_optimized)
517 Display the code tree after front end optimization.
520 Fortran Var(flag_dump_fortran_global)
521 Display the global symbol table after parsing.
524 Fortran Alias(fdump-fortran-original)
525 Display the code tree after parsing; deprecated option.
528 Fortran Var(flag_external_blas)
529 Specify that an external BLAS library should be used for matmul calls on large-size arrays.
532 Fortran Var(flag_f2c)
533 Use f2c calling convention.
536 Fortran RejectNegative
537 Assume that the source file is fixed form.
540 Fortran Var(flag_test_forall_temp) Init(0)
541 Force creation of temporary to test infrequently-executed forall code.
544 Fortran RejectNegative Var(flag_integer4_kind,8)
545 Interpret any INTEGER(4) as an INTEGER(8).
547 fintrinsic-modules-path
548 Fortran RejectNegative Separate
549 Specify where to find the compiled intrinsic modules.
551 fintrinsic-modules-path=
552 Fortran RejectNegative Joined
553 Specify where to find the compiled intrinsic modules.
555 ffixed-line-length-none
556 Fortran RejectNegative Var(flag_fixed_line_length,0)
557 Allow arbitrary character line width in fixed mode.
560 Fortran RejectNegative Joined UInteger Var(flag_fixed_line_length) Init(72)
561 -ffixed-line-length-<n> Use n as character line width in fixed mode.
564 Fortran Var(flag_pad_source) Init(1)
565 Pad shorter fixed form lines to line width with spaces.
568 Fortran RejectNegative JoinedOrMissing
569 -ffpe-trap=[...] Stop on following floating point exceptions.
572 Fortran RejectNegative JoinedOrMissing
573 -ffpe-summary=[...] Print summary of floating point exceptions.
576 Fortran RejectNegative
577 Assume that the source file is free form.
579 ffree-line-length-none
580 Fortran RejectNegative Var(flag_free_line_length,0)
581 Allow arbitrary character line width in free mode.
584 Fortran RejectNegative Joined UInteger Var(flag_free_line_length) Init(132)
585 -ffree-line-length-<n> Use n as character line width in free mode.
587 ffrontend-loop-interchange
588 Fortran Var(flag_frontend_loop_interchange) Init(-1)
589 Try to interchange loops if profitable.
592 Fortran Var(flag_frontend_optimize) Init(-1)
593 Enable front end optimization.
596 Fortran Var(flag_implicit_none)
597 Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements.
600 Fortran RejectNegative Joined UInteger
601 -finit-character=<n> Initialize local character variables to ASCII value n.
604 Fortran Var(flag_init_derived)
605 Initialize components of derived type variables according to other init flags.
608 Fortran RejectNegative Joined
609 -finit-integer=<n> Initialize local integer variables to n.
613 Initialize local variables to zero (from g77).
616 Fortran RejectNegative Joined
617 -finit-logical=<true|false> Initialize local logical variables.
620 Fortran RejectNegative ToLower Joined Enum(gfc_init_local_real) Var(flag_init_real) Init(GFC_INIT_REAL_OFF)
621 -finit-real=<zero|snan|nan|inf|-inf> Initialize local real variables.
624 Name(gfc_init_local_real) Type(enum gfc_init_local_real) UnknownError(Unrecognized option to floating-point init value: %qs)
627 Enum(gfc_init_local_real) String(zero) Value(GFC_INIT_REAL_ZERO)
630 Enum(gfc_init_local_real) String(snan) Value(GFC_INIT_REAL_SNAN)
633 Enum(gfc_init_local_real) String(nan) Value(GFC_INIT_REAL_NAN)
636 Enum(gfc_init_local_real) String(inf) Value(GFC_INIT_REAL_INF)
639 Enum(gfc_init_local_real) String(-inf) Value(GFC_INIT_REAL_NEG_INF)
641 finline-matmul-limit=
642 Fortran RejectNegative Joined UInteger Var(flag_inline_matmul_limit) Init(-1)
643 -finline-matmul-limit=<n> Specify the size of the largest matrix for which matmul will be inlined.
645 fmax-array-constructor=
646 Fortran RejectNegative Joined UInteger Var(flag_max_array_constructor) Init(65535)
647 -fmax-array-constructor=<n> Maximum number of objects in an array constructor.
649 fmax-identifier-length=
650 Fortran RejectNegative Joined UInteger
651 -fmax-identifier-length=<n> Maximum identifier length.
653 fmax-subrecord-length=
654 Fortran RejectNegative Joined UInteger Var(flag_max_subrecord_length)
655 -fmax-subrecord-length=<n> Maximum length for subrecords.
658 Fortran RejectNegative Joined UInteger Var(flag_max_stack_var_size) Init(-2)
659 -fmax-stack-var-size=<n> Size in bytes of the largest array that will be put on the stack.
662 Fortran Var(flag_stack_arrays) Init(-1)
663 Put all local arrays on stack.
666 Fortran Var(flag_module_private)
667 Set default accessibility of module entities to PRIVATE.
674 Fortran LTO Joined Var(flag_openacc_dims)
686 Fortran Var(flag_pack_derived)
687 Try to lay out derived types as compactly as possible.
694 Fortran Var(flag_protect_parens) Init(-1)
695 Protect parentheses in expressions.
698 Fortran RejectNegative Joined Var(flag_pre_include) Undocumented
699 Path to header file that should be pre-included before each compilation unit.
702 Fortran Var(flag_range_check) Init(1)
703 Enable range checking during compilation.
706 Fortran RejectNegative Var(flag_real4_kind,8)
707 Interpret any REAL(4) as a REAL(8).
710 Fortran RejectNegative Var(flag_real4_kind,10)
711 Interpret any REAL(4) as a REAL(10).
714 Fortran RejectNegative Var(flag_real4_kind,16)
715 Interpret any REAL(4) as a REAL(16).
718 Fortran RejectNegative Var(flag_real8_kind,4)
719 Interpret any REAL(8) as a REAL(4).
722 Fortran RejectNegative Var(flag_real8_kind,10)
723 Interpret any REAL(8) as a REAL(10).
726 Fortran RejectNegative Var(flag_real8_kind,16)
727 Interpret any REAL(8) as a REAL(16).
730 Fortran Var(flag_realloc_lhs) Init(-1)
731 Reallocate the LHS in assignments.
734 Fortran RejectNegative Var(flag_record_marker,4)
735 Use a 4-byte record marker for unformatted files.
738 Fortran RejectNegative Var(flag_record_marker,8)
739 Use an 8-byte record marker for unformatted files.
742 Fortran Var(flag_recursive)
743 Allocate local variables on the stack to allow indirect recursion.
746 Fortran Var(flag_repack_arrays)
747 Copy array sections into a contiguous block on procedure entry.
750 Fortran RejectNegative Joined Enum(gfc_fcoarray) Var(flag_coarray) Init(GFC_FCOARRAY_NONE)
751 -fcoarray=<none|single|lib> Specify which coarray parallelization should be used.
754 Name(gfc_fcoarray) Type(enum gfc_fcoarray) UnknownError(Unrecognized option: %qs)
757 Enum(gfc_fcoarray) String(none) Value(GFC_FCOARRAY_NONE)
760 Enum(gfc_fcoarray) String(single) Value(GFC_FCOARRAY_SINGLE)
763 Enum(gfc_fcoarray) String(lib) Value(GFC_FCOARRAY_LIB)
766 Fortran RejectNegative JoinedOrMissing
767 -fcheck=[...] Specify which runtime checks are to be performed.
770 Fortran Var(flag_second_underscore) Init(-1)
771 Append a second underscore if the name already contains an underscore.
774 Fortran Var(flag_short_enums)
778 Fortran Var(flag_sign_zero) Init(1)
779 Apply negative sign to zero values.
781 ftail-call-workaround
782 Fortran Alias(ftail-call-workaround=,1,0)
784 ftail-call-workaround=
785 Fortran RejectNegative Joined UInteger IntegerRange(0, 2) Var(flag_tail_call_workaround) Init(1)
786 Disallow tail call optimization when a calling routine may have omitted character lengths.
789 Fortran Var(flag_underscoring) Init(1)
790 Append underscores to externally visible names.
794 Does nothing. Preserved for backward compatibility.
801 Fortran Joined Separate
805 Fortran Joined Separate
809 Fortran Joined Separate
813 Fortran Joined Separate
817 Fortran Joined Separate
821 Fortran Joined Separate
829 Fortran Joined Separate
830 ; Documented in common.opt
834 Statically link the GNU Fortran helper library (libgfortran).
838 Conform to the ISO Fortran 2003 standard.
842 Conform to the ISO Fortran 2008 standard.
846 Conform to the ISO Fortran 2008 standard including TS 29113.
850 Conform to the ISO Fortran 2018 standard.
854 Conform to the ISO Fortran 95 standard.
858 Conform to nothing in particular.
862 Accept extensions to support legacy code.
872 ; This comment is to ensure we retain the blank line above.