Add initial implementation of a TableGen backend for converting Clang-warnings
tablegen files to the original .def preprocessor include files. This is my first
TableGen backend; I don't claim that it is awesome.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66971 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/TableGen.cpp b/utils/TableGen/TableGen.cpp
index 36ad999..e6ed092 100644
--- a/utils/TableGen/TableGen.cpp
+++ b/utils/TableGen/TableGen.cpp
@@ -34,6 +34,7 @@
 #include "SubtargetEmitter.h"
 #include "IntrinsicEmitter.h"
 #include "LLVMCConfigurationEmitter.h"
+#include "ClangDiagnosticsEmitter.h"
 #include <algorithm>
 #include <cstdio>
 #include <fstream>
@@ -46,6 +47,7 @@
   GenRegisterEnums, GenRegister, GenRegisterHeader,
   GenInstrEnums, GenInstrs, GenAsmWriter,
   GenCallingConv,
+  GenClangDiagsDefs,
   GenDAGISel,
   GenFastISel,
   GenSubtarget,
@@ -86,6 +88,8 @@
                                "Generate intrinsic information"),
                     clEnumValN(GenTgtIntrinsic, "gen-tgt-intrinsic",
                                "Generate target intrinsic information"),
+                    clEnumValN(GenClangDiagsDefs, "gen-clang-diags-defs",
+                               "Generate Clang diagnostics definitions"),
                     clEnumValN(GenLLVMCConf, "gen-llvmc",
                                "Generate LLVMC configuration library"),
                     clEnumValN(PrintEnums, "print-enums",
@@ -185,7 +189,6 @@
     case GenRegisterHeader:
       RegisterInfoEmitter(Records).runHeader(*Out);
       break;
-
     case GenInstrEnums:
       InstrEnumEmitter(Records).run(*Out);
       break;
@@ -198,7 +201,9 @@
     case GenAsmWriter:
       AsmWriterEmitter(Records).run(*Out);
       break;
-
+    case GenClangDiagsDefs:
+      ClangDiagsDefsEmitter(Records).run(*Out);
+      break;
     case GenDAGISel:
       DAGISelEmitter(Records).run(*Out);
       break;