Lines Matching refs:context
92 diagnostic_initialize (diagnostic_context *context) in diagnostic_initialize() argument
96 context->printer = XNEW (pretty_printer); in diagnostic_initialize()
97 pp_construct (context->printer, NULL, 0); in diagnostic_initialize()
99 context->printer->buffer->stream = stderr; in diagnostic_initialize()
101 context->printer->wrapping.rule = DIAGNOSTICS_SHOW_PREFIX_ONCE; in diagnostic_initialize()
103 memset (context->diagnostic_count, 0, sizeof context->diagnostic_count); in diagnostic_initialize()
104 context->issue_warnings_are_errors_message = true; in diagnostic_initialize()
105 context->warning_as_error_requested = false; in diagnostic_initialize()
106 memset (context->classify_diagnostic, DK_UNSPECIFIED, in diagnostic_initialize()
107 sizeof context->classify_diagnostic); in diagnostic_initialize()
108 context->show_option_requested = false; in diagnostic_initialize()
109 context->abort_on_error = false; in diagnostic_initialize()
110 context->internal_error = NULL; in diagnostic_initialize()
111 diagnostic_starter (context) = default_diagnostic_starter; in diagnostic_initialize()
112 diagnostic_finalizer (context) = default_diagnostic_finalizer; in diagnostic_initialize()
113 context->last_module = 0; in diagnostic_initialize()
114 context->last_function = NULL; in diagnostic_initialize()
115 context->lock = 0; in diagnostic_initialize()
170 diagnostic_count_diagnostic (diagnostic_context *context, in diagnostic_count_diagnostic() argument
184 if ((diagnostic_kind_count (context, DK_ERROR) > 0 in diagnostic_count_diagnostic()
185 || diagnostic_kind_count (context, DK_SORRY) > 0) in diagnostic_count_diagnostic()
186 && !context->abort_on_error) in diagnostic_count_diagnostic()
194 if (context->internal_error) in diagnostic_count_diagnostic()
195 (*context->internal_error) (diagnostic->message.format_spec, in diagnostic_count_diagnostic()
201 ++diagnostic_kind_count (context, kind); in diagnostic_count_diagnostic()
211 if (!context->warning_as_error_requested in diagnostic_count_diagnostic()
212 || (context->classify_diagnostic[diagnostic->option_index] in diagnostic_count_diagnostic()
215 ++diagnostic_kind_count (context, DK_WARNING); in diagnostic_count_diagnostic()
218 else if (context->issue_warnings_are_errors_message) in diagnostic_count_diagnostic()
220 pp_verbatim (context->printer, in diagnostic_count_diagnostic()
222 context->issue_warnings_are_errors_message = false; in diagnostic_count_diagnostic()
227 ++diagnostic_kind_count (context, DK_ERROR); in diagnostic_count_diagnostic()
237 diagnostic_action_after_output (diagnostic_context *context, in diagnostic_action_after_output() argument
250 if (context->abort_on_error) in diagnostic_action_after_output()
260 if (context->abort_on_error) in diagnostic_action_after_output()
269 if (context->abort_on_error) in diagnostic_action_after_output()
283 diagnostic_report_current_function (diagnostic_context *context) in diagnostic_report_current_function() argument
285 diagnostic_report_current_module (context); in diagnostic_report_current_function()
286 lang_hooks.print_error_function (context, input_filename); in diagnostic_report_current_function()
290 diagnostic_report_current_module (diagnostic_context *context) in diagnostic_report_current_module() argument
294 if (pp_needs_newline (context->printer)) in diagnostic_report_current_module()
296 pp_newline (context->printer); in diagnostic_report_current_module()
297 pp_needs_newline (context->printer) = false; in diagnostic_report_current_module()
301 if (p && diagnostic_last_module_changed (context)) in diagnostic_report_current_module()
304 pp_verbatim (context->printer, in diagnostic_report_current_module()
310 pp_verbatim (context->printer, in diagnostic_report_current_module()
314 pp_verbatim (context->printer, ":"); in diagnostic_report_current_module()
315 diagnostic_set_last_module (context); in diagnostic_report_current_module()
316 pp_newline (context->printer); in diagnostic_report_current_module()
321 default_diagnostic_starter (diagnostic_context *context, in default_diagnostic_starter() argument
324 diagnostic_report_current_function (context); in default_diagnostic_starter()
325 pp_set_prefix (context->printer, diagnostic_build_prefix (diagnostic)); in default_diagnostic_starter()
329 default_diagnostic_finalizer (diagnostic_context *context, in default_diagnostic_finalizer() argument
332 pp_destroy_prefix (context->printer); in default_diagnostic_finalizer()
339 diagnostic_classify_diagnostic (diagnostic_context *context, in diagnostic_classify_diagnostic() argument
350 old_kind = context->classify_diagnostic[option_index]; in diagnostic_classify_diagnostic()
351 context->classify_diagnostic[option_index] = new_kind; in diagnostic_classify_diagnostic()
362 diagnostic_report_diagnostic (diagnostic_context *context, in diagnostic_report_diagnostic() argument
365 if (context->lock > 0) in diagnostic_report_diagnostic()
370 if (diagnostic->kind == DK_ICE && context->lock == 1) in diagnostic_report_diagnostic()
371 pp_flush (context->printer); in diagnostic_report_diagnostic()
373 error_recursion (context); in diagnostic_report_diagnostic()
384 if (context->classify_diagnostic[diagnostic->option_index] != DK_UNSPECIFIED) in diagnostic_report_diagnostic()
385 diagnostic->kind = context->classify_diagnostic[diagnostic->option_index]; in diagnostic_report_diagnostic()
392 context->lock++; in diagnostic_report_diagnostic()
394 if (diagnostic_count_diagnostic (context, diagnostic)) in diagnostic_report_diagnostic()
398 if (context->show_option_requested && diagnostic->option_index) in diagnostic_report_diagnostic()
404 pp_format (context->printer, &diagnostic->message); in diagnostic_report_diagnostic()
405 (*diagnostic_starter (context)) (context, diagnostic); in diagnostic_report_diagnostic()
406 pp_output_formatted_text (context->printer); in diagnostic_report_diagnostic()
407 (*diagnostic_finalizer (context)) (context, diagnostic); in diagnostic_report_diagnostic()
408 pp_flush (context->printer); in diagnostic_report_diagnostic()
409 diagnostic_action_after_output (context, diagnostic); in diagnostic_report_diagnostic()
413 context->lock--; in diagnostic_report_diagnostic()
615 error_recursion (diagnostic_context *context) in error_recursion() argument
619 if (context->lock < 3) in error_recursion()
620 pp_flush (context->printer); in error_recursion()
628 diagnostic_action_after_output (context, &diagnostic); in error_recursion()