aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/options.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2014-12-16 20:24:50 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2014-12-16 20:24:50 +0100
commit203c7ebffdd7042d9b08d303594eaeb9887ff503 (patch)
treea4dc2e881c78f7c7ab0768916f6c29c300f13996 /gcc/fortran/options.c
parent6a85804bf7b5aaf3288995fd6157af907c4d6ab1 (diff)
downloadgcc-203c7ebffdd7042d9b08d303594eaeb9887ff503.zip
gcc-203c7ebffdd7042d9b08d303594eaeb9887ff503.tar.gz
gcc-203c7ebffdd7042d9b08d303594eaeb9887ff503.tar.bz2
2014-12-15 Tobias Burnus <burnus@net-b.de>
* 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, fstack-arrays, fmax-stack-var-size=, fmax-subrecord-length=, ffrontend-optimize, ffree-line-length-, ffixed-line-length-, finteger-4-integer-8, fdefault-real-8, fdefault-integer-8, fdefault-double-8): Add Var() and Init(). * gfortran.h (gfc_option_t): Remove moved flags. * options.c (gfc_init_options, gfc_handle_option): Ditto. (gfc_post_options): Update for name change. * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Handle flag-name change. * frontend-passes.c (gfc_run_passes): Ditto. * module.c (use_iso_fortran_env_module): Ditto. * primary.c (match_integer_constant, match_real_constant): * Ditto. * resolve.c (resolve_ordinary_assign): Ditto. * scanner.c (gfc_next_char_literal, load_line): Ditto. * trans-array.c (gfc_trans_allocate_array_storage, gfc_conv_resolve_dependencies, gfc_trans_auto_array_allocation, gfc_conv_ss_startstride): Ditto. * trans-common.c (gfc_sym_mangled_common_id): Ditto. * trans-decl.c (gfc_sym_mangled_function_id, create_main_function): Ditto. * trans-expr.c (gfc_conv_expr_op, gfc_conv_procedure_call, arrayfunc_assign_needs_temporary, gfc_trans_arrayfunc_assign, gfc_trans_assignment_1): Ditto. * trans-stmt.c (gfc_trans_allocate): Ditto. * trans-types.c (gfc_init_kinds): Ditto. From-SVN: r218790
Diffstat (limited to 'gcc/fortran/options.c')
-rw-r--r--gcc/fortran/options.c181
1 files changed, 35 insertions, 146 deletions
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c
index af71ded..5a1be12 100644
--- a/gcc/fortran/options.c
+++ b/gcc/fortran/options.c
@@ -81,37 +81,22 @@ gfc_init_options (unsigned int decoded_options_count,
gfc_source_file = NULL;
gfc_option.module_dir = NULL;
gfc_option.source_form = FORM_UNKNOWN;
- gfc_option.fixed_line_length = 72;
- gfc_option.free_line_length = 132;
gfc_option.max_continue_fixed = 255;
gfc_option.max_continue_free = 255;
gfc_option.max_identifier_length = GFC_MAX_SYMBOL_LEN;
- gfc_option.max_subrecord_length = 0;
gfc_option.flag_max_array_constructor = 65535;
gfc_option.convert = GFC_CONVERT_NATIVE;
- gfc_option.record_marker = 0;
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_default_double = 0;
- gfc_option.flag_default_integer = 0;
- gfc_option.flag_default_real = 0;
- gfc_option.flag_integer4_kind = 0;
- gfc_option.flag_real4_kind = 0;
- gfc_option.flag_real8_kind = 0;
gfc_option.flag_dollar_ok = 0;
gfc_option.flag_underscoring = 1;
gfc_option.flag_f2c = 0;
- gfc_option.flag_second_underscore = -1;
gfc_option.flag_implicit_none = 0;
- /* Default value of flag_max_stack_var_size is set in gfc_post_options. */
- gfc_option.flag_max_stack_var_size = -2;
- gfc_option.flag_stack_arrays = -1;
-
gfc_option.flag_range_check = 1;
gfc_option.flag_pack_derived = 0;
gfc_option.flag_repack_arrays = 0;
@@ -135,10 +120,7 @@ gfc_init_options (unsigned int decoded_options_count,
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_protect_parens = -1;
- gfc_option.flag_realloc_lhs = -1;
gfc_option.flag_aggressive_function_elimination = 0;
- gfc_option.flag_frontend_optimize = -1;
gfc_option.fpe = 0;
/* All except GFC_FPE_INEXACT. */
@@ -259,20 +241,20 @@ gfc_post_options (const char **pfilename)
if (flag_associative_math == -1)
flag_associative_math = (!flag_trapping_math && !flag_signed_zeros);
- if (gfc_option.flag_protect_parens == -1)
- gfc_option.flag_protect_parens = !optimize_fast;
+ if (flag_protect_parens == -1)
+ flag_protect_parens = !optimize_fast;
- if (gfc_option.flag_stack_arrays == -1)
- gfc_option.flag_stack_arrays = optimize_fast;
+ if (flag_stack_arrays == -1)
+ flag_stack_arrays = optimize_fast;
/* By default, disable (re)allocation during assignment for -std=f95,
and enable it for F2003/F2008/GNU/Legacy. */
- if (gfc_option.flag_realloc_lhs == -1)
+ if (flag_realloc_lhs == -1)
{
if (gfc_option.allow_std & GFC_STD_F2003)
- gfc_option.flag_realloc_lhs = 1;
+ flag_realloc_lhs = 1;
else
- gfc_option.flag_realloc_lhs = 0;
+ flag_realloc_lhs = 0;
}
/* -fbounds-check is equivalent to -fcheck=bounds */
@@ -364,53 +346,60 @@ gfc_post_options (const char **pfilename)
/* If the user didn't explicitly specify -f(no)-second-underscore we
use it if we're trying to be compatible with f2c, and not
otherwise. */
- if (gfc_option.flag_second_underscore == -1)
- gfc_option.flag_second_underscore = gfc_option.flag_f2c;
+ if (flag_second_underscore == -1)
+ flag_second_underscore = gfc_option.flag_f2c;
- if (!gfc_option.flag_automatic && gfc_option.flag_max_stack_var_size != -2
- && gfc_option.flag_max_stack_var_size != 0)
+ if (!gfc_option.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%>",
- gfc_option.flag_max_stack_var_size);
+ flag_max_stack_var_size);
else if (!gfc_option.flag_automatic && gfc_option.flag_recursive)
gfc_warning_now ("Flag %<-fno-automatic%> overwrites %<-frecursive%>");
else if (!gfc_option.flag_automatic && gfc_option.gfc_flag_openmp)
gfc_warning_now ("Flag %<-fno-automatic%> overwrites %<-frecursive%> implied by "
- "%<-fopenmp%>");
- else if (gfc_option.flag_max_stack_var_size != -2
- && gfc_option.flag_recursive)
+ "%<-fopenmp%>");
+ else if (flag_max_stack_var_size != -2 && gfc_option.flag_recursive)
gfc_warning_now ("Flag %<-frecursive%> overwrites %<-fmax-stack-var-size=%d%>",
- gfc_option.flag_max_stack_var_size);
- else if (gfc_option.flag_max_stack_var_size != -2
- && gfc_option.gfc_flag_openmp)
+ flag_max_stack_var_size);
+ else if (flag_max_stack_var_size != -2 && gfc_option.gfc_flag_openmp)
gfc_warning_now ("Flag %<-fmax-stack-var-size=%d%> overwrites %<-frecursive%> "
- "implied by %<-fopenmp%>",
- gfc_option.flag_max_stack_var_size);
+ "implied by %<-fopenmp%>", flag_max_stack_var_size);
/* Implement -frecursive as -fmax-stack-var-size=-1. */
if (gfc_option.flag_recursive)
- gfc_option.flag_max_stack_var_size = -1;
+ flag_max_stack_var_size = -1;
/* Implied -frecursive; implemented as -fmax-stack-var-size=-1. */
- if (gfc_option.flag_max_stack_var_size == -2 && gfc_option.gfc_flag_openmp
+ if (flag_max_stack_var_size == -2 && gfc_option.gfc_flag_openmp
&& gfc_option.flag_automatic)
{
gfc_option.flag_recursive = 1;
- gfc_option.flag_max_stack_var_size = -1;
+ flag_max_stack_var_size = -1;
}
/* Set default. */
- if (gfc_option.flag_max_stack_var_size == -2)
- gfc_option.flag_max_stack_var_size = 32768;
+ if (flag_max_stack_var_size == -2)
+ flag_max_stack_var_size = 32768;
/* Implement -fno-automatic as -fmax-stack-var-size=0. */
if (!gfc_option.flag_automatic)
- gfc_option.flag_max_stack_var_size = 0;
+ flag_max_stack_var_size = 0;
/* Optimization implies front end optimization, unless the user
specified it directly. */
- if (gfc_option.flag_frontend_optimize == -1)
- gfc_option.flag_frontend_optimize = optimize;
+ if (flag_frontend_optimize == -1)
+ flag_frontend_optimize = optimize;
+
+ if (flag_fixed_line_length != 0 && flag_fixed_line_length < 7)
+ gfc_fatal_error ("Fixed line length must be at least seven");
+
+ if (flag_free_line_length != 0 && flag_free_line_length < 4)
+ gfc_fatal_error ("Free line length must be at least three");
+
+ if (flag_max_subrecord_length > MAX_SUBRECORD_LENGTH)
+ gfc_fatal_error ("Maximum subrecord length cannot exceed %d",
+ MAX_SUBRECORD_LENGTH);
gfc_cpp_post_options ();
@@ -643,16 +632,6 @@ gfc_handle_option (size_t scode, const char *arg, int value,
gfc_option.source_form = FORM_FIXED;
break;
- case OPT_ffixed_line_length_none:
- gfc_option.fixed_line_length = 0;
- break;
-
- case OPT_ffixed_line_length_:
- if (value != 0 && value < 7)
- gfc_fatal_error ("Fixed line length must be at least seven");
- gfc_option.fixed_line_length = value;
- break;
-
case OPT_ffree_form:
gfc_option.source_form = FORM_FREE;
break;
@@ -665,24 +644,10 @@ gfc_handle_option (size_t scode, const char *arg, int value,
gfc_option.gfc_flag_openmp_simd = value;
break;
- case OPT_ffree_line_length_none:
- gfc_option.free_line_length = 0;
- break;
-
- case OPT_ffree_line_length_:
- if (value != 0 && value < 4)
- gfc_fatal_error ("Free line length must be at least three");
- gfc_option.free_line_length = value;
- break;
-
case OPT_funderscoring:
gfc_option.flag_underscoring = value;
break;
- case OPT_fsecond_underscore:
- gfc_option.flag_second_underscore = value;
- break;
-
case OPT_static_libgfortran:
#ifndef HAVE_LD_STATIC_DYNAMIC
gfc_fatal_error ("%<-static-libgfortran%> is not supported in this "
@@ -710,14 +675,6 @@ gfc_handle_option (size_t scode, const char *arg, int value,
gfc_option.flag_max_array_constructor = value > 65535 ? value : 65535;
break;
- case OPT_fmax_stack_var_size_:
- gfc_option.flag_max_stack_var_size = value;
- break;
-
- case OPT_fstack_arrays:
- gfc_option.flag_stack_arrays = value;
- break;
-
case OPT_fmodule_private:
gfc_option.flag_module_private = value;
break;
@@ -745,46 +702,6 @@ gfc_handle_option (size_t scode, const char *arg, int value,
gfc_option.max_identifier_length = value;
break;
- case OPT_fdefault_integer_8:
- gfc_option.flag_default_integer = value;
- break;
-
- case OPT_fdefault_real_8:
- gfc_option.flag_default_real = value;
- break;
-
- case OPT_fdefault_double_8:
- gfc_option.flag_default_double = value;
- break;
-
- case OPT_finteger_4_integer_8:
- gfc_option.flag_integer4_kind = 8;
- break;
-
- case OPT_freal_4_real_8:
- gfc_option.flag_real4_kind = 8;
- break;
-
- case OPT_freal_4_real_10:
- gfc_option.flag_real4_kind = 10;
- break;
-
- case OPT_freal_4_real_16:
- gfc_option.flag_real4_kind = 16;
- break;
-
- case OPT_freal_8_real_4:
- gfc_option.flag_real8_kind = 4;
- break;
-
- case OPT_freal_8_real_10:
- gfc_option.flag_real8_kind = 10;
- break;
-
- case OPT_freal_8_real_16:
- gfc_option.flag_real8_kind = 16;
- break;
-
case OPT_finit_local_zero:
gfc_option.flag_init_integer = GFC_INIT_INTEGER_ON;
gfc_option.flag_init_integer_value = 0;
@@ -924,22 +841,6 @@ gfc_handle_option (size_t scode, const char *arg, int value,
gfc_option.convert = GFC_CONVERT_SWAP;
break;
- case OPT_frecord_marker_4:
- gfc_option.record_marker = 4;
- break;
-
- case OPT_frecord_marker_8:
- gfc_option.record_marker = 8;
- break;
-
- case OPT_fmax_subrecord_length_:
- if (value > MAX_SUBRECORD_LENGTH)
- gfc_fatal_error ("Maximum subrecord length cannot exceed %d",
- MAX_SUBRECORD_LENGTH);
-
- gfc_option.max_subrecord_length = value;
- break;
-
case OPT_frecursive:
gfc_option.flag_recursive = value;
break;
@@ -952,18 +853,6 @@ gfc_handle_option (size_t scode, const char *arg, int value,
gfc_option.flag_aggressive_function_elimination = value;
break;
- case OPT_ffrontend_optimize:
- gfc_option.flag_frontend_optimize = value;
- break;
-
- case OPT_fprotect_parens:
- gfc_option.flag_protect_parens = value;
- break;
-
- case OPT_frealloc_lhs:
- gfc_option.flag_realloc_lhs = value;
- break;
-
case OPT_fcheck_:
gfc_handle_runtime_check_option (arg);
break;