driver: Improve the generated help text for alias options
authorLewis Hyatt <lhyatt@gmail.com>
Mon, 23 Mar 2020 18:37:02 +0000 (14:37 -0400)
committerLewis Hyatt <lhyatt@gmail.com>
Mon, 23 Mar 2020 18:37:02 +0000 (14:37 -0400)
gcc/ChangeLog:

2020-03-23  Lewis Hyatt  <lhyatt@gmail.com>

* opts.c (print_filtered_help): Improve the help text for alias options.

gcc/ChangeLog
gcc/opts.c

index 852773d2f5f411cd6524f29f867c1496414379ba..4509447caa3e7627e58acf8e4264af2089997b90 100644 (file)
@@ -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>
index ac160ed8404e6b02e616b81a90bc12c9a5a5008f..5dc7d65dedd244b65d239b995fc20f78cc28a4bf 100644 (file)
@@ -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
            {