1 ; Options for the Fortran 95 front end.
2 ; Copyright (C) 2003-2017 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 Wfunction-elimination
249 Fortran Warning Var(warn_function_elimination)
250 Warn about function call elimination.
253 Fortran Warning Var(warn_implicit_interface)
254 Warn about calls with implicit interface.
257 Fortran Warning Var(warn_implicit_procedure)
258 Warn about called procedures not explicitly declared.
261 Fortran Warning Var(warn_integer_division) LangEnabledBy(Fortran,Wall)
262 Warn about constant integer divisions with truncated results.
265 Fortran Warning Var(warn_line_truncation) LangEnabledBy(Fortran,Wall) Init(-1)
266 Warn about truncated source lines.
269 Fortran Var(warn_intrinsics_std) Warning LangEnabledBy(Fortran,Wall)
270 Warn on intrinsics not part of the selected standard.
273 Fortran LangEnabledBy(Fortran,Wall)
274 ; Documented in common.opt
276 Wmissing-include-dirs
278 ; Documented in C/C++
281 Fortran Var(warn_use_without_only) Warning
282 Warn about USE statements that have no ONLY qualifier.
290 ; Documented in common.opt
293 Fortran Warning Var(warn_real_q_constant) LangEnabledBy(Fortran,Wall)
294 Warn about real-literal-constants with 'q' exponent-letter.
297 Fortran Warning Var(warn_realloc_lhs) LangEnabledBy(Fortran,Wrealloc-lhs-all)
298 Warn when a left-hand-side array variable is reallocated.
301 Fortran Warning Var(warn_realloc_lhs_all)
302 Warn when a left-hand-side variable is reallocated.
305 Fortran Warning Var(warn_target_lifetime) LangEnabledBy(Fortran,Wall)
306 Warn if the pointer in a pointer assignment might outlive its target.
309 Fortran Warning LangEnabledBy(Fortran,Wall)
313 Fortran Warning Var(warn_surprising) LangEnabledBy(Fortran,Wall)
314 Warn about \"suspicious\" constructs.
317 Fortran Warning Var(warn_tabs) LangEnabledBy(Fortran,Wall || Wpedantic)
318 Permit nonconforming uses of the tab character.
321 Fortran Warning Var(warn_undefined_do_loop) LangEnabledBy(Fortran,Wall)
322 Warn about an invalid DO loop.
325 Fortran Warning Var(warn_underflow) Init(1)
326 Warn about underflow of numerical constant expressions.
329 Fortran LangEnabledBy(Fortran,Wall)
330 ; Documented in common.opt
333 Fortran Warning Var(warn_intrinsic_shadow) LangEnabledBy(Fortran,Wall)
334 Warn if a user-procedure has the same name as an intrinsic.
337 LangEnabledBy(Fortran,Wall)
338 ; Documented in common.opt
340 Wunused-dummy-argument
341 Fortran Warning Var(warn_unused_dummy_argument) LangEnabledBy(Fortran,Wall)
342 Warn about unused dummy arguments.
345 Fortran Warning Var(warn_zerotrip) LangEnabledBy(Fortran,Wall)
346 Warn about zero-trip DO loops.
349 Fortran Negative(nocpp)
350 Enable preprocessing.
353 Fortran Joined Negative(nocpp) Undocumented NoDWARFRecord
354 ; Internal option generated by specs from -cpp.
357 Fortran Negative(cpp)
358 Disable preprocessing.
362 ; Documented in common.opt
364 faggressive-function-elimination
365 Fortran Var(flag_aggressive_function_elimination)
366 Eliminate multiple function invocations also for impure functions.
369 Fortran Var(flag_align_commons) Init(1)
370 Enable alignment of COMMON blocks.
373 Fortran RejectNegative Var(flag_all_intrinsics)
374 All intrinsics procedures are available regardless of selected standard.
376 fallow-leading-underscore
377 Fortran Undocumented Var(flag_allow_leading_underscore)
378 ; For internal use only: allow the first character of symbol names to be an underscore
381 Fortran Var(flag_automatic) Init(1)
382 Do not treat local variables and COMMON blocks as if they were named in SAVE statements.
385 Fortran Var(flag_backslash)
386 Specify that backslash in string introduces an escape character.
389 Fortran Var(flag_backtrace) Init(1)
390 Produce a backtrace when a runtime error is encountered.
393 Fortran RejectNegative Joined UInteger Var(flag_blas_matmul_limit) Init(30)
394 -fblas-matmul-limit=<n> Size of the smallest matrix for which matmul will use BLAS.
396 fcheck-array-temporaries
398 Produce a warning at runtime if a array temporary has been created for a procedure argument.
401 Fortran RejectNegative Joined Enum(gfc_convert) Var(flag_convert) Init(GFC_FLAG_CONVERT_NATIVE)
402 -fconvert=<big-endian|little-endian|native|swap> The endianness used for unformatted files.
405 Name(gfc_convert) Type(enum gfc_convert) UnknownError(Unrecognized option to endianness value: %qs)
408 Enum(gfc_convert) String(big-endian) Value(GFC_FLAG_CONVERT_BIG)
411 Enum(gfc_convert) String(little-endian) Value(GFC_FLAG_CONVERT_LITTLE)
414 Enum(gfc_convert) String(native) Value(GFC_FLAG_CONVERT_NATIVE)
417 Enum(gfc_convert) String(swap) Value(GFC_FLAG_CONVERT_SWAP)
420 Fortran Var(flag_cray_pointer)
421 Use the Cray Pointer extension.
424 Fortran Var(flag_c_prototypes)
425 Generate C prototypes from BIND(C) declarations.
428 Fortran RejectNegative
429 Ignore 'D' in column one in fixed form.
432 Fortran RejectNegative
433 Treat lines with 'D' in column one as comments.
436 Fortran Var(flag_dec)
437 Enable all DEC language extensions.
440 Fortran Var(flag_dec_intrinsic_ints)
441 Enable kind-specific variants of integer intrinsic functions.
444 Fortran Var(flag_dec_math)
445 Enable legacy math intrinsics for compatibility.
448 Fortran Var(flag_dec_structure)
449 Enable support for DEC STRUCTURE/RECORD.
452 Fortran Var(flag_dec_static)
453 Enable DEC-style STATIC and AUTOMATIC attributes.
456 Fortran Var(flag_default_double)
457 Set the default double precision kind to an 8 byte wide type.
460 Fortran Var(flag_default_integer)
461 Set the default integer kind to an 8 byte wide type.
464 Fortran Var(flag_default_real_8)
465 Set the default real kind to an 8 byte wide type.
468 Fortran Var(flag_default_real_10)
469 Set the default real kind to an 10 byte wide type.
472 Fortran Var(flag_default_real_16)
473 Set the default real kind to an 16 byte wide type.
476 Fortran Var(flag_dollar_ok)
477 Allow dollar signs in entity names.
481 Does nothing. Preserved for backward compatibility.
483 fdump-fortran-original
484 Fortran Var(flag_dump_fortran_original)
485 Display the code tree after parsing.
487 fdump-fortran-optimized
488 Fortran Var(flag_dump_fortran_optimized)
489 Display the code tree after front end optimization.
492 Fortran Alias(fdump-fortran-original)
493 Display the code tree after parsing; deprecated option.
496 Fortran Var(flag_external_blas)
497 Specify that an external BLAS library should be used for matmul calls on large-size arrays.
500 Fortran Var(flag_f2c)
501 Use f2c calling convention.
504 Fortran RejectNegative
505 Assume that the source file is fixed form.
508 Fortran Var(flag_test_forall_temp) Init(0)
509 Force creation of temporary to test infrequently-executed forall code.
512 Fortran RejectNegative Var(flag_integer4_kind,8)
513 Interpret any INTEGER(4) as an INTEGER(8).
515 fintrinsic-modules-path
516 Fortran RejectNegative Separate
517 Specify where to find the compiled intrinsic modules.
519 fintrinsic-modules-path=
520 Fortran RejectNegative Joined
521 Specify where to find the compiled intrinsic modules.
523 ffixed-line-length-none
524 Fortran RejectNegative Var(flag_fixed_line_length,0)
525 Allow arbitrary character line width in fixed mode.
528 Fortran RejectNegative Joined UInteger Var(flag_fixed_line_length) Init(72)
529 -ffixed-line-length-<n> Use n as character line width in fixed mode.
532 Fortran RejectNegative JoinedOrMissing
533 -ffpe-trap=[...] Stop on following floating point exceptions.
536 Fortran RejectNegative JoinedOrMissing
537 -ffpe-summary=[...] Print summary of floating point exceptions.
540 Fortran RejectNegative
541 Assume that the source file is free form.
543 ffree-line-length-none
544 Fortran RejectNegative Var(flag_free_line_length,0)
545 Allow arbitrary character line width in free mode.
548 Fortran RejectNegative Joined UInteger Var(flag_free_line_length) Init(132)
549 -ffree-line-length-<n> Use n as character line width in free mode.
552 Fortran Var(flag_frontend_optimize) Init(-1)
553 Enable front end optimization.
556 Fortran Var(flag_implicit_none)
557 Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements.
560 Fortran RejectNegative Joined UInteger
561 -finit-character=<n> Initialize local character variables to ASCII value n.
564 Fortran Var(flag_init_derived)
565 Initialize components of derived type variables according to other init flags.
568 Fortran RejectNegative Joined
569 -finit-integer=<n> Initialize local integer variables to n.
573 Initialize local variables to zero (from g77).
576 Fortran RejectNegative Joined
577 -finit-logical=<true|false> Initialize local logical variables.
580 Fortran RejectNegative ToLower Joined Enum(gfc_init_local_real) Var(flag_init_real) Init(GFC_INIT_REAL_OFF)
581 -finit-real=<zero|snan|nan|inf|-inf> Initialize local real variables.
584 Name(gfc_init_local_real) Type(enum gfc_init_local_real) UnknownError(Unrecognized option to floating-point init value: %qs)
587 Enum(gfc_init_local_real) String(zero) Value(GFC_INIT_REAL_ZERO)
590 Enum(gfc_init_local_real) String(snan) Value(GFC_INIT_REAL_SNAN)
593 Enum(gfc_init_local_real) String(nan) Value(GFC_INIT_REAL_NAN)
596 Enum(gfc_init_local_real) String(inf) Value(GFC_INIT_REAL_INF)
599 Enum(gfc_init_local_real) String(-inf) Value(GFC_INIT_REAL_NEG_INF)
601 finline-matmul-limit=
602 Fortran RejectNegative Joined UInteger Var(flag_inline_matmul_limit) Init(-1)
603 -finline-matmul-limit=<n> Specify the size of the largest matrix for which matmul will be inlined.
605 fmax-array-constructor=
606 Fortran RejectNegative Joined UInteger Var(flag_max_array_constructor) Init(65535)
607 -fmax-array-constructor=<n> Maximum number of objects in an array constructor.
609 fmax-identifier-length=
610 Fortran RejectNegative Joined UInteger
611 -fmax-identifier-length=<n> Maximum identifier length.
613 fmax-subrecord-length=
614 Fortran RejectNegative Joined UInteger Var(flag_max_subrecord_length)
615 -fmax-subrecord-length=<n> Maximum length for subrecords.
618 Fortran RejectNegative Joined UInteger Var(flag_max_stack_var_size) Init(-2)
619 -fmax-stack-var-size=<n> Size in bytes of the largest array that will be put on the stack.
622 Fortran Var(flag_stack_arrays) Init(-1)
623 Put all local arrays on stack.
626 Fortran Var(flag_module_private)
627 Set default accessibility of module entities to PRIVATE.
634 Fortran LTO Joined Var(flag_openacc_dims)
646 Fortran Var(flag_pack_derived)
647 Try to lay out derived types as compactly as possible.
654 Fortran Var(flag_protect_parens) Init(-1)
655 Protect parentheses in expressions.
658 Fortran Var(flag_range_check) Init(1)
659 Enable range checking during compilation.
662 Fortran RejectNegative Var(flag_real4_kind,8)
663 Interpret any REAL(4) as a REAL(8).
666 Fortran RejectNegative Var(flag_real4_kind,10)
667 Interpret any REAL(4) as a REAL(10).
670 Fortran RejectNegative Var(flag_real4_kind,16)
671 Interpret any REAL(4) as a REAL(16).
674 Fortran RejectNegative Var(flag_real8_kind,4)
675 Interpret any REAL(8) as a REAL(4).
678 Fortran RejectNegative Var(flag_real8_kind,10)
679 Interpret any REAL(8) as a REAL(10).
682 Fortran RejectNegative Var(flag_real8_kind,16)
683 Interpret any REAL(8) as a REAL(16).
686 Fortran Var(flag_realloc_lhs) Init(-1)
687 Reallocate the LHS in assignments.
690 Fortran RejectNegative Var(flag_record_marker,4)
691 Use a 4-byte record marker for unformatted files.
694 Fortran RejectNegative Var(flag_record_marker,8)
695 Use an 8-byte record marker for unformatted files.
698 Fortran Var(flag_recursive)
699 Allocate local variables on the stack to allow indirect recursion.
702 Fortran Var(flag_repack_arrays)
703 Copy array sections into a contiguous block on procedure entry.
706 Fortran RejectNegative Joined Enum(gfc_fcoarray) Var(flag_coarray) Init(GFC_FCOARRAY_NONE)
707 -fcoarray=<none|single|lib> Specify which coarray parallelization should be used.
710 Name(gfc_fcoarray) Type(enum gfc_fcoarray) UnknownError(Unrecognized option: %qs)
713 Enum(gfc_fcoarray) String(none) Value(GFC_FCOARRAY_NONE)
716 Enum(gfc_fcoarray) String(single) Value(GFC_FCOARRAY_SINGLE)
719 Enum(gfc_fcoarray) String(lib) Value(GFC_FCOARRAY_LIB)
722 Fortran RejectNegative JoinedOrMissing
723 -fcheck=[...] Specify which runtime checks are to be performed.
726 Fortran Var(flag_second_underscore) Init(-1)
727 Append a second underscore if the name already contains an underscore.
730 Fortran Var(flag_short_enums)
734 Fortran Var(flag_sign_zero) Init(1)
735 Apply negative sign to zero values.
738 Fortran Var(flag_underscoring) Init(1)
739 Append underscores to externally visible names.
743 Does nothing. Preserved for backward compatibility.
750 Fortran Joined Separate
754 Fortran Joined Separate
758 Fortran Joined Separate
762 Fortran Joined Separate
766 Fortran Joined Separate
770 Fortran Joined Separate
778 Fortran Joined Separate
779 ; Documented in common.opt
783 Statically link the GNU Fortran helper library (libgfortran).
787 Conform to the ISO Fortran 2003 standard.
791 Conform to the ISO Fortran 2008 standard.
795 Conform to the ISO Fortran 2008 standard including TS 29113.
799 Conform to the ISO Fortran 95 standard.
803 Conform to nothing in particular.
807 Accept extensions to support legacy code.
817 ; This comment is to ensure we retain the blank line above.