diff options
Diffstat (limited to 'gcc/fortran/options.c')
-rw-r--r-- | gcc/fortran/options.c | 16 |
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; |