aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/options.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/options.c')
-rw-r--r--gcc/fortran/options.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c
index cb14c3a..0083460 100644
--- a/gcc/fortran/options.c
+++ b/gcc/fortran/options.c
@@ -99,6 +99,7 @@ gfc_init_options (unsigned int decoded_options_count,
gfc_option.warn_array_temp = 0;
gfc_option.gfc_warn_conversion = 0;
gfc_option.warn_conversion_extra = 0;
+ gfc_option.warn_function_elimination = 0;
gfc_option.warn_implicit_interface = 0;
gfc_option.warn_line_truncation = 0;
gfc_option.warn_surprising = 0;
@@ -151,6 +152,7 @@ gfc_init_options (unsigned int decoded_options_count,
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;
gfc_option.rtcheck = 0;
@@ -418,6 +420,12 @@ gfc_post_options (const char **pfilename)
if (pedantic && gfc_option.flag_whole_file)
gfc_option.flag_whole_file = 2;
+ /* Optimization implies front end optimization, unless the user
+ specified it directly. */
+
+ if (gfc_option.flag_frontend_optimize == -1)
+ gfc_option.flag_frontend_optimize = optimize;
+
gfc_cpp_post_options ();
/* FIXME: return gfc_cpp_preprocess_only ();
@@ -610,6 +618,10 @@ gfc_handle_option (size_t scode, const char *arg, int value,
gfc_option.warn_conversion_extra = value;
break;
+ case OPT_Wfunction_elimination:
+ gfc_option.warn_function_elimination = value;
+ break;
+
case OPT_Wimplicit_interface:
gfc_option.warn_implicit_interface = value;
break;
@@ -979,6 +991,10 @@ 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;