aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Basic/Diagnostic.td45
1 files changed, 25 insertions, 20 deletions
diff --git a/include/clang/Basic/Diagnostic.td b/include/clang/Basic/Diagnostic.td
index 5f1e4ec4da..67510ea83c 100644
--- a/include/clang/Basic/Diagnostic.td
+++ b/include/clang/Basic/Diagnostic.td
@@ -12,30 +12,37 @@
//
//===----------------------------------------------------------------------===//
-// All diagnostics emitted by the compiler are an indirect subclass of this.
-class Diagnostic<string text> {
- string Component = ?;
- string Text = text;
+// Define the diagnostic mappings.
+class DiagMapping;
+def MAP_IGNORE : DiagMapping;
+def MAP_WARNING : DiagMapping;
+def MAP_ERROR : DiagMapping;
+def MAP_FATAL : DiagMapping;
+
+/*
+class Option<string name, list<OptionControlled> members> : OptionControlled {
+ string Name = name;
+ list<OptionControlled> Members = members;
}
-class Error<string text> : Diagnostic<text>;
-class Note<string text> : Diagnostic<text>;
+// Definitions for options ("warning groups").
+include "DiagnosticOptions.td"
-// Anything that can be controlled by an option subclasses this.
-class OptionControlled;
+*/
-class DiagnosticControlled<string text, string defaultMapping>
- : Diagnostic<text>, OptionControlled {
- string DefaultMapping = defaultMapping;
+// All diagnostics emitted by the compiler are an indirect subclass of this.
+class Diagnostic<string text, DiagMapping defaultmapping> {
+ /// Component is specified by the file with a big let directive.
+ string Component = ?;
+ string Text = text;
+ DiagMapping DefaultMapping = defaultmapping;
}
-class Warning<string text> : DiagnosticControlled<text, "warning"> {}
-class Extension<string text> : DiagnosticControlled<text, "ignore"> {}
-class ExtWarn<string text> : DiagnosticControlled<text, "warning"> {}
-class Option<string name, list<OptionControlled> members> : OptionControlled {
- string Name = name;
- list<OptionControlled> Members = members;
-}
+class Error<string text> : Diagnostic<text, MAP_ERROR>;
+class Warning<string text> : Diagnostic<text, MAP_WARNING>;
+class Extension<string text> : Diagnostic<text, MAP_IGNORE>;
+class ExtWarn<string text> : Diagnostic<text, MAP_WARNING>;
+class Note<string text> : Diagnostic<text, MAP_FATAL /*ignored*/>;
// Definitions for Diagnostics.
include "DiagnosticASTKinds.td"
@@ -47,5 +54,3 @@ include "DiagnosticLexKinds.td"
include "DiagnosticParseKinds.td"
include "DiagnosticSemaKinds.td"
-// Definitions for options ("warning groups").
-include "DiagnosticOptions.td"