summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-15 16:55:46 +0000
committerChris Lattner <sabre@nondot.org>2009-04-15 16:55:46 +0000
commit06a7f372651bb791e9d6935e4157d3606e116276 (patch)
tree42d458715b53483600a02c485104c9606f4d4c3a
parent1b595624a841305ba3c982e380f887951de879a0 (diff)
downloadbcm5719-llvm-06a7f372651bb791e9d6935e4157d3606e116276.tar.gz
bcm5719-llvm-06a7f372651bb791e9d6935e4157d3606e116276.zip
don't infer diag class from parenting relations, make it an explicit field
in the record. llvm-svn: 69176
-rw-r--r--llvm/utils/TableGen/ClangDiagnosticsEmitter.cpp16
1 files changed, 1 insertions, 15 deletions
diff --git a/llvm/utils/TableGen/ClangDiagnosticsEmitter.cpp b/llvm/utils/TableGen/ClangDiagnosticsEmitter.cpp
index 430b4f7a15e..147e2fd1b8d 100644
--- a/llvm/utils/TableGen/ClangDiagnosticsEmitter.cpp
+++ b/llvm/utils/TableGen/ClangDiagnosticsEmitter.cpp
@@ -39,16 +39,6 @@ static const RecordVal* findRecordVal(const Record& R, const std::string &key) {
return 0;
}
-static const Record* getDiagKind(const Record* DiagClass, const Record &R) {
- const SuperClassVector &SC = R.getSuperClasses();
- for (SuperClassVector::const_iterator I=SC.begin(), E=SC.end(); I!=E; ++I)
- if ((*I)->isSubClassOf(DiagClass) &&
- (*I)->getName() != "DiagnosticControlled")
- return *I;
-
- return 0;
-}
-
static void EmitEscaped(std::ostream& OS, const std::string &s) {
for (std::string::const_iterator I=s.begin(), E=s.end(); I!=E; ++I)
switch (*I) {
@@ -69,12 +59,8 @@ static void EmitAllCaps(std::ostream& OS, const std::string &s) {
static void ProcessDiag(std::ostream &OS, const Record *DiagClass,
const Record &R) {
- const Record* DiagKind = getDiagKind(DiagClass, R);
- if (!DiagKind)
- return;
-
OS << "DIAG(" << R.getName() << ", ";
- EmitAllCaps(OS, DiagKind->getName());
+ OS << R.getValueAsDef("Class")->getName();
OS << ", diag::" << R.getValueAsDef("DefaultMapping")->getName();
OS << ", \"";
EmitEscaped(OS, R.getValueAsString("Text"));
OpenPOWER on IntegriCloud