prove diagnostic -> group mapping information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69270 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/ClangDiagnosticsEmitter.cpp b/utils/TableGen/ClangDiagnosticsEmitter.cpp
index 4d7f929..919ae9b 100644
--- a/utils/TableGen/ClangDiagnosticsEmitter.cpp
+++ b/utils/TableGen/ClangDiagnosticsEmitter.cpp
@@ -50,10 +50,22 @@
     OS << "DIAG(" << R.getName() << ", ";
     OS << R.getValueAsDef("Class")->getName();
     OS << ", diag::" << R.getValueAsDef("DefaultMapping")->getName();
+    
+    // Description string.
     OS << ", \"";
     std::string S = R.getValueAsString("Text");
     EscapeString(S);
-    OS << S << "\")\n";
+    OS << S << "\"";
+    
+    // Warning associated with the diagnostic.
+    if (DefInit *DI = dynamic_cast<DefInit*>(R.getValueInit("Group"))) {
+      S = DI->getDef()->getValueAsString("GroupName");
+      EscapeString(S);
+      OS << ", \"" << S << "\"";
+    } else {
+      OS << ", 0";
+    }
+    OS << ")\n";
   }
 }