1 ; Options for the Fortran front end.
2 ; Copyright (C) 2003-2024 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.
214 Does nothing. Preserved for backward compatibility.
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.
301 Fortran Warning Var(warn_overwrite_recursive) Init(1)
302 Warn that -fno-automatic may break recursion.
306 ; Documented in common.opt
309 Fortran Warning Var(warn_real_q_constant) LangEnabledBy(Fortran,Wall)
310 Warn about real-literal-constants with 'q' exponent-letter.
313 Fortran Warning Var(warn_realloc_lhs) LangEnabledBy(Fortran,Wrealloc-lhs-all)
314 Warn when a left-hand-side array variable is reallocated.
317 Fortran Warning Var(warn_realloc_lhs_all)
318 Warn when a left-hand-side variable is reallocated.
321 Fortran Warning Var(warn_target_lifetime) LangEnabledBy(Fortran,Wall)
322 Warn if the pointer in a pointer assignment might outlive its target.
325 Fortran Warning LangEnabledBy(Fortran,Wall)
329 Fortran Warning Var(warn_surprising) LangEnabledBy(Fortran,Wall)
330 Warn about \"suspicious\" constructs.
333 Fortran Warning Var(warn_tabs) LangEnabledBy(Fortran,Wall || Wpedantic)
334 Permit nonconforming uses of the tab character.
337 Fortran Warning Var(warn_undefined_do_loop) LangEnabledBy(Fortran,Wall)
338 Warn about an invalid DO loop.
341 Fortran Warning Var(warn_underflow) Init(1)
342 Warn about underflow of numerical constant expressions.
345 Fortran LangEnabledBy(Fortran,Wall)
346 ; Documented in common.opt
349 Fortran Warning Var(warn_intrinsic_shadow) LangEnabledBy(Fortran,Wall)
350 Warn if a user-procedure has the same name as an intrinsic.
353 LangEnabledBy(Fortran,Wall)
354 ; Documented in common.opt
356 Wunused-dummy-argument
357 Fortran Warning Var(warn_unused_dummy_argument) LangEnabledBy(Fortran,Wall)
358 Warn about unused dummy arguments.
361 Fortran Warning Var(warn_zerotrip) LangEnabledBy(Fortran,Wall)
362 Warn about zero-trip DO loops.
365 Fortran Negative(nocpp)
366 Enable preprocessing.
369 Fortran Joined Negative(nocpp) Undocumented NoDWARFRecord
370 ; Internal option generated by specs from -cpp.
373 Fortran Negative(cpp)
374 Disable preprocessing.
378 ; Documented in common.opt
380 fallow-argument-mismatch
381 Fortran Var(flag_allow_argument_mismatch) LangEnabledBy(Fortran,std=legacy)
382 Accept argument mismatches in procedure calls.
384 faggressive-function-elimination
385 Fortran Var(flag_aggressive_function_elimination)
386 Eliminate multiple function invocations also for impure functions.
389 Fortran Var(flag_align_commons) Init(1)
390 Enable alignment of COMMON blocks.
393 Fortran RejectNegative Var(flag_all_intrinsics)
394 All intrinsics procedures are available regardless of selected standard.
397 Fortran RejectNegative Var(flag_allow_invalid_boz)
398 Allow a BOZ literal constant to appear in an invalid context and with X instead of Z.
400 fallow-leading-underscore
401 Fortran Undocumented Var(flag_allow_leading_underscore)
402 ; For internal use only: allow the first character of symbol names to be an underscore
405 Fortran Var(flag_automatic) Init(1)
406 Do not treat local variables and COMMON blocks as if they were named in SAVE statements.
409 Fortran Var(flag_backslash)
410 Specify that backslash in string introduces an escape character.
413 Fortran Var(flag_backtrace) Init(1)
414 Produce a backtrace when a runtime error is encountered.
417 Fortran RejectNegative Joined UInteger Var(flag_blas_matmul_limit) Init(30)
418 -fblas-matmul-limit=<n> Size of the smallest matrix for which matmul will use BLAS.
420 fbuilding-libgfortran
421 Fortran Undocumented Var(flag_building_libgfortran)
423 fcheck-array-temporaries
425 Produce a warning at runtime if a array temporary has been created for a procedure argument.
428 Fortran RejectNegative Joined Enum(gfc_convert) EnumSet Var(flag_convert) Init(GFC_FLAG_CONVERT_NATIVE)
429 -fconvert=<big-endian|little-endian|native|swap|r16_ieee|r16_ibm> The endianness used for unformatted files.
432 Name(gfc_convert) Type(enum gfc_convert) UnknownError(Unrecognized option to endianness value: %qs)
435 Enum(gfc_convert) String(big-endian) Value(GFC_FLAG_CONVERT_BIG) Set(1)
438 Enum(gfc_convert) String(little-endian) Value(GFC_FLAG_CONVERT_LITTLE) Set(1)
441 Enum(gfc_convert) String(native) Value(GFC_FLAG_CONVERT_NATIVE) Set(1)
444 Enum(gfc_convert) String(swap) Value(GFC_FLAG_CONVERT_SWAP) Set(1)
447 Enum(gfc_convert) String(r16_ieee) Value(GFC_FLAG_CONVERT_R16_IEEE) Set(2)
450 Enum(gfc_convert) String(r16_ibm) Value(GFC_FLAG_CONVERT_R16_IBM) Set(2)
453 Fortran Var(flag_cray_pointer)
454 Use the Cray Pointer extension.
457 Fortran Var(flag_c_prototypes)
458 Generate C prototypes from BIND(C) declarations.
460 fc-prototypes-external
461 Fortran Var(flag_c_prototypes_external)
462 Generate C prototypes from non-BIND(C) external procedure definitions.
465 Fortran RejectNegative
466 Ignore 'D' in column one in fixed form.
469 Fortran RejectNegative
470 Treat lines with 'D' in column one as comments.
473 Fortran Var(flag_debug_aux_vars)
474 Issue debug information for compiler-generated auxiliary variables.
477 Fortran Var(flag_dec)
478 Enable all DEC language extensions.
480 fdec-blank-format-item
481 Fortran Var(flag_dec_blank_format_item)
482 Enable the use of blank format items in format strings.
484 fdec-char-conversions
485 Fortran Var(flag_dec_char_conversions)
486 Enable the use of character literals in assignments and data statements
487 for non-character variables.
490 Fortran Var(flag_dec_include)
491 Enable legacy parsing of INCLUDE as statement.
494 Fortran Var(flag_dec_format_defaults)
495 Enable default widths for i, f and g format specifiers.
498 Fortran Var(flag_dec_intrinsic_ints)
499 Enable kind-specific variants of integer intrinsic functions.
502 Fortran Var(flag_dec_math)
503 Enable legacy math intrinsics for compatibility.
506 Fortran Var(flag_dec_structure)
507 Enable support for DEC STRUCTURE/RECORD.
510 Fortran Var(flag_dec_static)
511 Enable DEC-style STATIC and AUTOMATIC attributes.
514 Fortran Var(flag_default_double)
515 Set the default double precision kind to an 8 byte wide type.
518 Fortran Var(flag_default_integer)
519 Set the default integer kind to an 8 byte wide type.
522 Fortran Var(flag_default_real_8)
523 Set the default real kind to an 8 byte wide type.
526 Fortran Var(flag_default_real_10)
527 Set the default real kind to an 10 byte wide type.
530 Fortran Var(flag_default_real_16)
531 Set the default real kind to an 16 byte wide type.
534 Fortran Var(flag_dollar_ok)
535 Allow dollar signs in entity names.
539 Does nothing. Preserved for backward compatibility.
541 fdump-fortran-original
542 Fortran Var(flag_dump_fortran_original)
543 Display the code tree after parsing.
545 fdump-fortran-optimized
546 Fortran Var(flag_dump_fortran_optimized)
547 Display the code tree after front end optimization.
550 Fortran Var(flag_dump_fortran_global)
551 Display the global symbol table after parsing.
554 Fortran Alias(fdump-fortran-original)
555 Display the code tree after parsing; deprecated option.
558 Fortran Var(flag_external_blas)
559 Specify that an external BLAS library should be used for matmul calls on large-size arrays.
562 Fortran Var(flag_f2c)
563 Use f2c calling convention.
566 Fortran RejectNegative
567 Assume that the source file is fixed form.
570 Fortran Var(flag_test_forall_temp) Init(0)
571 Force creation of temporary to test infrequently-executed forall code.
574 Fortran RejectNegative Var(flag_integer4_kind,8)
575 Interpret any INTEGER(4) as an INTEGER(8).
577 fintrinsic-modules-path
578 Fortran RejectNegative Separate
579 Specify where to find the compiled intrinsic modules.
581 fintrinsic-modules-path=
582 Fortran RejectNegative Joined
583 Specify where to find the compiled intrinsic modules.
585 ffixed-line-length-none
586 Fortran RejectNegative Var(flag_fixed_line_length,0)
587 Allow arbitrary character line width in fixed mode.
590 Fortran RejectNegative Joined UInteger Var(flag_fixed_line_length) Init(72)
591 -ffixed-line-length-<n> Use n as character line width in fixed mode.
594 Fortran Var(flag_pad_source) Init(1)
595 Pad shorter fixed form lines to line width with spaces.
598 Fortran RejectNegative JoinedOrMissing
599 -ffpe-trap=[...] Stop on following floating point exceptions.
602 Fortran RejectNegative JoinedOrMissing
603 -ffpe-summary=[...] Print summary of floating point exceptions.
606 Fortran RejectNegative
607 Assume that the source file is free form.
609 ffree-line-length-none
610 Fortran RejectNegative Var(flag_free_line_length,0)
611 Allow arbitrary character line width in free mode.
614 Fortran RejectNegative Joined UInteger Var(flag_free_line_length) Init(132)
615 -ffree-line-length-<n> Use n as character line width in free mode.
617 ffrontend-loop-interchange
618 Fortran Var(flag_frontend_loop_interchange) Init(-1)
619 Try to interchange loops if profitable.
622 Fortran Var(flag_frontend_optimize) Init(-1)
623 Enable front end optimization.
626 Fortran Var(flag_implicit_none)
627 Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements.
630 Fortran RejectNegative Joined UInteger
631 -finit-character=<n> Initialize local character variables to ASCII value n.
634 Fortran Var(flag_init_derived)
635 Initialize components of derived type variables according to other init flags.
638 Fortran RejectNegative Joined
639 -finit-integer=<n> Initialize local integer variables to n.
643 Initialize local variables to zero (from g77).
646 Fortran RejectNegative Joined
647 -finit-logical=<true|false> Initialize local logical variables.
650 Fortran RejectNegative ToLower Joined Enum(gfc_init_local_real) Var(flag_init_real) Init(GFC_INIT_REAL_OFF)
651 -finit-real=<zero|snan|nan|inf|-inf> Initialize local real variables.
654 Name(gfc_init_local_real) Type(enum gfc_init_local_real) UnknownError(Unrecognized option to floating-point init value: %qs)
657 Enum(gfc_init_local_real) String(zero) Value(GFC_INIT_REAL_ZERO)
660 Enum(gfc_init_local_real) String(snan) Value(GFC_INIT_REAL_SNAN)
663 Enum(gfc_init_local_real) String(nan) Value(GFC_INIT_REAL_NAN)
666 Enum(gfc_init_local_real) String(inf) Value(GFC_INIT_REAL_INF)
669 Enum(gfc_init_local_real) String(-inf) Value(GFC_INIT_REAL_NEG_INF)
672 Fortran Var(flag_inline_arg_packing) Init(-1)
673 -finline-arg-packing Perform argument packing inline.
675 finline-matmul-limit=
676 Fortran RejectNegative Joined UInteger Var(flag_inline_matmul_limit) Init(-1)
677 -finline-matmul-limit=<n> Specify the size of the largest matrix for which matmul will be inlined.
679 fmax-array-constructor=
680 Fortran RejectNegative Joined UInteger Var(flag_max_array_constructor) Init(65535)
681 -fmax-array-constructor=<n> Maximum number of objects in an array constructor.
683 fmax-identifier-length=
684 Fortran RejectNegative Joined UInteger
685 -fmax-identifier-length=<n> Maximum identifier length.
687 fmax-subrecord-length=
688 Fortran RejectNegative Joined UInteger Var(flag_max_subrecord_length)
689 -fmax-subrecord-length=<n> Maximum length for subrecords.
692 Fortran RejectNegative Joined UInteger Var(flag_max_stack_var_size) Init(-2)
693 -fmax-stack-var-size=<n> Size in bytes of the largest array that will be put on the stack.
696 Fortran Var(flag_stack_arrays) Init(-1)
697 Put all local arrays on stack.
700 Fortran Var(flag_module_private)
701 Set default accessibility of module entities to PRIVATE.
708 Fortran LTO Joined Var(flag_openacc_dims)
720 Fortran Var(flag_openmp_allocators)
721 Handle OpenMP allocators for allocatables and pointers.
724 Fortran Var(flag_pack_derived)
725 Try to lay out derived types as compactly as possible.
732 Fortran Var(flag_protect_parens) Init(-1)
733 Protect parentheses in expressions.
736 Fortran RejectNegative Joined Var(flag_pre_include) Undocumented
737 Path to header file that should be pre-included before each compilation unit.
740 Fortran Var(flag_range_check) Init(1)
741 Enable range checking during compilation.
744 Fortran RejectNegative Var(flag_real4_kind,8)
745 Interpret any REAL(4) as a REAL(8).
748 Fortran RejectNegative Var(flag_real4_kind,10)
749 Interpret any REAL(4) as a REAL(10).
752 Fortran RejectNegative Var(flag_real4_kind,16)
753 Interpret any REAL(4) as a REAL(16).
756 Fortran RejectNegative Var(flag_real8_kind,4)
757 Interpret any REAL(8) as a REAL(4).
760 Fortran RejectNegative Var(flag_real8_kind,10)
761 Interpret any REAL(8) as a REAL(10).
764 Fortran RejectNegative Var(flag_real8_kind,16)
765 Interpret any REAL(8) as a REAL(16).
768 Fortran Var(flag_realloc_lhs) Init(-1)
769 Reallocate the LHS in assignments.
772 Fortran RejectNegative Var(flag_record_marker,4)
773 Use a 4-byte record marker for unformatted files.
776 Fortran RejectNegative Var(flag_record_marker,8)
777 Use an 8-byte record marker for unformatted files.
780 Fortran Var(flag_recursive)
781 Allocate local variables on the stack to allow indirect recursion.
784 Fortran Var(flag_repack_arrays)
785 Copy array sections into a contiguous block on procedure entry.
788 Fortran RejectNegative Joined Enum(gfc_fcoarray) Var(flag_coarray) Init(GFC_FCOARRAY_NONE)
789 -fcoarray=<none|single|lib> Specify which coarray parallelization should be used.
792 Name(gfc_fcoarray) Type(enum gfc_fcoarray) UnknownError(Unrecognized option: %qs)
795 Enum(gfc_fcoarray) String(none) Value(GFC_FCOARRAY_NONE)
798 Enum(gfc_fcoarray) String(single) Value(GFC_FCOARRAY_SINGLE)
801 Enum(gfc_fcoarray) String(lib) Value(GFC_FCOARRAY_LIB)
804 Fortran RejectNegative JoinedOrMissing
805 -fcheck=[...] Specify which runtime checks are to be performed.
808 Fortran Var(flag_second_underscore) Init(-1)
809 Append a second underscore if the name already contains an underscore.
812 Fortran Var(flag_short_enums)
816 Fortran Var(flag_sign_zero) Init(1)
817 Apply negative sign to zero values.
819 ftail-call-workaround
820 Fortran Alias(ftail-call-workaround=,1,0)
822 ftail-call-workaround=
823 Fortran RejectNegative Joined UInteger IntegerRange(0, 2) Var(flag_tail_call_workaround) Init(1)
824 Disallow tail call optimization when a calling routine may have omitted character lengths.
827 Fortran Var(flag_underscoring) Init(1)
828 Append underscores to externally visible names.
832 Does nothing. Preserved for backward compatibility.
839 Fortran Joined Separate
843 Fortran Joined Separate
847 Fortran Joined Separate
851 Fortran Joined Separate
855 Fortran Joined Separate
859 Fortran Joined Separate
867 Fortran Joined Separate
868 ; Documented in common.opt
872 Statically link the GNU Fortran helper library (libgfortran).
876 Statically link the GCC Quad-Precision Math Library (libquadmath).
880 Conform to the ISO Fortran 2003 standard.
884 Conform to the ISO Fortran 2008 standard.
888 Conform to the ISO Fortran 2008 standard including TS 29113.
892 Conform to the ISO Fortran 2018 standard.
896 Conform to the ISO Fortran 2023 standard.
900 Conform to the ISO Fortran 95 standard.
904 Conform to nothing in particular.
908 Accept extensions to support legacy code.
918 ; This comment is to ensure we retain the blank line above.