summaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-09 14:59:55 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-09 14:59:55 +0000
commiteba2aae511fc844543f6d2845fac82544617f76d (patch)
tree4cb47b83e2b0f42ab42d54d9b0a4fb49b2a68d93 /gcc/toplev.c
parent8e14cc65d0226cf4a44421a8183cd0bccd651897 (diff)
downloadgcc-eba2aae511fc844543f6d2845fac82544617f76d.tar.gz
2010-10-09 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 165222 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@165232 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c44
1 files changed, 25 insertions, 19 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index fb5507ce0c5..b6ec9f11fd3 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -210,12 +210,6 @@ unsigned local_tick;
/* -f flags. */
-/* 0 means straightforward implementation of complex divide acceptable.
- 1 means wide ranges of inputs must work for complex divide.
- 2 means C99-like requirements for complex multiply and divide. */
-
-int flag_complex_method = 1;
-
/* Nonzero means we should be saving declaration info into a .X file. */
int flag_gen_aux_info = 0;
@@ -241,12 +235,6 @@ int flag_next_runtime = 0;
enum tls_model flag_tls_default = TLS_MODEL_GLOBAL_DYNAMIC;
-/* Set the default region and algorithm for the integrated register
- allocator. */
-
-enum ira_algorithm flag_ira_algorithm = IRA_ALGORITHM_CB;
-enum ira_region flag_ira_region = IRA_REGION_MIXED;
-
/* Set the default for excess precision. */
enum excess_precision flag_excess_precision_cmdline = EXCESS_PRECISION_DEFAULT;
@@ -305,9 +293,6 @@ typedef struct
}
lang_independent_options;
-/* Nonzero if subexpressions must be evaluated from left-to-right. */
-int flag_evaluation_order = 0;
-
/* The user symbol prefix after having resolved same. */
const char *user_label_prefix;
@@ -1678,8 +1663,10 @@ general_init (const char *argv0)
/* Set a default printer. Language specific initializations will
override it later. */
pp_format_decoder (global_dc->printer) = &default_tree_printer;
- global_dc->show_option_requested = flag_diagnostics_show_option;
- global_dc->show_column = flag_show_column;
+ global_dc->show_option_requested
+ = global_options_init.x_flag_diagnostics_show_option;
+ global_dc->show_column
+ = global_options_init.x_flag_show_column;
global_dc->internal_error = plugins_internal_error_function;
global_dc->option_enabled = option_enabled;
global_dc->option_state = &global_options;
@@ -2419,10 +2406,29 @@ toplev_main (int argc, char **argv)
/* Initialization of GCC's environment, and diagnostics. */
general_init (argv[0]);
+ /* One-off initialization of options that does not need to be
+ repeated when options are added for particular functions. */
+ init_options_once ();
+
+ /* Initialize global options structures; this must be repeated for
+ each structure used for parsing options. */
+ init_options_struct (&global_options, &global_options_set);
+ lang_hooks.init_options_struct (&global_options);
+
+ /* Convert the options to an array. */
+ decode_cmdline_options_to_array_default_mask (argc,
+ CONST_CAST2 (const char **,
+ char **, argv),
+ &save_decoded_options,
+ &save_decoded_options_count);
+
+ /* Perform language-specific options initialization. */
+ lang_hooks.init_options (save_decoded_options_count, save_decoded_options);
+
/* Parse the options and do minimal processing; basically just
enough to default flags appropriately. */
- decode_options (argc, CONST_CAST2 (const char **, char **, argv),
- &save_decoded_options, &save_decoded_options_count);
+ decode_options (&global_options, &global_options_set,
+ save_decoded_options, save_decoded_options_count);
init_local_tick ();