On Tue, Apr 26, 2022 at 12:41 PM Martin Liška <mli...@suse.cz> wrote:
>
> Properly parse OPT_fdiagnostics_urls_ and then initialize both urls
> and colors for global_dc. Doing that we would follow the configure
> option --with-documentation-root-url, -fdiagnostics-urls is respected.
> Plus we'll print colored warning and note messages.
>
> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>
> Ready to be installed?

OK.

Thanks,
Richard.

> Thanks,
> Martin
>
>         PR lto/105364
>
> gcc/ChangeLog:
>
>         * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
>         (run_gcc): Parse OPT_fdiagnostics_urls_.
>         (main): Initialize global_dc.
> ---
>  gcc/lto-wrapper.cc | 20 +++++++++++++++++---
>  1 file changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/gcc/lto-wrapper.cc b/gcc/lto-wrapper.cc
> index 6027fd9efdd..285e6e96af5 100644
> --- a/gcc/lto-wrapper.cc
> +++ b/gcc/lto-wrapper.cc
> @@ -1364,14 +1364,17 @@ jobserver_active_p (void)
>  void
>  print_lto_docs_link ()
>  {
> -  const char *url = get_option_url (NULL, OPT_flto);
> +  bool print_url = global_dc->printer->url_format != URL_FORMAT_NONE;
> +  const char *url = global_dc->get_option_url (global_dc, OPT_flto);
>
>    pretty_printer pp;
>    pp.url_format = URL_FORMAT_DEFAULT;
>    pp_string (&pp, "see the ");
> -  pp_begin_url (&pp, url);
> +  if (print_url)
> +    pp_begin_url (&pp, url);
>    pp_string (&pp, "%<-flto%> option documentation");
> -  pp_end_url (&pp);
> +  if (print_url)
> +    pp_end_url (&pp);
>    pp_string (&pp, " for more information");
>    inform (UNKNOWN_LOCATION, pp_formatted_text (&pp));
>  }
> @@ -1573,6 +1576,14 @@ run_gcc (unsigned argc, char *argv[])
>           incoming_dumppfx = dumppfx = option->arg;
>           break;
>
> +       case OPT_fdiagnostics_urls_:
> +         diagnostic_urls_init (global_dc, option->value);
> +         break;
> +
> +       case OPT_fdiagnostics_color_:
> +         diagnostic_color_init (global_dc, option->value);
> +         break;
> +
>         default:
>           break;
>         }
> @@ -2130,6 +2141,9 @@ main (int argc, char *argv[])
>    gcc_init_libintl ();
>
>    diagnostic_initialize (global_dc, 0);
> +  diagnostic_color_init (global_dc);
> +  diagnostic_urls_init (global_dc);
> +  global_dc->get_option_url = get_option_url;
>
>    if (atexit (lto_wrapper_cleanup) != 0)
>      fatal_error (input_location, "%<atexit%> failed");
> --
> 2.36.0
>

Reply via email to