| 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 | |