Commit abb48524 by David Malcolm

diagnostics: don't generate URLs that won't be used

The two places in diagnostics.c where URLs are printed both do
non-trivial work to generate the URL strings (including malloc/free), so
don't do this work if URL-printing is disabled.

gcc/ChangeLog:
	* diagnostic.c (print_any_cwe): Don't call get_cwe_url if URLs
	won't be printed.
	(print_option_information): Don't call get_option_url if URLs
	won't be printed.
parent d8cde6f9
2020-02-17 David Malcolm <dmalcolm@redhat.com>
* diagnostic.c (print_any_cwe): Don't call get_cwe_url if URLs
won't be printed.
(print_option_information): Don't call get_option_url if URLs
won't be printed.
2020-02-17 Alexandre Oliva <oliva@adacore.com> 2020-02-17 Alexandre Oliva <oliva@adacore.com>
* tree-emutls.c (new_emutls_decl, emutls_common_1): Complete * tree-emutls.c (new_emutls_decl, emutls_common_1): Complete
......
...@@ -983,12 +983,16 @@ print_any_cwe (diagnostic_context *context, ...@@ -983,12 +983,16 @@ print_any_cwe (diagnostic_context *context,
pp_string (pp, " ["); pp_string (pp, " [");
pp_string (pp, colorize_start (pp_show_color (pp), pp_string (pp, colorize_start (pp_show_color (pp),
diagnostic_kind_color[diagnostic->kind])); diagnostic_kind_color[diagnostic->kind]));
char *cwe_url = get_cwe_url (cwe); if (pp->url_format != URL_FORMAT_NONE)
pp_begin_url (pp, cwe_url); {
free (cwe_url); char *cwe_url = get_cwe_url (cwe);
pp_begin_url (pp, cwe_url);
free (cwe_url);
}
pp_printf (pp, "CWE-%i", cwe); pp_printf (pp, "CWE-%i", cwe);
pp_set_prefix (context->printer, saved_prefix); pp_set_prefix (context->printer, saved_prefix);
pp_end_url (pp); if (pp->url_format != URL_FORMAT_NONE)
pp_end_url (pp);
pp_string (pp, colorize_stop (pp_show_color (pp))); pp_string (pp, colorize_stop (pp_show_color (pp)));
pp_character (pp, ']'); pp_character (pp, ']');
} }
...@@ -1011,7 +1015,8 @@ print_option_information (diagnostic_context *context, ...@@ -1011,7 +1015,8 @@ print_option_information (diagnostic_context *context,
if (option_text) if (option_text)
{ {
char *option_url = NULL; char *option_url = NULL;
if (context->get_option_url) if (context->get_option_url
&& context->printer->url_format != URL_FORMAT_NONE)
option_url = context->get_option_url (context, option_url = context->get_option_url (context,
diagnostic->option_index); diagnostic->option_index);
pretty_printer *pp = context->printer; pretty_printer *pp = context->printer;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment