79cf599406
* c-pragma.c (handle_pragma_diagnostic): New. (init_pragma): Register it. * doc/extend.texi: Document it. * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED. * diagnostic.h (diagnostic_classify_diagnostic): Declare. (diagnostic_context): Add classify_diagnostic[]. * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings as errors if they're overridden to DK_WARNING. (diagnostic_initialize): Initialize classify_diagnostic[]. (diagnostic_set_kind_override): New. (diagnostic_report_diagnostic): Check for kind changes. * opts.c (common_handle_option): Take lang_mask. Update callers. Handle OPT_Werror_. * common.opt (Werror=): New. * doc/invoke.texi: Document -Werror=* From-SVN: r109907
24 lines
1.1 KiB
Modula-2
24 lines
1.1 KiB
Modula-2
/* DK_UNSPECIFIED must be first so it has a value of zero. We never
|
|
assign this kind to an actual diagnostic, we only use this in
|
|
variables that can hold a kind, to mean they have yet to have a
|
|
kind specified. I.e. they're uninitialized. Within the diagnostic
|
|
machinery, this kind also means "don't change the existing kind",
|
|
meaning "no change is specified". */
|
|
DEFINE_DIAGNOSTIC_KIND (DK_UNSPECIFIED, "")
|
|
|
|
/* If a diagnostic is set to DK_IGNORED, it won't get reported at all.
|
|
This is used by the diagnostic machinery when it wants to disable a
|
|
diagnostic without disabling the option which causes it. */
|
|
DEFINE_DIAGNOSTIC_KIND (DK_IGNORED, "")
|
|
|
|
/* The remainder are real diagnostic types. */
|
|
DEFINE_DIAGNOSTIC_KIND (DK_FATAL, "fatal error: ")
|
|
DEFINE_DIAGNOSTIC_KIND (DK_ICE, "internal compiler error: ")
|
|
DEFINE_DIAGNOSTIC_KIND (DK_ERROR, "error: ")
|
|
DEFINE_DIAGNOSTIC_KIND (DK_SORRY, "sorry, unimplemented: ")
|
|
DEFINE_DIAGNOSTIC_KIND (DK_WARNING, "warning: ")
|
|
DEFINE_DIAGNOSTIC_KIND (DK_ANACHRONISM, "anachronism: ")
|
|
DEFINE_DIAGNOSTIC_KIND (DK_NOTE, "note: ")
|
|
DEFINE_DIAGNOSTIC_KIND (DK_DEBUG, "debug: ")
|
|
|