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