diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/opts-global.c | 7 | ||||
-rw-r--r-- | gcc/opts.c | 7 | ||||
-rw-r--r-- | gcc/opts.h | 5 |
4 files changed, 22 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4c2bb69..ad36bdd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,15 @@ 2019-05-28 Martin Liska <mliska@suse.cz> + PR other/90315 + * opts-global.c (decode_options): Print help for all + help_option_arguments. + * opts.c (print_help): Add new argument. + (common_handle_option): Remember all values into + help_option_arguments. + * opts.h (print_help): Add new argument. + +2019-05-28 Martin Liska <mliska@suse.cz> + PR ipa/90555 * ipa-icf-gimple.c (func_checker::compare_loops): New function. * ipa-icf-gimple.h (func_checker::compare_loops): Likewise. diff --git a/gcc/opts-global.c b/gcc/opts-global.c index e6eaeb2..4aca400 100644 --- a/gcc/opts-global.c +++ b/gcc/opts-global.c @@ -317,8 +317,11 @@ decode_options (struct gcc_options *opts, struct gcc_options *opts_set, finish_options (opts, opts_set, loc); /* Print --help=* if used. */ - if (help_option_argument != NULL) - print_help (opts, lang_mask); + unsigned i; + const char *arg; + + FOR_EACH_VEC_ELT (help_option_arguments, i, arg) + print_help (opts, lang_mask, arg); } /* Hold command-line options associated with stack limitation. */ @@ -856,7 +856,7 @@ control_options_for_live_patching (struct gcc_options *opts, } /* --help option argument if set. */ -const char *help_option_argument = NULL; +vec<const char *> help_option_arguments; /* After all options at LOC have been read into OPTS and OPTS_SET, @@ -2062,7 +2062,8 @@ check_alignment_argument (location_t loc, const char *flag, const char *name) /* Print help when OPT__help_ is set. */ void -print_help (struct gcc_options *opts, unsigned int lang_mask) +print_help (struct gcc_options *opts, unsigned int lang_mask, + const char *help_option_argument) { const char *a = help_option_argument; unsigned int include_flags = 0; @@ -2255,7 +2256,7 @@ common_handle_option (struct gcc_options *opts, case OPT__help_: { - help_option_argument = arg; + help_option_arguments.safe_push (arg); opts->x_exit_after_options = true; break; } @@ -419,7 +419,8 @@ extern bool target_handle_option (struct gcc_options *opts, extern void finish_options (struct gcc_options *opts, struct gcc_options *opts_set, location_t loc); -extern void print_help (struct gcc_options *opts, unsigned int lang_mask); +extern void print_help (struct gcc_options *opts, unsigned int lang_mask, const + char *help_option_argument); extern void default_options_optimization (struct gcc_options *opts, struct gcc_options *opts_set, struct cl_decoded_option *decoded_options, @@ -443,7 +444,7 @@ extern const struct sanitizer_opts_s bool can_recover; } sanitizer_opts[]; -extern const char *help_option_argument; +extern vec<const char *> help_option_arguments; extern void add_misspelling_candidates (auto_vec<char *> *candidates, const struct cl_option *option, |