lto: use diagnostics_context in print_lto_docs_link
authorMartin Liska <mliska@suse.cz>
Tue, 26 Apr 2022 07:56:37 +0000 (09:56 +0200)
committerMartin Liska <mliska@suse.cz>
Tue, 26 Apr 2022 13:46:52 +0000 (15:46 +0200)
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.

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

index 6027fd9..285e6e9 100644 (file)
@@ -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");