aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/opts.c29
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>
diff --git a/gcc/opts.c b/gcc/opts.c
index ac160ed..5dc7d65 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -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
{