diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/opts.c | 29 |
2 files changed, 27 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 852773d..4509447 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2020-03-23 Lewis Hyatt <lhyatt@gmail.com> + + * opts.c (print_filtered_help): Improve the help text for alias options. + 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com> Andre Vieira <andre.simoesdiasvieira@arm.com> Mihail Ionescu <mihail.ionescu@arm.com> @@ -1315,14 +1315,31 @@ print_filtered_help (unsigned int include_flags, if (option->alias_target < N_OPTS && cl_options [option->alias_target].help) { + const struct cl_option *target = cl_options + option->alias_target; if (option->help == NULL) { - /* For undocumented options that are aliases for other options - that are documented, point the reader to the other option in - preference of the former. */ - snprintf (new_help, sizeof new_help, - _("Same as %s. Use the latter option instead."), - cl_options [option->alias_target].opt_text); + /* The option is undocumented but is an alias for an option that + is documented. If the option has alias arguments, then its + purpose is to provide certain arguments to the other option, so + inform the reader of this. Otherwise, point the reader to the + other option in preference to the former. */ + + if (option->alias_arg) + { + if (option->neg_alias_arg) + snprintf (new_help, sizeof new_help, + _("Same as %s%s (or, in negated form, %s%s)."), + target->opt_text, option->alias_arg, + target->opt_text, option->neg_alias_arg); + else + snprintf (new_help, sizeof new_help, + _("Same as %s%s."), + target->opt_text, option->alias_arg); + } + else + snprintf (new_help, sizeof new_help, + _("Same as %s."), + target->opt_text); } else { |