diff options
Diffstat (limited to 'gcc/diagnostic.c')
-rw-r--r-- | gcc/diagnostic.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index c712608..6bbfe9a 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -261,10 +261,11 @@ diagnostic_action_after_output (diagnostic_context *context, /* Prints out, if necessary, the name of the current function that caused an error. Called from all error and warning functions. */ void -diagnostic_report_current_function (diagnostic_context *context) +diagnostic_report_current_function (diagnostic_context *context, + diagnostic_info *diagnostic) { diagnostic_report_current_module (context); - lang_hooks.print_error_function (context, input_filename); + lang_hooks.print_error_function (context, input_filename, diagnostic); } void @@ -302,7 +303,7 @@ static void default_diagnostic_starter (diagnostic_context *context, diagnostic_info *diagnostic) { - diagnostic_report_current_function (context); + diagnostic_report_current_function (context, diagnostic); pp_set_prefix (context->printer, diagnostic_build_prefix (diagnostic)); } @@ -414,6 +415,8 @@ diagnostic_report_diagnostic (diagnostic_context *context, " [", cl_options[diagnostic->option_index].opt_text, "]", NULL)); diagnostic->message.locus = &diagnostic->location; + diagnostic->message.abstract_origin = &diagnostic->abstract_origin; + diagnostic->abstract_origin = NULL; pp_format (context->printer, &diagnostic->message); (*diagnostic_starter (context)) (context, diagnostic); pp_output_formatted_text (context->printer); @@ -421,6 +424,7 @@ diagnostic_report_diagnostic (diagnostic_context *context, pp_flush (context->printer); diagnostic_action_after_output (context, diagnostic); diagnostic->message.format_spec = saved_format_spec; + diagnostic->abstract_origin = NULL; } context->lock--; @@ -472,6 +476,7 @@ verbatim (const char *gmsgid, ...) text.args_ptr = ≈ text.format_spec = _(gmsgid); text.locus = NULL; + text.abstract_origin = NULL; pp_format_verbatim (global_dc->printer, &text); pp_flush (global_dc->printer); va_end (ap); |