aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/options.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2014-12-16 21:44:45 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2014-12-16 21:44:45 +0100
commitc61819ff0f851ca343362f742f819bb459880eb6 (patch)
treed102a0fa85741b2b8e259078e943f9ba1f72a927 /gcc/fortran/options.c
parent931977d9191b542c356d2dfa3258c8d09a6b8498 (diff)
downloadgcc-c61819ff0f851ca343362f742f819bb459880eb6.zip
gcc-c61819ff0f851ca343362f742f819bb459880eb6.tar.gz
gcc-c61819ff0f851ca343362f742f819bb459880eb6.tar.bz2
re PR fortran/54687 (Use gcc option machinery for gfortran)
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
Diffstat (limited to 'gcc/fortran/options.c')
-rw-r--r--gcc/fortran/options.c153
1 files changed, 14 insertions, 139 deletions
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c
index 5a1be12..5dcb5d8 100644
--- a/gcc/fortran/options.c
+++ b/gcc/fortran/options.c
@@ -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;