On Tue, Apr 26, 2022 at 12:41 PM Martin Liška <[email protected]> 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
>