Lines Matching refs:diagnostic

1 /* Language-independent diagnostic subroutines for the GNU Compiler Collection
24 /* This file implements the language independent aspect of diagnostic
40 #include "diagnostic.h"
92 /* Initialize the diagnostic message outputting machinery. */
123 diagnostic_set_info_translated (diagnostic_info *diagnostic, const char *msg,
127 diagnostic->message.err_no = errno;
128 diagnostic->message.args_ptr = args;
129 diagnostic->message.format_spec = msg;
130 diagnostic->location = location;
131 diagnostic->kind = kind;
132 diagnostic->option_index = 0;
138 diagnostic_set_info (diagnostic_info *diagnostic, const char *gmsgid,
142 diagnostic_set_info_translated (diagnostic, _(gmsgid), args, location, kind);
148 diagnostic_build_prefix (diagnostic_info *diagnostic)
152 #include "diagnostic.def"
156 const char *text = _(diagnostic_kind_text[diagnostic->kind]);
157 expanded_location s = expand_location (diagnostic->location);
158 gcc_assert (diagnostic->kind < DK_LAST_DIAGNOSTIC_KIND);
170 /* Count a diagnostic. Return true if the message should be printed. */
173 diagnostic_info *diagnostic)
175 diagnostic_t kind = diagnostic->kind;
190 expanded_location s = expand_location (diagnostic->location);
197 (*context->internal_error) (diagnostic->message.format_spec,
198 diagnostic->message.args_ptr);
214 || (context->classify_diagnostic[diagnostic->option_index]
236 /* Take any action which is expected to happen after the diagnostic
240 diagnostic_info *diagnostic)
242 switch (diagnostic->kind)
324 diagnostic_info *diagnostic)
327 pp_set_prefix (context->printer, diagnostic_build_prefix (diagnostic));
332 diagnostic_info *diagnostic ATTRIBUTE_UNUSED)
337 /* Interface to specify diagnostic kind overrides. Returns the
357 /* Report a diagnostic message (an error or a warning) as specified by
359 should implement their specific diagnostic handling modules. The
365 diagnostic_info *diagnostic)
372 if (diagnostic->kind == DK_ICE && context->lock == 1)
378 if (diagnostic->option_index)
382 if (! option_enabled (diagnostic->option_index))
386 if (context->classify_diagnostic[diagnostic->option_index] != DK_UNSPECIFIED)
387 diagnostic->kind = context->classify_diagnostic[diagnostic->option_index];
390 if (diagnostic->kind == DK_IGNORED)
396 if (diagnostic_count_diagnostic (context, diagnostic))
398 const char *saved_format_spec = diagnostic->message.format_spec;
400 if (context->show_option_requested && diagnostic->option_index)
401 diagnostic->message.format_spec
402 = ACONCAT ((diagnostic->message.format_spec,
403 " [", cl_options[diagnostic->option_index].opt_text, "]", NULL));
405 diagnostic->message.locus = &diagnostic->location;
406 pp_format (context->printer, &diagnostic->message);
407 (*diagnostic_starter (context)) (context, diagnostic);
409 (*diagnostic_finalizer (context)) (context, diagnostic);
411 diagnostic_action_after_output (context, diagnostic);
412 diagnostic->message.format_spec = saved_format_spec;
475 diagnostic_info diagnostic;
479 diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_NOTE);
480 report_diagnostic (&diagnostic);
489 diagnostic_info diagnostic;
493 diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_WARNING);
494 diagnostic.option_index = opt;
496 report_diagnostic (&diagnostic);
503 diagnostic_info diagnostic;
507 diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_WARNING);
508 report_diagnostic (&diagnostic);
523 diagnostic_info diagnostic;
527 diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location,
529 report_diagnostic (&diagnostic);
538 diagnostic_info diagnostic;
542 diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_ERROR);
543 report_diagnostic (&diagnostic);
553 diagnostic_info diagnostic;
557 diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_SORRY);
558 report_diagnostic (&diagnostic);
568 diagnostic_info diagnostic;
572 diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_FATAL);
573 report_diagnostic (&diagnostic);
586 diagnostic_info diagnostic;
590 diagnostic_set_info (&diagnostic, gmsgid, &ap, input_location, DK_ICE);
591 report_diagnostic (&diagnostic);
601 /* Print a diagnostic MSGID on FILE. This is just fprintf, except it
621 diagnostic_info diagnostic;
631 diagnostic.kind = DK_ICE;
632 diagnostic_action_after_output (context, &diagnostic);