| 1 | /* Copyright (C) 2001-2025 Free Software Foundation, Inc. | 
| 2 |  | 
| 3 | This file is part of GCC. | 
| 4 |  | 
| 5 | GCC is free software; you can redistribute it and/or modify it under | 
| 6 | the terms of the GNU General Public License as published by the Free | 
| 7 | Software Foundation; either version 3, or (at your option) any later | 
| 8 | version. | 
| 9 |  | 
| 10 | GCC is distributed in the hope that it will be useful, but WITHOUT ANY | 
| 11 | WARRANTY; without even the implied warranty of MERCHANTABILITY or | 
| 12 | FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | 
| 13 | for more details. | 
| 14 |  | 
| 15 | You should have received a copy of the GNU General Public License | 
| 16 | along with GCC; see the file COPYING3.  If not see | 
| 17 | <http://www.gnu.org/licenses/>.  */ | 
| 18 |  | 
| 19 | /* DK_UNSPECIFIED must be first so it has a value of zero.  We never | 
| 20 |    assign this kind to an actual diagnostic, we only use this in | 
| 21 |    variables that can hold a kind, to mean they have yet to have a | 
| 22 |    kind specified.  I.e. they're uninitialized.  Within the diagnostic | 
| 23 |    machinery, this kind also means "don't change the existing kind", | 
| 24 |    meaning "no change is specified".  */ | 
| 25 | DEFINE_DIAGNOSTIC_KIND (DK_UNSPECIFIED, "" , NULL) | 
| 26 |  | 
| 27 | /* If a diagnostic is set to DK_IGNORED, it won't get reported at all. | 
| 28 |    This is used by the diagnostic machinery when it wants to disable a | 
| 29 |    diagnostic without disabling the option which causes it.  */ | 
| 30 | DEFINE_DIAGNOSTIC_KIND (DK_IGNORED, "" , NULL) | 
| 31 |  | 
| 32 | /* The remainder are real diagnostic types.  */ | 
| 33 | DEFINE_DIAGNOSTIC_KIND (DK_FATAL, "fatal error: " , "error" ) | 
| 34 | DEFINE_DIAGNOSTIC_KIND (DK_ICE, "internal compiler error: " , "error" ) | 
| 35 | DEFINE_DIAGNOSTIC_KIND (DK_ERROR, "error: " , "error" ) | 
| 36 | DEFINE_DIAGNOSTIC_KIND (DK_SORRY, "sorry, unimplemented: " , "error" ) | 
| 37 | DEFINE_DIAGNOSTIC_KIND (DK_WARNING, "warning: " , "warning" ) | 
| 38 | DEFINE_DIAGNOSTIC_KIND (DK_ANACHRONISM, "anachronism: " , "warning" ) | 
| 39 | DEFINE_DIAGNOSTIC_KIND (DK_NOTE, "note: " , "note" ) | 
| 40 | DEFINE_DIAGNOSTIC_KIND (DK_DEBUG, "debug: " , "note" ) | 
| 41 |  | 
| 42 | /* For use when using the diagnostic_show_locus machinery to show | 
| 43 |    a range of events within a path.  */ | 
| 44 | DEFINE_DIAGNOSTIC_KIND (DK_DIAGNOSTIC_PATH, "path: " , "path" ) | 
| 45 |  | 
| 46 | /* These two would be re-classified as DK_WARNING or DK_ERROR, so the | 
| 47 | prefix does not matter.  */ | 
| 48 | DEFINE_DIAGNOSTIC_KIND (DK_PEDWARN, "pedwarn: " , NULL) | 
| 49 | DEFINE_DIAGNOSTIC_KIND (DK_PERMERROR, "permerror: " , NULL) | 
| 50 | /* This one is just for counting DK_WARNING promoted to DK_ERROR | 
| 51 |    due to -Werror and -Werror=warning.  */ | 
| 52 | DEFINE_DIAGNOSTIC_KIND (DK_WERROR, "error: " , NULL) | 
| 53 | /* This is like DK_ICE, but backtrace is not printed.  Used in the driver | 
| 54 |    when reporting fatal signal in the compiler.  */ | 
| 55 | DEFINE_DIAGNOSTIC_KIND (DK_ICE_NOBT, "internal compiler error: " , "error" ) | 
| 56 |  |