xref: /aosp_15_r20/external/clang/test/TableGen/DiagnosticBase.inc (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// Define the diagnostic mappings.
2*67e74705SXin Liclass DiagMapping;
3*67e74705SXin Lidef MAP_IGNORE  : DiagMapping;
4*67e74705SXin Lidef MAP_WARNING : DiagMapping;
5*67e74705SXin Lidef MAP_ERROR   : DiagMapping;
6*67e74705SXin Lidef MAP_FATAL   : DiagMapping;
7*67e74705SXin Li
8*67e74705SXin Li// Define the diagnostic classes.
9*67e74705SXin Liclass DiagClass;
10*67e74705SXin Lidef CLASS_NOTE      : DiagClass;
11*67e74705SXin Lidef CLASS_WARNING   : DiagClass;
12*67e74705SXin Lidef CLASS_EXTENSION : DiagClass;
13*67e74705SXin Lidef CLASS_ERROR     : DiagClass;
14*67e74705SXin Li
15*67e74705SXin Liclass DiagGroup<string Name, list<DiagGroup> subgroups = []> {
16*67e74705SXin Li  string GroupName = Name;
17*67e74705SXin Li  list<DiagGroup> SubGroups = subgroups;
18*67e74705SXin Li  string CategoryName = "";
19*67e74705SXin Li}
20*67e74705SXin Liclass InGroup<DiagGroup G> { DiagGroup Group = G; }
21*67e74705SXin Li
22*67e74705SXin Li// All diagnostics emitted by the compiler are an indirect subclass of this.
23*67e74705SXin Liclass Diagnostic<string text, DiagClass DC, DiagMapping defaultmapping> {
24*67e74705SXin Li  string      Text = text;
25*67e74705SXin Li  DiagClass   Class = DC;
26*67e74705SXin Li  DiagMapping DefaultMapping = defaultmapping;
27*67e74705SXin Li  DiagGroup   Group;
28*67e74705SXin Li  string      CategoryName = "";
29*67e74705SXin Li}
30*67e74705SXin Li
31*67e74705SXin Liclass Error<string str>     : Diagnostic<str, CLASS_ERROR, MAP_ERROR>;
32*67e74705SXin Liclass Warning<string str>   : Diagnostic<str, CLASS_WARNING, MAP_WARNING>;
33*67e74705SXin Liclass Extension<string str> : Diagnostic<str, CLASS_EXTENSION, MAP_IGNORE>;
34*67e74705SXin Liclass ExtWarn<string str>   : Diagnostic<str, CLASS_EXTENSION, MAP_WARNING>;
35*67e74705SXin Liclass Note<string str>      : Diagnostic<str, CLASS_NOTE, MAP_FATAL/*ignored*/>;
36