re PR fortran/54687 (Use gcc option machinery for gfortran)
authorTobias Burnus <burnus@net-b.de>
Tue, 16 Dec 2014 20:44:45 +0000 (21:44 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Tue, 16 Dec 2014 20:44:45 +0000 (21:44 +0100)
2014-12-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54687
        * gfortran.h (gfc_option_t): Remove flags which now
        have a Var().
        * lang.opt (flag-aggressive_function_elimination,
        flag-align_commons, flag-all_intrinsics,
        flag-allow_leading_underscore, flag-automatic, flag-backslash,
        flag-backtrace, flag-blas_matmul_limit, flag-cray_pointer,
        flag-dollar_ok, flag-dump_fortran_original,
        flag-dump_fortran_optimized, flag-external_blas, flag-f2c,
        flag-implicit_none, flag-max_array_constructor,
        flag-module_private, flag-pack_derived, flag-range_check,
        flag-recursive, flag-repack_arrays, flag-sign_zero,
        flag-underscoring): Add Var() and, where applicable, Enum().
        * options.c (gfc_init_options, gfc_post_options,
        gfc_handle_option): Update for *.opt changes.
        * arith.c: Update for flag-variable name changes.
        * array.c: Ditto.
        * cpp.c: Ditto.
        * decl.c: Ditto.
        * expr.c: Ditto.
        * f95-lang.c: Ditto.
        * frontend-passes.c: Ditto.
        * intrinsic.c: Ditto.
        * io.c: Ditto.
        * match.c: Ditto.
        * module.c: Ditto.
        * parse.c: Ditto.
        * primary.c: Ditto.
        * resolve.c: Ditto.
        * scanner.c: Ditto.
        * simplify.c: Ditto.
        * symbol.c: Ditto.
        * trans-array.c: Ditto.
        * trans-common.c: Ditto.
        * trans-decl.c: Ditto.
        * trans-expr.c: Ditto.
        * trans-intrinsic.c: Ditto.
        * trans-openmp.c: Ditto.
        * trans-types.c: Ditto.

From-SVN: r218792

28 files changed:
gcc/fortran/ChangeLog
gcc/fortran/arith.c
gcc/fortran/array.c
gcc/fortran/cpp.c
gcc/fortran/decl.c
gcc/fortran/expr.c
gcc/fortran/f95-lang.c
gcc/fortran/frontend-passes.c
gcc/fortran/gfortran.h
gcc/fortran/intrinsic.c
gcc/fortran/io.c
gcc/fortran/lang.opt
gcc/fortran/match.c
gcc/fortran/module.c
gcc/fortran/options.c
gcc/fortran/parse.c
gcc/fortran/primary.c
gcc/fortran/resolve.c
gcc/fortran/scanner.c
gcc/fortran/simplify.c
gcc/fortran/symbol.c
gcc/fortran/trans-array.c
gcc/fortran/trans-common.c
gcc/fortran/trans-decl.c
gcc/fortran/trans-expr.c
gcc/fortran/trans-intrinsic.c
gcc/fortran/trans-openmp.c
gcc/fortran/trans-types.c

index 98c5c54c2c798a31719053d452195b9e58d8f442..e6ab2a8f01c38a154cf6b7e6f9491f5c74e14257 100644 (file)
@@ -1,5 +1,48 @@
 2014-12-16  Tobias Burnus  <burnus@net-b.de>
 
+       PR fortran/54687
+       * gfortran.h (gfc_option_t): Remove flags which now
+       have a Var().
+       * lang.opt (flag-aggressive_function_elimination,
+       flag-align_commons, flag-all_intrinsics,
+       flag-allow_leading_underscore, flag-automatic, flag-backslash,
+       flag-backtrace, flag-blas_matmul_limit, flag-cray_pointer,
+       flag-dollar_ok, flag-dump_fortran_original,
+       flag-dump_fortran_optimized, flag-external_blas, flag-f2c,
+       flag-implicit_none, flag-max_array_constructor,
+       flag-module_private, flag-pack_derived, flag-range_check,
+       flag-recursive, flag-repack_arrays, flag-sign_zero,
+       flag-underscoring): Add Var() and, where applicable, Enum().
+       * options.c (gfc_init_options, gfc_post_options,
+       gfc_handle_option): Update for *.opt changes.
+       * arith.c: Update for flag-variable name changes.
+       * array.c: Ditto.
+       * cpp.c: Ditto.
+       * decl.c: Ditto.
+       * expr.c: Ditto.
+       * f95-lang.c: Ditto.
+       * frontend-passes.c: Ditto.
+       * intrinsic.c: Ditto.
+       * io.c: Ditto.
+       * match.c: Ditto.
+       * module.c: Ditto.
+       * parse.c: Ditto.
+       * primary.c: Ditto.
+       * resolve.c: Ditto.
+       * scanner.c: Ditto.
+       * simplify.c: Ditto.
+       * symbol.c: Ditto.
+       * trans-array.c: Ditto.
+       * trans-common.c: Ditto.
+       * trans-decl.c: Ditto.
+       * trans-expr.c: Ditto.
+       * trans-intrinsic.c: Ditto.
+       * trans-openmp.c: Ditto.
+       * trans-types.c: Ditto.
+
+2014-12-16  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/54687
        * lang.opt (fsecond-underscore, frecord-marker=8, frecord-marker=4,
        frealloc-lhs, freal-8-real-16, freal-8-real-10, freal-8-real-4,
        freal-4-real-16, freal-4-real-10, freal-4-real-8, fprotect-parens,
index 63945477188baefb5a9022e17a33c7212fcab40c..e8a5efe67908757025b1137dc795c04e11e07466 100644 (file)
@@ -301,7 +301,7 @@ gfc_check_integer_range (mpz_t p, int kind)
     }
 
 
-  if (gfc_option.flag_range_check == 0)
+  if (flag_range_check == 0)
     return result;
 
   if (mpz_cmp (p, gfc_integer_kinds[i].min_int) < 0
@@ -333,12 +333,12 @@ gfc_check_real_range (mpfr_t p, int kind)
 
   if (mpfr_inf_p (p))
     {
-      if (gfc_option.flag_range_check != 0)
+      if (flag_range_check != 0)
        retval = ARITH_OVERFLOW;
     }
   else if (mpfr_nan_p (p))
     {
-      if (gfc_option.flag_range_check != 0)
+      if (flag_range_check != 0)
        retval = ARITH_NAN;
     }
   else if (mpfr_sgn (q) == 0)
@@ -348,14 +348,14 @@ gfc_check_real_range (mpfr_t p, int kind)
     }
   else if (mpfr_cmp (q, gfc_real_kinds[i].huge) > 0)
     {
-      if (gfc_option.flag_range_check == 0)
+      if (flag_range_check == 0)
        mpfr_set_inf (p, mpfr_sgn (p));
       else
        retval = ARITH_OVERFLOW;
     }
   else if (mpfr_cmp (q, gfc_real_kinds[i].subnormal) < 0)
     {
-      if (gfc_option.flag_range_check == 0)
+      if (flag_range_check == 0)
        {
          if (mpfr_sgn (p) < 0)
            {
@@ -736,7 +736,7 @@ gfc_arith_divide (gfc_expr *op1, gfc_expr *op2, gfc_expr **resultp)
       break;
 
     case BT_REAL:
-      if (mpfr_sgn (op2->value.real) == 0 && gfc_option.flag_range_check == 1)
+      if (mpfr_sgn (op2->value.real) == 0 && flag_range_check == 1)
        {
          rc = ARITH_DIV0;
          break;
@@ -748,7 +748,7 @@ gfc_arith_divide (gfc_expr *op1, gfc_expr *op2, gfc_expr **resultp)
 
     case BT_COMPLEX:
       if (mpc_cmp_si_si (op2->value.complex, 0, 0) == 0
-         && gfc_option.flag_range_check == 1)
+         && flag_range_check == 1)
        {
          rc = ARITH_DIV0;
          break;
@@ -863,7 +863,7 @@ arith_power (gfc_expr *op1, gfc_expr *op2, gfc_expr **resultp)
                    int i;
                    i = gfc_validate_kind (BT_INTEGER, result->ts.kind, false);
 
-                   if (gfc_option.flag_range_check)
+                   if (flag_range_check)
                      rc = ARITH_OVERFLOW;
 
                    /* Still, we want to give the same value as the
@@ -1978,7 +1978,7 @@ gfc_int2int (gfc_expr *src, int kind)
 
   /*  If we do not trap numeric overflow, we need to convert the number to
       signed, throwing away high-order bits if necessary.  */
-  if (gfc_option.flag_range_check == 0)
+  if (flag_range_check == 0)
     {
       int k;
 
index 300bfebf1fa5a486bddfa8191bc0c7e676d36ac8..e88ba668adb186f17b053d7b49fe454d5b5222fb 100644 (file)
@@ -21,6 +21,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
+#include "flags.h"
 #include "gfortran.h"
 #include "match.h"
 #include "constructor.h"
@@ -1654,7 +1655,7 @@ gfc_expand_constructor (gfc_expr *e, bool fatal)
 
   /* If we can successfully get an array element at the max array size then
      the array is too big to expand, so we just return.  */
-  f = gfc_get_array_element (e, gfc_option.flag_max_array_constructor);
+  f = gfc_get_array_element (e, flag_max_array_constructor);
   if (f != NULL)
     {
       gfc_free_expr (f);
@@ -1663,8 +1664,7 @@ gfc_expand_constructor (gfc_expr *e, bool fatal)
          gfc_error ("The number of elements in the array constructor "
                     "at %L requires an increase of the allowed %d "
                     "upper limit.   See %<-fmax-array-constructor%> "
-                    "option", &e->where,
-                    gfc_option.flag_max_array_constructor);
+                    "option", &e->where, flag_max_array_constructor);
          return false;
        }
       return true;
index 090e20974963fec6c9ca10decaf3aeb1725c1bd4..70f83ee4762ede2ea521bf8d34fad2a782e74810 100644 (file)
@@ -170,7 +170,7 @@ cpp_define_builtins (cpp_reader *pfile)
   cpp_define (pfile, "__GFORTRAN__=1");
   cpp_define (pfile, "_LANGUAGE_FORTRAN=1");
 
-  if (gfc_option.gfc_flag_openmp)
+  if (flag_openmp)
     cpp_define (pfile, "_OPENMP=201307");
 
   /* The defines below are necessary for the TARGET_* macros.
@@ -470,7 +470,7 @@ gfc_cpp_post_options (void)
 
   cpp_option->cpp_pedantic = pedantic;
 
-  cpp_option->dollars_in_ident = gfc_option.flag_dollar_ok;
+  cpp_option->dollars_in_ident = flag_dollar_ok;
   cpp_option->discard_comments = gfc_cpp_option.discard_comments;
   cpp_option->discard_comments_in_macro_exp = gfc_cpp_option.discard_comments_in_macro_exp;
   cpp_option->print_include_names = gfc_cpp_option.print_include_names;
index fe3e60cce01e9c29ff1e01e7365a9e00c640925a..8d01c453e89293a26535975e4955bf29ff09133b 100644 (file)
@@ -1852,7 +1852,7 @@ variable_decl (int elem)
       goto cleanup;
     }
 
-  if (gfc_option.flag_cray_pointer)
+  if (flag_cray_pointer)
     cp_as = gfc_copy_array_spec (as);
 
   /* At this point, we know for sure if the symbol is PARAMETER and can thus
@@ -1921,7 +1921,7 @@ variable_decl (int elem)
   /*  If this symbol has already shown up in a Cray Pointer declaration,
       and this is not a component declaration,
       then we want to set the type & bail out.  */
-  if (gfc_option.flag_cray_pointer && gfc_current_state () != COMP_DERIVED)
+  if (flag_cray_pointer && gfc_current_state () != COMP_DERIVED)
     {
       gfc_find_symbol (name, gfc_current_ns, 1, &sym);
       if (sym != NULL && sym->attr.cray_pointee)
@@ -6769,7 +6769,7 @@ gfc_match_pointer (void)
   gfc_gobble_whitespace ();
   if (gfc_peek_ascii_char () == '(')
     {
-      if (!gfc_option.flag_cray_pointer)
+      if (!flag_cray_pointer)
        {
          gfc_error ("Cray pointer declaration at %C requires -fcray-pointer "
                     "flag");
index 5c2a3065eb85fb4ea909798b61a0f6067c0ec3e9..a887d4c56610ccb1576cd03f9f73be330298e6b3 100644 (file)
@@ -1530,13 +1530,12 @@ find_array_section (gfc_expr *expr, gfc_ref *ref)
        }
 
       limit = mpz_get_ui (ptr);
-      if (limit >= gfc_option.flag_max_array_constructor)
+      if (limit >= flag_max_array_constructor)
         {
          gfc_error ("The number of elements in the array constructor "
                     "at %L requires an increase of the allowed %d "
                     "upper limit.   See -fmax-array-constructor "
-                    "option", &expr->where,
-                    gfc_option.flag_max_array_constructor);
+                    "option", &expr->where, flag_max_array_constructor);
          return false;
        }
 
index 223e9381e69f66aa5df28612fc05d93c7bd4f094..10542307a354c9946b53129689b72f1881f83c87 100644 (file)
@@ -1139,9 +1139,7 @@ gfc_init_builtin_functions (void)
 #include "../sync-builtins.def"
 #undef DEF_SYNC_BUILTIN
 
-  if (gfc_option.gfc_flag_openmp
-      || gfc_option.gfc_flag_openmp_simd
-      || flag_tree_parallelize_loops)
+  if (flag_openmp || flag_openmp_simd || flag_tree_parallelize_loops)
     {
 #undef DEF_GOMP_BUILTIN
 #define DEF_GOMP_BUILTIN(code, name, type, attr) \
index 0e2c2088eafb7510ed8b95fa6df27211c58af135..7d59f2ebd6bb4e070c023e4ea91c57d130bac30c 100644 (file)
@@ -108,7 +108,7 @@ gfc_run_passes (gfc_namespace *ns)
     {
       optimize_namespace (ns);
       optimize_reduction (ns);
-      if (gfc_option.dump_fortran_optimized)
+      if (flag_dump_fortran_optimized)
        gfc_dump_parse_tree (ns, stdout);
 
       expr_array.release ();
@@ -389,7 +389,7 @@ cfe_register_funcs (gfc_expr **e, int *walk_subtrees ATTRIBUTE_UNUSED,
 
       /* Only eliminate potentially impure functions if the
         user specifically requested it.  */
-      if (!gfc_option.flag_aggressive_function_elimination
+      if (!flag_aggressive_function_elimination
          && !(*e)->value.function.esym->attr.pure
          && !(*e)->value.function.esym->attr.implicit_pure)
        return 0;
index fb0585b35b1dd042c0dba071ec9c5ebef7b3ebd5..0f8b2be596586bcd71263ec1a09afcd1a0aad5cc 100644 (file)
@@ -2429,42 +2429,17 @@ typedef struct
   int max_continue_fixed;
   int max_continue_free;
   int max_identifier_length;
-  int dump_fortran_original;
-  int dump_fortran_optimized;
 
   int max_errors;
 
-  int flag_all_intrinsics;
-  int flag_dollar_ok;
-  int flag_underscoring;
-  int flag_implicit_none;
-  int flag_max_array_constructor;
-  int flag_range_check;
-  int flag_pack_derived;
-  int flag_repack_arrays;
   int flag_preprocessed;
-  int flag_f2c;
-  int flag_automatic;
-  int flag_backslash;
-  int flag_backtrace;
-  int flag_allow_leading_underscore;
-  int flag_external_blas;
-  int blas_matmul_limit;
-  int flag_cray_pointer;
   int flag_d_lines;
-  int gfc_flag_openmp;
-  int gfc_flag_openmp_simd;
-  int flag_sign_zero;
-  int flag_module_private;
-  int flag_recursive;
   int flag_init_integer;
   int flag_init_integer_value;
   int flag_init_real;
   int flag_init_logical;
   int flag_init_character;
   char flag_init_character_value;
-  int flag_align_commons;
-  int flag_aggressive_function_elimination;
 
   int fpe;
   int fpe_summary;
index e920a422667c4607b6e9916bcd62b4154bcf7439..415a7c9920630037a47336fc59a1c6bcf4b79d43 100644 (file)
@@ -4264,7 +4264,7 @@ gfc_check_intrinsic_standard (const gfc_intrinsic_sym* isym,
   const char* symstd_msg;
 
   /* For -fall-intrinsics, just succeed.  */
-  if (gfc_option.flag_all_intrinsics)
+  if (flag_all_intrinsics)
     return true;
 
   /* Find the symbol's standard message for later usage.  */
@@ -4623,8 +4623,7 @@ gfc_convert_type_warn (gfc_expr *expr, gfc_typespec *ts, int eflag, int wflag)
     }
   else if (wflag)
     {
-      if (gfc_option.flag_range_check
-         && expr->expr_type == EXPR_CONSTANT
+      if (flag_range_check && expr->expr_type == EXPR_CONSTANT
          && from_ts.type == ts->type)
        {
          /* Do nothing. Constants of the same type are range-checked
index ef0e59aba13f6ba9a07b6b2c69ad6c1970c0aa52..dca0829eaee505d513e3a65bae61ed38e190a5a1 100644 (file)
@@ -157,7 +157,7 @@ next_char (gfc_instring in_string)
        c = '\0';
     }
 
-  if (gfc_option.flag_backslash && c == '\\')
+  if (flag_backslash && c == '\\')
     {
       locus old_locus = gfc_current_locus;
 
index 78b3d590877a3a2d32df94a47c68c75191e58efc..1e84c69053ea607aff0cc0bfaed6df1f78e1b1dd 100644 (file)
@@ -346,35 +346,35 @@ Fortran Joined
 ; Documented in common.opt
 
 faggressive-function-elimination
-Fortran
+Fortran Var(flag_aggressive_function_elimination)
 Eliminate multiple function invokations also for impure functions
 
 falign-commons
-Fortran
+Fortran Var(flag_align_commons) Init(1)
 Enable alignment of COMMON blocks
 
 fall-intrinsics
-Fortran RejectNegative
+Fortran RejectNegative Var(flag_all_intrinsics)
 All intrinsics procedures are available regardless of selected standard
 
 fallow-leading-underscore
-Fortran Undocumented
+Fortran Undocumented Var(flag_allow_leading_underscore)
 ; For internal use only: allow the first character of symbol names to be an underscore
 
 fautomatic
-Fortran
+Fortran Var(flag_automatic) Init(1)
 Do not treat local variables and COMMON blocks as if they were named in SAVE statements
 
 fbackslash
-Fortran
+Fortran Var(flag_backslash)
 Specify that backslash in string introduces an escape character
 
 fbacktrace
-Fortran
+Fortran Var(flag_backtrace) Init(1)
 Produce a backtrace when a runtime error is encountered
 
 fblas-matmul-limit=
-Fortran RejectNegative Joined UInteger
+Fortran RejectNegative Joined UInteger Var(flag_blas_matmul_limit) Init(30)
 -fblas-matmul-limit=<n>        Size of the smallest matrix for which matmul will use BLAS
 
 fcheck-array-temporaries
@@ -398,7 +398,7 @@ Fortran RejectNegative
 Swap endianness for unformatted files
 
 fcray-pointer
-Fortran
+Fortran Var(flag_cray_pointer)
 Use the Cray Pointer extension
 
 fd-lines-as-code
@@ -422,7 +422,7 @@ Fortran Var(flag_default_real)
 Set the default real kind to an 8 byte wide type
 
 fdollar-ok
-Fortran
+Fortran Var(flag_dollar_ok)
 Allow dollar signs in entity names
 
 fdump-core
@@ -430,23 +430,23 @@ Fortran Ignore
 Does nothing. Preserved for backward compatibility.
 
 fdump-fortran-original
-Fortran
+Fortran Var(flag_dump_fortran_original)
 Display the code tree after parsing
 
 fdump-fortran-optimized
-Fortran
+Fortran Var(flag_dump_fortran_optimized)
 Display the code tree after front end optimization
 
 fdump-parse-tree
-Fortran
+Fortran Alias(fdump-fortran-original)
 Display the code tree after parsing; deprecated option
 
 fexternal-blas
-Fortran
+Fortran Var(flag_external_blas)
 Specify that an external BLAS library should be used for matmul calls on large-size arrays
 
 ff2c
-Fortran
+Fortran Var(flag_f2c)
 Use f2c calling convention
 
 ffixed-form
@@ -498,7 +498,7 @@ Fortran Var(flag_frontend_optimize) Init(-1)
 Enable front end optimization
 
 fimplicit-none
-Fortran
+Fortran Var(flag_implicit_none)
 Specify that no implicit typing is allowed, unless overridden by explicit IMPLICIT statements
 
 finit-character=
@@ -522,7 +522,7 @@ Fortran RejectNegative Joined
 -finit-real=<zero|nan|inf|-inf>        Initialize local real variables
 
 fmax-array-constructor=
-Fortran RejectNegative Joined UInteger
+Fortran RejectNegative Joined UInteger Var(flag_max_array_constructor) Init(65535)
 -fmax-array-constructor=<n>    Maximum number of objects in an array constructor
 
 fmax-identifier-length=
@@ -542,7 +542,7 @@ Fortran Var(flag_stack_arrays) Init(-1)
 Put all local arrays on stack.
 
 fmodule-private
-Fortran
+Fortran Var(flag_module_private)
 Set default accessibility of module entities to PRIVATE.
 
 fopenmp
@@ -554,7 +554,7 @@ Fortran
 ; Documented in C
 
 fpack-derived
-Fortran
+Fortran Var(flag_pack_derived)
 Try to lay out derived types as compactly as possible
 
 fpreprocessed
@@ -566,7 +566,7 @@ Fortran Var(flag_protect_parens) Init(-1)
 Protect parentheses in expressions
 
 frange-check
-Fortran
+Fortran Var(flag_range_check) Init(1)
 Enable range checking during compilation
 
 freal-4-real-8
@@ -606,11 +606,11 @@ Fortran RejectNegative Var(flag_record_marker,8)
 Use an 8-byte record marker for unformatted files
 
 frecursive
-Fortran
+Fortran Var(flag_recursive)
 Allocate local variables on the stack to allow indirect recursion
 
 frepack-arrays
-Fortran
+Fortran Var(flag_repack_arrays)
 Copy array sections into a contiguous block on procedure entry
 
 fcoarray=
@@ -630,11 +630,11 @@ Fortran Var(flag_short_enums)
 ; Documented in C
 
 fsign-zero
-Fortran
+Fortran Var(flag_sign_zero) Init(1)
 Apply negative sign to zero values
 
 funderscoring
-Fortran
+Fortran Var(flag_underscoring) Init(1)
 Append underscores to externally visible names
 
 fwhole-file
index 9e0851351c238f74f07e4ee20d0ef420a6b07bfd..0a2fb0dd95f32664b38772e4e3ad8eebc352cfde 100644 (file)
@@ -530,7 +530,7 @@ gfc_match_name (char *buffer)
   gfc_gobble_whitespace ();
 
   c = gfc_next_ascii_char ();
-  if (!(ISALPHA (c) || (c == '_' && gfc_option.flag_allow_leading_underscore)))
+  if (!(ISALPHA (c) || (c == '_' && flag_allow_leading_underscore)))
     {
       if (!gfc_error_flag_test () && c != '(')
        gfc_error ("Invalid character in name at %C");
@@ -553,9 +553,9 @@ gfc_match_name (char *buffer)
       old_loc = gfc_current_locus;
       c = gfc_next_ascii_char ();
     }
-  while (ISALNUM (c) || c == '_' || (gfc_option.flag_dollar_ok && c == '$'));
+  while (ISALNUM (c) || c == '_' || (flag_dollar_ok && c == '$'));
 
-  if (c == '$' && !gfc_option.flag_dollar_ok)
+  if (c == '$' && !flag_dollar_ok)
     {
       gfc_fatal_error ("Invalid character %<$%> at %L. Use %<-fdollar-ok%> to "
                       "allow it as an extension", &old_loc);
index a3ec1a1e3cfaf89df6367b45c8f713ea69e21710..f6e5eec0a6dc94e3c18c0c96ba9ac1b41f1e64e8 100644 (file)
@@ -5249,7 +5249,7 @@ check_access (gfc_access specific_access, gfc_access default_access)
   if (specific_access == ACCESS_PRIVATE)
     return FALSE;
 
-  if (gfc_option.flag_module_private)
+  if (flag_module_private)
     return default_access == ACCESS_PUBLIC;
   else
     return default_access != ACCESS_PRIVATE;
index 5a1be120da054b0d1e01d74c221ec9b5976fa8aa..5dcb5d84b09cc599e83987ea16b665d8908bc3b3 100644 (file)
@@ -84,43 +84,17 @@ gfc_init_options (unsigned int decoded_options_count,
   gfc_option.max_continue_fixed = 255;
   gfc_option.max_continue_free = 255;
   gfc_option.max_identifier_length = GFC_MAX_SYMBOL_LEN;
-  gfc_option.flag_max_array_constructor = 65535;
   gfc_option.convert = GFC_CONVERT_NATIVE;
-  gfc_option.dump_fortran_original = 0;
-  gfc_option.dump_fortran_optimized = 0;
-
   gfc_option.max_errors = 25;
 
-  gfc_option.flag_all_intrinsics = 0;
-  gfc_option.flag_dollar_ok = 0;
-  gfc_option.flag_underscoring = 1;
-  gfc_option.flag_f2c = 0;
-  gfc_option.flag_implicit_none = 0;
-
-  gfc_option.flag_range_check = 1;
-  gfc_option.flag_pack_derived = 0;
-  gfc_option.flag_repack_arrays = 0;
   gfc_option.flag_preprocessed = 0;
-  gfc_option.flag_automatic = 1;
-  gfc_option.flag_backslash = 0;
-  gfc_option.flag_module_private = 0;
-  gfc_option.flag_backtrace = 1;
-  gfc_option.flag_allow_leading_underscore = 0;
-  gfc_option.flag_external_blas = 0;
-  gfc_option.blas_matmul_limit = 30;
-  gfc_option.flag_cray_pointer = 0;
   gfc_option.flag_d_lines = -1;
-  gfc_option.gfc_flag_openmp = 0;
-  gfc_option.flag_sign_zero = 1;
-  gfc_option.flag_recursive = 0;
   gfc_option.flag_init_integer = GFC_INIT_INTEGER_OFF;
   gfc_option.flag_init_integer_value = 0;
   gfc_option.flag_init_real = GFC_INIT_REAL_OFF;
   gfc_option.flag_init_logical = GFC_INIT_LOGICAL_OFF;
   gfc_option.flag_init_character = GFC_INIT_CHARACTER_OFF;
   gfc_option.flag_init_character_value = (char)0;
-  gfc_option.flag_align_commons = 1;
-  gfc_option.flag_aggressive_function_elimination = 0;
   
   gfc_option.fpe = 0;
   /* All except GFC_FPE_INEXACT.  */
@@ -262,7 +236,7 @@ gfc_post_options (const char **pfilename)
     gfc_option.rtcheck |= GFC_RTCHECK_BOUNDS;
 
   if (flag_compare_debug)
-    gfc_option.dump_fortran_original = 0;
+    flag_dump_fortran_original = 0;
 
   /* Make -fmax-errors visible to gfortran's diagnostic machinery.  */
   if (global_options_set.x_flag_max_errors)
@@ -347,33 +321,32 @@ gfc_post_options (const char **pfilename)
      use it if we're trying to be compatible with f2c, and not
      otherwise.  */
   if (flag_second_underscore == -1)
-    flag_second_underscore = gfc_option.flag_f2c;
+    flag_second_underscore = flag_f2c;
 
-  if (!gfc_option.flag_automatic && flag_max_stack_var_size != -2
+  if (!flag_automatic && flag_max_stack_var_size != -2
       && flag_max_stack_var_size != 0)
     gfc_warning_now ("Flag %<-fno-automatic%> overwrites %<-fmax-stack-var-size=%d%>",
                     flag_max_stack_var_size);
-  else if (!gfc_option.flag_automatic && gfc_option.flag_recursive)
+  else if (!flag_automatic && flag_recursive)
     gfc_warning_now ("Flag %<-fno-automatic%> overwrites %<-frecursive%>");
-  else if (!gfc_option.flag_automatic && gfc_option.gfc_flag_openmp)
+  else if (!flag_automatic && flag_openmp)
     gfc_warning_now ("Flag %<-fno-automatic%> overwrites %<-frecursive%> implied by "
                     "%<-fopenmp%>");
-  else if (flag_max_stack_var_size != -2 && gfc_option.flag_recursive)
+  else if (flag_max_stack_var_size != -2 && flag_recursive)
     gfc_warning_now ("Flag %<-frecursive%> overwrites %<-fmax-stack-var-size=%d%>",
                     flag_max_stack_var_size);
-  else if (flag_max_stack_var_size != -2 && gfc_option.gfc_flag_openmp)
+  else if (flag_max_stack_var_size != -2 && flag_openmp)
     gfc_warning_now ("Flag %<-fmax-stack-var-size=%d%> overwrites %<-frecursive%> "
                     "implied by %<-fopenmp%>", flag_max_stack_var_size);
 
   /* Implement -frecursive as -fmax-stack-var-size=-1.  */
-  if (gfc_option.flag_recursive)
+  if (flag_recursive)
     flag_max_stack_var_size = -1;
 
   /* Implied -frecursive; implemented as -fmax-stack-var-size=-1.  */
-  if (flag_max_stack_var_size == -2 && gfc_option.gfc_flag_openmp
-      && gfc_option.flag_automatic)
+  if (flag_max_stack_var_size == -2 && flag_openmp && flag_automatic)
     {
-      gfc_option.flag_recursive = 1;
+      flag_recursive = 1;
       flag_max_stack_var_size = -1;
     }
 
@@ -382,7 +355,7 @@ gfc_post_options (const char **pfilename)
     flag_max_stack_var_size = 32768;
 
   /* Implement -fno-automatic as -fmax-stack-var-size=0.  */
-  if (!gfc_option.flag_automatic)
+  if (!flag_automatic)
     flag_max_stack_var_size = 0;
   
   /* Optimization implies front end optimization, unless the user
@@ -391,6 +364,9 @@ gfc_post_options (const char **pfilename)
   if (flag_frontend_optimize == -1)
     flag_frontend_optimize = optimize;
 
+  if (flag_max_array_constructor < 65535)
+    flag_max_array_constructor = 65535;
+
   if (flag_fixed_line_length != 0 && flag_fixed_line_length < 7)
     gfc_fatal_error ("Fixed line length must be at least seven");
 
@@ -567,50 +543,10 @@ gfc_handle_option (size_t scode, const char *arg, int value,
       result = false;
       break;
 
-    case OPT_fall_intrinsics:
-      gfc_option.flag_all_intrinsics = 1;
-      break;
-
-    case OPT_fautomatic:
-      gfc_option.flag_automatic = value;
-      break;
-
-    case OPT_fallow_leading_underscore:
-      gfc_option.flag_allow_leading_underscore = value;
-      break;
-      
-    case OPT_fbackslash:
-      gfc_option.flag_backslash = value;
-      break;
-      
-    case OPT_fbacktrace:
-      gfc_option.flag_backtrace = value;
-      break;
-      
     case OPT_fcheck_array_temporaries:
       gfc_option.rtcheck |= GFC_RTCHECK_ARRAY_TEMPS;
       break;
       
-    case OPT_fcray_pointer:
-      gfc_option.flag_cray_pointer = value;
-      break;
-
-    case OPT_ff2c:
-      gfc_option.flag_f2c = value;
-      break;
-
-    case OPT_fdollar_ok:
-      gfc_option.flag_dollar_ok = value;
-      break;
-
-    case OPT_fexternal_blas:
-      gfc_option.flag_external_blas = value;
-      break;
-
-    case OPT_fblas_matmul_limit_:
-      gfc_option.blas_matmul_limit = value;
-      break;
-
     case OPT_fd_lines_as_code:
       gfc_option.flag_d_lines = 1;
       break;
@@ -619,15 +555,6 @@ gfc_handle_option (size_t scode, const char *arg, int value,
       gfc_option.flag_d_lines = 0;
       break;
 
-    case OPT_fdump_fortran_original:
-    case OPT_fdump_parse_tree:
-      gfc_option.dump_fortran_original = value;
-      break;
-
-    case OPT_fdump_fortran_optimized:
-      gfc_option.dump_fortran_optimized = value;
-      break;
-
     case OPT_ffixed_form:
       gfc_option.source_form = FORM_FIXED;
       break;
@@ -636,18 +563,6 @@ gfc_handle_option (size_t scode, const char *arg, int value,
       gfc_option.source_form = FORM_FREE;
       break;
 
-    case OPT_fopenmp:
-      gfc_option.gfc_flag_openmp = value;
-      break;
-
-    case OPT_fopenmp_simd:
-      gfc_option.gfc_flag_openmp_simd = value;
-      break;
-
-    case OPT_funderscoring:
-      gfc_option.flag_underscoring = value;
-      break;
-
     case OPT_static_libgfortran:
 #ifndef HAVE_LD_STATIC_DYNAMIC
       gfc_fatal_error ("%<-static-libgfortran%> is not supported in this "
@@ -655,10 +570,6 @@ gfc_handle_option (size_t scode, const char *arg, int value,
 #endif
       break;
 
-    case OPT_fimplicit_none:
-      gfc_option.flag_implicit_none = value;
-      break;
-
     case OPT_fintrinsic_modules_path:
     case OPT_fintrinsic_modules_path_:
 
@@ -671,26 +582,6 @@ gfc_handle_option (size_t scode, const char *arg, int value,
       gfc_add_intrinsic_modules_path (arg);
       break;
 
-    case OPT_fmax_array_constructor_:
-      gfc_option.flag_max_array_constructor = value > 65535 ? value : 65535;
-      break;
-
-    case OPT_fmodule_private:
-      gfc_option.flag_module_private = value;
-      break;
-      
-    case OPT_frange_check:
-      gfc_option.flag_range_check = value;
-      break;
-
-    case OPT_fpack_derived:
-      gfc_option.flag_pack_derived = value;
-      break;
-
-    case OPT_frepack_arrays:
-      gfc_option.flag_repack_arrays = value;
-      break;
-
     case OPT_fpreprocessed:
       gfc_option.flag_preprocessed = value;
       break;
@@ -761,10 +652,6 @@ gfc_handle_option (size_t scode, const char *arg, int value,
       gfc_handle_module_path_options (arg);
       break;
 
-    case OPT_fsign_zero:
-      gfc_option.flag_sign_zero = value;
-      break;
-
     case OPT_ffpe_trap_:
       gfc_handle_fpe_option (arg, true);
       break;
@@ -841,18 +728,6 @@ gfc_handle_option (size_t scode, const char *arg, int value,
       gfc_option.convert = GFC_CONVERT_SWAP;
       break;
 
-    case OPT_frecursive:
-      gfc_option.flag_recursive = value;
-      break;
-
-    case OPT_falign_commons:
-      gfc_option.flag_align_commons = value;
-      break;
-
-    case  OPT_faggressive_function_elimination:
-      gfc_option.flag_aggressive_function_elimination = value;
-      break;
-
     case OPT_fcheck_:
       gfc_handle_runtime_check_option (arg);
       break;
index 54c0cdc13fa0503a337982e89770c56212f25d51..b4fa61ea0925c5290a2cf9b1c8b3f4791aa1706d 100644 (file)
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "system.h"
 #include <setjmp.h>
 #include "coretypes.h"
+#include "flags.h"
 #include "gfortran.h"
 #include "match.h"
 #include "parse.h"
@@ -574,7 +575,7 @@ decode_statement (void)
 /* Like match, but don't match anything if not -fopenmp.  */
 #define matcho(keyword, subr, st)                              \
     do {                                                       \
-      if (!gfc_option.gfc_flag_openmp)                         \
+      if (!flag_openmp)                                                \
        ;                                                       \
       else if (match_word (keyword, subr, &old_locus)          \
               == MATCH_YES)                                    \
@@ -769,7 +770,7 @@ decode_omp_directive (void)
      not -fopenmp and simd_matched is false, i.e. if a directive other
      than one marked with match has been seen.  */
 
-  if (gfc_option.gfc_flag_openmp || simd_matched)
+  if (flag_openmp || simd_matched)
     {
       if (!gfc_error_check ())
        gfc_error_now ("Unclassifiable OpenMP directive at %C");
@@ -896,9 +897,7 @@ next_free (void)
          return decode_gcc_attribute ();
 
        }
-      else if (c == '$'
-              && (gfc_option.gfc_flag_openmp
-                  || gfc_option.gfc_flag_openmp_simd))
+      else if (c == '$' && (flag_openmp || flag_openmp_simd))
        {
          int i;
 
@@ -988,8 +987,7 @@ next_fixed (void)
              return decode_gcc_attribute ();
            }
          else if (c == '$'
-                  && (gfc_option.gfc_flag_openmp
-                      || gfc_option.gfc_flag_openmp_simd))
+                  && (flag_openmp || flag_openmp_simd))
            {
              for (i = 0; i < 4; i++, c = gfc_next_char_literal (NONSTRING))
                gcc_assert ((char) gfc_wide_tolower (c) == "$omp"[i]);
@@ -5085,7 +5083,7 @@ loop:
   gfc_resolve (gfc_current_ns);
 
   /* Dump the parse tree if requested.  */
-  if (gfc_option.dump_fortran_original)
+  if (flag_dump_fortran_original)
     gfc_dump_parse_tree (gfc_current_ns, stdout);
 
   gfc_get_errors (NULL, &errors);
@@ -5132,7 +5130,7 @@ prog_units:
 
   /* Do the parse tree dump.  */ 
   gfc_current_ns
-       = gfc_option.dump_fortran_original ? gfc_global_ns_list : NULL;
+       = flag_dump_fortran_original ? gfc_global_ns_list : NULL;
 
   for (; gfc_current_ns; gfc_current_ns = gfc_current_ns->sibling)
     if (!gfc_current_ns->proc_name
index 337f5f67b8824690c65f7ad138b56dd09ae393a0..77522e54bf040caaafc8a39fa749b40712a29a8f 100644 (file)
@@ -857,7 +857,7 @@ next_string_char (gfc_char_t delimiter, int *ret)
       return 0;
     }
 
-  if (gfc_option.flag_backslash && c == '\\')
+  if (flag_backslash && c == '\\')
     {
       old_locus = gfc_current_locus;
 
@@ -929,7 +929,7 @@ match_charkind_name (char *name)
 
       if (!ISALNUM (c)
          && c != '_'
-         && (c != '$' || !gfc_option.flag_dollar_ok))
+         && (c != '$' || !flag_dollar_ok))
        break;
 
       *name++ = c;
index ee48a6a06cc1c1ddaa758a9cdee38a5ec9cf2af4..7ee0bab00be3ab7ddd35d6455b590320b669958c 100644 (file)
@@ -1558,7 +1558,7 @@ is_illegal_recursion (gfc_symbol* sym, gfc_namespace* context)
     proc_sym = sym;
 
   /* If sym is RECURSIVE, all is well of course.  */
-  if (proc_sym->attr.recursive || gfc_option.flag_recursive)
+  if (proc_sym->attr.recursive || flag_recursive)
     return false;
 
   /* Find the context procedure's "real" symbol if it has entries.
index 7a9f62695aa32775ef7965fb9f3ae715d5fa54a3..d6b9bbfc3b7ed2151ea3cda2a1a56537b16637c1 100644 (file)
@@ -749,8 +749,7 @@ skip_free_comments (void)
             2) handle OpenMP conditional compilation, where
                !$ should be treated as 2 spaces (for initial lines
                only if followed by space).  */
-         if ((gfc_option.gfc_flag_openmp
-              || gfc_option.gfc_flag_openmp_simd) && at_bol)
+         if ((flag_openmp || flag_openmp_simd) && at_bol)
            {
              locus old_loc = gfc_current_locus;
              if (next_char () == '$')
@@ -876,7 +875,7 @@ skip_fixed_comments (void)
              && continue_line < gfc_linebuf_linenum (gfc_current_locus.lb))
            continue_line = gfc_linebuf_linenum (gfc_current_locus.lb);
 
-         if (gfc_option.gfc_flag_openmp || gfc_option.gfc_flag_openmp_simd)
+         if (flag_openmp || flag_openmp_simd)
            {
              if (next_char () == '$')
                {
@@ -1822,7 +1821,7 @@ include_line (gfc_char_t *line)
 
   c = line;
 
-  if (gfc_option.gfc_flag_openmp || gfc_option.gfc_flag_openmp_simd)
+  if (flag_openmp || flag_openmp_simd)
     {
       if (gfc_current_form == FORM_FREE)
        {
index 32d44ca503646b12c3a3dbcfdadbae77f5094bd5..26eb2e577bcea1dcc0fbe5a3c7b603eca04cb5e2 100644 (file)
@@ -153,7 +153,7 @@ convert_mpz_to_unsigned (mpz_t x, int bitsize)
     {
       /* Confirm that no bits above the signed range are unset if we
         are doing range checking.  */
-      if (gfc_option.flag_range_check != 0)
+      if (flag_range_check != 0)
        gcc_assert (mpz_scan0 (x, bitsize-1) == ULONG_MAX);
 
       mpz_init_set_ui (mask, 1);
@@ -184,7 +184,7 @@ gfc_convert_mpz_to_signed (mpz_t x, int bitsize)
 
   /* Confirm that no bits above the unsigned range are set if we are
      doing range checking.  */
-  if (gfc_option.flag_range_check != 0)
+  if (flag_range_check != 0)
     gcc_assert (mpz_scan1 (x, bitsize) == ULONG_MAX);
 
   if (mpz_tstbit (x, bitsize - 1) == 1)
@@ -1261,7 +1261,7 @@ gfc_simplify_bessel_n2 (gfc_expr *order1, gfc_expr *order2, gfc_expr *x,
 
   if (mpfr_cmp_ui (x->value.real, 0.0) == 0)
     {
-      if (!jn && gfc_option.flag_range_check)
+      if (!jn && flag_range_check)
        {
          gfc_error ("Result of BESSEL_YN is -INF at %L", &result->where);
          gfc_free_expr (result);
@@ -1367,7 +1367,7 @@ gfc_simplify_bessel_n2 (gfc_expr *order1, gfc_expr *order2, gfc_expr *x,
 
       /* Special case: For YN, if the previous N gave -INF, set
         also N+1 to -INF.  */
-      if (!jn && !gfc_option.flag_range_check && mpfr_inf_p (last2))
+      if (!jn && !flag_range_check && mpfr_inf_p (last2))
        {
          mpfr_set_inf (e->value.real, -1);
          gfc_constructor_append_expr (&result->value.constructor, e,
@@ -4475,7 +4475,7 @@ gfc_simplify_nearest (gfc_expr *x, gfc_expr *s)
 
   /* Only NaN can occur. Do not use range check as it gives an
      error for denormal numbers.  */
-  if (mpfr_nan_p (result->value.real) && gfc_option.flag_range_check)
+  if (mpfr_nan_p (result->value.real) && flag_range_check)
     {
       gfc_error ("Result of NEAREST is NaN at %L", &result->where);
       gfc_free_expr (result);
@@ -5920,7 +5920,7 @@ gfc_simplify_sign (gfc_expr *x, gfc_expr *y)
        break;
 
       case BT_REAL:
-       if (gfc_option.flag_sign_zero)
+       if (flag_sign_zero)
          mpfr_copysign (result->value.real, x->value.real, y->value.real,
                        GFC_RND_MODE);
        else
@@ -6090,7 +6090,7 @@ gfc_simplify_spread (gfc_expr *source, gfc_expr *dim_expr, gfc_expr *ncopies_exp
   else
     mpz_init_set_ui (size, 1);
 
-  if (mpz_get_si (size)*ncopies > gfc_option.flag_max_array_constructor)
+  if (mpz_get_si (size)*ncopies > flag_max_array_constructor)
     return NULL;
 
   if (source->expr_type == EXPR_CONSTANT)
index a39d4140b4ab433a8ac0fdd5106502397629074f..088fbbde6a175a2277121e5849998697169e50fc 100644 (file)
@@ -220,7 +220,7 @@ gfc_get_default_type (const char *name, gfc_namespace *ns)
 
   letter = name[0];
 
-  if (gfc_option.flag_allow_leading_underscore && letter == '_')
+  if (flag_allow_leading_underscore && letter == '_')
     gfc_fatal_error ("Option %<-fallow-leading-underscore%> is for use only by "
                     "gfortran developers, and should not be used for "
                     "implicitly typed variables");
@@ -2372,7 +2372,7 @@ gfc_get_namespace (gfc_namespace *parent, int parent_types)
          continue;
        }
 
-      if (gfc_option.flag_implicit_none != 0)
+      if (flag_implicit_none != 0)
        {
          gfc_clear_ts (ts);
          continue;
index d637b5b6a3c457dd688ee536a0d529c224ce7337..8f0baa62fcdddd225a16f153b8efca96ed750c5f 100644 (file)
@@ -5430,8 +5430,7 @@ gfc_conv_array_initializer (tree type, gfc_expr * expr)
                               "constructor at %L requires an increase of "
                               "the allowed %d upper limit. See "
                               "%<-fmax-array-constructor%> option",
-                              &expr->where,
-                              gfc_option.flag_max_array_constructor);
+                              &expr->where, flag_max_array_constructor);
              return NULL_TREE;
            }
           if (mpz_cmp_si (c->offset, 0) != 0)
index 3043c61dd883c925d2c7ccf1d376f242dec229cc..a7ae714721d1842c1a92086301306e87f378d1ec 100644 (file)
@@ -254,7 +254,7 @@ gfc_sym_mangled_common_id (gfc_common_head *com)
   if (strcmp (name, BLANK_COMMON_NAME) == 0)
     return get_identifier (name);
 
-  if (gfc_option.flag_underscoring)
+  if (flag_underscoring)
     {
       has_underscore = strchr (name, '_') != 0;
       if (flag_second_underscore && has_underscore)
@@ -1125,7 +1125,7 @@ translate_common (gfc_common_head *common, gfc_symbol *var_list)
                       "extension to COMMON %qs at %L", sym->name,
                       common->name, &common->where);
 
-         if (gfc_option.flag_align_commons)
+         if (flag_align_commons)
            offset = align_segment (&align);
 
          if (offset)
index e3895acc195b24f0a85af8c2de1f0344b4574a6d..f6286d4c5095e4d0550420e0ef7d8d1346dfc622 100644 (file)
@@ -393,7 +393,7 @@ gfc_sym_mangled_function_id (gfc_symbol * sym)
       if (sym->attr.proc == PROC_INTRINSIC)
        return get_identifier (sym->name);
 
-      if (gfc_option.flag_underscoring)
+      if (flag_underscoring)
        {
          has_underscore = strchr (sym->name, '_') != 0;
          if (flag_second_underscore && has_underscore)
@@ -1013,7 +1013,7 @@ gfc_build_dummy_array_decl (gfc_symbol * sym, tree dummy)
 
       /* Even when -frepack-arrays is used, symbols with TARGET attribute
         are not repacked.  */
-      if (!gfc_option.flag_repack_arrays || sym->attr.target)
+      if (!flag_repack_arrays || sym->attr.target)
        {
          if (as->type == AS_ASSUMED_SIZE)
            packed = PACKED_FULL;
@@ -1838,7 +1838,7 @@ module_sym:
            }
        }
 
-      if (gfc_option.flag_f2c
+      if (flag_f2c
          && ((e.ts.type == BT_REAL && e.ts.kind == gfc_default_real_kind)
              || e.ts.type == BT_COMPLEX))
        {
@@ -1958,7 +1958,7 @@ build_function_decl (gfc_symbol * sym, bool global)
   if (sym->attr.access == ACCESS_UNKNOWN && sym->module
       && (sym->ns->default_access == ACCESS_PRIVATE
          || (sym->ns->default_access == ACCESS_UNKNOWN
-             && gfc_option.flag_module_private)))
+             && flag_module_private)))
     sym->attr.access = ACCESS_PRIVATE;
 
   if (!current_function_decl
@@ -3158,32 +3158,28 @@ gfc_build_intrinsic_function_decls (void)
 
     gfor_fndecl_sgemm = gfc_build_library_function_decl
                          (get_identifier
-                            (gfc_option.flag_underscoring ? "sgemm_"
-                                                          : "sgemm"),
+                            (flag_underscoring ? "sgemm_" : "sgemm"),
                           void_type_node, 15, pchar_type_node,
                           pchar_type_node, pint, pint, pint, ps, ps, pint,
                           ps, pint, ps, ps, pint, integer_type_node,
                           integer_type_node);
     gfor_fndecl_dgemm = gfc_build_library_function_decl
                          (get_identifier
-                            (gfc_option.flag_underscoring ? "dgemm_"
-                                                          : "dgemm"),
+                            (flag_underscoring ? "dgemm_" : "dgemm"),
                           void_type_node, 15, pchar_type_node,
                           pchar_type_node, pint, pint, pint, pd, pd, pint,
                           pd, pint, pd, pd, pint, integer_type_node,
                           integer_type_node);
     gfor_fndecl_cgemm = gfc_build_library_function_decl
                          (get_identifier
-                            (gfc_option.flag_underscoring ? "cgemm_"
-                                                          : "cgemm"),
+                            (flag_underscoring ? "cgemm_" : "cgemm"),
                           void_type_node, 15, pchar_type_node,
                           pchar_type_node, pint, pint, pint, pc, pc, pint,
                           pc, pint, pc, pc, pint, integer_type_node,
                           integer_type_node);
     gfor_fndecl_zgemm = gfc_build_library_function_decl
                          (get_identifier
-                            (gfc_option.flag_underscoring ? "zgemm_"
-                                                          : "zgemm"),
+                            (flag_underscoring ? "zgemm_" : "zgemm"),
                           void_type_node, 15, pchar_type_node,
                           pchar_type_node, pint, pint, pint, pz, pz, pint,
                           pz, pint, pz, pz, pint, integer_type_node,
@@ -3845,8 +3841,7 @@ gfc_trans_deferred_vars (gfc_symbol * proc_sym, gfc_wrapped_block * block)
            gfc_trans_dummy_character (proc_sym, proc_sym->ts.u.cl, block);
        }
       else
-       gcc_assert (gfc_option.flag_f2c
-                   && proc_sym->ts.type == BT_COMPLEX);
+       gcc_assert (flag_f2c && proc_sym->ts.type == BT_COMPLEX);
     }
 
   /* Initialize the INTENT(OUT) derived type dummy arguments.  This
@@ -4426,7 +4421,7 @@ gfc_create_module_variable (gfc_symbol * sym)
       && (sym->attr.access == ACCESS_UNKNOWN
          && (sym->ns->default_access == ACCESS_PRIVATE
              || (sym->ns->default_access == ACCESS_UNKNOWN
-                 && gfc_option.flag_module_private))))
+                 && flag_module_private))))
     sym->attr.access = ACCESS_PRIVATE;
 
   if (warn_unused_variable && !sym->attr.referenced
@@ -5425,11 +5420,9 @@ create_main_function (tree fndecl)
                             build_int_cst (integer_type_node,
                                            0));
     CONSTRUCTOR_APPEND_ELT (v, NULL_TREE,
-                            build_int_cst (integer_type_node,
-                                           gfc_option.flag_backtrace));
+                            build_int_cst (integer_type_node, flag_backtrace));
     CONSTRUCTOR_APPEND_ELT (v, NULL_TREE,
-                            build_int_cst (integer_type_node,
-                                           gfc_option.flag_sign_zero));
+                            build_int_cst (integer_type_node, flag_sign_zero));
     CONSTRUCTOR_APPEND_ELT (v, NULL_TREE,
                             build_int_cst (integer_type_node,
                                            (gfc_option.rtcheck
@@ -5727,8 +5720,7 @@ gfc_generate_function_code (gfc_namespace * ns)
                 || (sym->attr.entry_master
                     && sym->ns->entries->sym->attr.recursive);
   if ((gfc_option.rtcheck & GFC_RTCHECK_RECURSION)
-       && !is_recursive
-       && !gfc_option.flag_recursive)
+      && !is_recursive && !flag_recursive)
     {
       char * msg;
 
@@ -5826,9 +5818,7 @@ gfc_generate_function_code (gfc_namespace * ns)
 
   /* Reset recursion-check variable.  */
   if ((gfc_option.rtcheck & GFC_RTCHECK_RECURSION)
-        && !is_recursive
-        && !gfc_option.gfc_flag_openmp
-        && recurcheckvar != NULL_TREE)
+      && !is_recursive && !flag_openmp && recurcheckvar != NULL_TREE)
     {
       gfc_add_modify (&cleanup, recurcheckvar, boolean_false_node);
       recurcheckvar = NULL;
index 143decc9489390fd9d7968b7c0257d3c5d4afb68..39cfb2f7e4e566f9ac161391c118a56a7915ff40 100644 (file)
@@ -2056,7 +2056,7 @@ gfc_conv_variable (gfc_se * se, gfc_expr * expr)
                                                se->expr);
 
           /* Dereference scalar hidden result.  */
-         if (gfc_option.flag_f2c && sym->ts.type == BT_COMPLEX
+         if (flag_f2c && sym->ts.type == BT_COMPLEX
              && (sym->attr.function || sym->attr.result)
              && !sym->attr.dimension && !sym->attr.pointer
              && !sym->attr.always_explicit)
@@ -5301,7 +5301,7 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
        }
       else
        {
-         gcc_assert (gfc_option.flag_f2c && ts.type == BT_COMPLEX);
+         gcc_assert (flag_f2c && ts.type == BT_COMPLEX);
 
          type = gfc_get_complex_type (ts.kind);
          var = gfc_build_addr_expr (NULL_TREE, gfc_create_var (type, "cmplx"));
@@ -5382,7 +5382,7 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
      return a double precision result.  Convert this back to default
      real.  We only care about the cases that can happen in Fortran 77.
   */
-  if (gfc_option.flag_f2c && sym->ts.type == BT_REAL
+  if (flag_f2c && sym->ts.type == BT_REAL
       && sym->ts.kind == gfc_default_real_kind
       && !sym->attr.always_explicit)
     se->expr = fold_convert (gfc_get_real_type (sym->ts.kind), se->expr);
@@ -5433,7 +5433,7 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
            }
          else
            {
-             gcc_assert (ts.type == BT_COMPLEX && gfc_option.flag_f2c);
+             gcc_assert (ts.type == BT_COMPLEX && flag_f2c);
              se->expr = build_fold_indirect_ref_loc (input_location, var);
            }
        }
index bd3962ecf71497d154e40b0ec78257373b5bfc0f..8fefe308bc3f7c5618df11e0c2dd65e6efe9a093 100644 (file)
@@ -2470,7 +2470,7 @@ gfc_conv_intrinsic_sign (gfc_se * se, gfc_expr * expr)
 
       /* We explicitly have to ignore the minus sign. We do so by using
         result = (arg1 == 0) ? abs(arg0) : copysign(arg0, arg1).  */
-      if (!gfc_option.flag_sign_zero
+      if (!flag_sign_zero
          && MODE_HAS_SIGNED_ZEROS (TYPE_MODE (TREE_TYPE (args[1]))))
        {
          tree cond, zero;
@@ -2978,7 +2978,7 @@ gfc_conv_intrinsic_funcall (gfc_se * se, gfc_expr * expr)
     {
       tree cint = gfc_get_int_type (gfc_c_int_kind);
 
-      if (gfc_option.flag_external_blas
+      if (flag_external_blas
          && (sym->ts.type == BT_REAL || sym->ts.type == BT_COMPLEX)
          && (sym->ts.kind == 4 || sym->ts.kind == 8))
        {
@@ -3002,7 +3002,7 @@ gfc_conv_intrinsic_funcall (gfc_se * se, gfc_expr * expr)
          vec_alloc (append_args, 3);
          append_args->quick_push (build_int_cst (cint, 1));
          append_args->quick_push (build_int_cst (cint,
-                                                gfc_option.blas_matmul_limit));
+                                                 flag_blas_matmul_limit));
          append_args->quick_push (gfc_build_addr_expr (NULL_TREE,
                                                        gemm_fndecl));
        }
index c7edcadfe7a310af6be2320a74f5e6307042d9dd..707a08970eee45275c15989d019603869079ba16 100644 (file)
@@ -3435,7 +3435,7 @@ gfc_trans_omp_do_simd (gfc_code *code, stmtblock_t *pblock,
       clausesa = clausesa_buf;
       gfc_split_omp_clauses (code, clausesa);
     }
-  if (gfc_option.gfc_flag_openmp)
+  if (flag_openmp)
     omp_do_clauses
       = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_DO], code->loc);
   body = gfc_trans_omp_do (code, EXEC_OMP_SIMD, pblock ? pblock : &block,
@@ -3449,7 +3449,7 @@ gfc_trans_omp_do_simd (gfc_code *code, stmtblock_t *pblock,
     }
   else if (TREE_CODE (body) != BIND_EXPR)
     body = build3_v (BIND_EXPR, NULL, body, NULL_TREE);
-  if (gfc_option.gfc_flag_openmp)
+  if (flag_openmp)
     {
       stmt = make_node (OMP_FOR);
       TREE_TYPE (stmt) = void_type_node;
@@ -3527,7 +3527,7 @@ gfc_trans_omp_parallel_do_simd (gfc_code *code, stmtblock_t *pblock,
       clausesa = clausesa_buf;
       gfc_split_omp_clauses (code, clausesa);
     }
-  if (gfc_option.gfc_flag_openmp)
+  if (flag_openmp)
     omp_clauses
       = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_PARALLEL],
                               code->loc);
@@ -3543,7 +3543,7 @@ gfc_trans_omp_parallel_do_simd (gfc_code *code, stmtblock_t *pblock,
     }
   else if (TREE_CODE (stmt) != BIND_EXPR)
     stmt = build3_v (BIND_EXPR, NULL, stmt, NULL_TREE);
-  if (gfc_option.gfc_flag_openmp)
+  if (flag_openmp)
     {
       stmt = build2_loc (input_location, OMP_PARALLEL, void_type_node, stmt,
                         omp_clauses);
@@ -3698,7 +3698,7 @@ gfc_trans_omp_distribute (gfc_code *code, gfc_omp_clauses *clausesa)
       clausesa = clausesa_buf;
       gfc_split_omp_clauses (code, clausesa);
     }
-  if (gfc_option.gfc_flag_openmp)
+  if (flag_openmp)
     omp_clauses
       = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_DISTRIBUTE],
                               code->loc);
@@ -3741,7 +3741,7 @@ gfc_trans_omp_distribute (gfc_code *code, gfc_omp_clauses *clausesa)
     default:
       gcc_unreachable ();
     }
-  if (gfc_option.gfc_flag_openmp)
+  if (flag_openmp)
     {
       tree distribute = make_node (OMP_DISTRIBUTE);
       TREE_TYPE (distribute) = void_type_node;
@@ -3766,7 +3766,7 @@ gfc_trans_omp_teams (gfc_code *code, gfc_omp_clauses *clausesa)
       clausesa = clausesa_buf;
       gfc_split_omp_clauses (code, clausesa);
     }
-  if (gfc_option.gfc_flag_openmp)
+  if (flag_openmp)
     omp_clauses
       = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_TEAMS],
                               code->loc);
@@ -3801,7 +3801,7 @@ gfc_trans_omp_target (gfc_code *code)
 
   gfc_start_block (&block);
   gfc_split_omp_clauses (code, clausesa);
-  if (gfc_option.gfc_flag_openmp)
+  if (flag_openmp)
     omp_clauses
       = gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_TARGET],
                               code->loc);
@@ -3811,7 +3811,7 @@ gfc_trans_omp_target (gfc_code *code)
     stmt = gfc_trans_omp_teams (code, clausesa);
   if (TREE_CODE (stmt) != BIND_EXPR)
     stmt = build3_v (BIND_EXPR, NULL, stmt, NULL_TREE);
-  if (gfc_option.gfc_flag_openmp)
+  if (flag_openmp)
     stmt = build2_loc (input_location, OMP_TARGET, void_type_node, stmt,
                       omp_clauses);
   gfc_add_expr_to_block (&block, stmt);
index 304b027da4bbc3f308357692aa320dd090714429..07593e55bcb082929540e7aa9787ba80ac92e5a5 100644 (file)
@@ -2447,7 +2447,7 @@ gfc_get_derived_type (gfc_symbol * derived)
       /* We see this derived type first time, so build the type node.  */
       typenode = make_node (RECORD_TYPE);
       TYPE_NAME (typenode) = get_identifier (derived->name);
-      TYPE_PACKED (typenode) = gfc_option.flag_pack_derived;
+      TYPE_PACKED (typenode) = flag_pack_derived;
       derived->backend_decl = typenode;
     }
 
@@ -2630,8 +2630,7 @@ gfc_return_by_reference (gfc_symbol * sym)
      -fno-f2c calling convention), nor for calls to functions which always
      require an explicit interface, as no compatibility problems can
      arise there.  */
-  if (gfc_option.flag_f2c
-      && sym->ts.type == BT_COMPLEX
+  if (flag_f2c && sym->ts.type == BT_COMPLEX
       && !sym->attr.intrinsic && !sym->attr.always_explicit)
     return 1;
 
@@ -2865,8 +2864,7 @@ arg_type_list_done:
     type = void_type_node;
   else if (sym->attr.mixed_entry_master)
     type = gfc_get_mixed_entry_union (sym->ns);
-  else if (gfc_option.flag_f2c
-          && sym->ts.type == BT_REAL
+  else if (flag_f2c && sym->ts.type == BT_REAL
           && sym->ts.kind == gfc_default_real_kind
           && !sym->attr.always_explicit)
     {