]> granicus.if.org Git - clang/commitdiff
Validate DiagGroup names in TableGen, they're used as command line arguments so we...
authorBenjamin Kramer <benny.kra@googlemail.com>
Tue, 15 Nov 2011 12:54:53 +0000 (12:54 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Tue, 15 Nov 2011 12:54:53 +0000 (12:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144645 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/ClangDiagnosticsEmitter.cpp

index 7a5eb1d7114b471e43c34bfc8813ad447982d54d..4435fa735b2927759262076edb0157b11de65e97 100644 (file)
@@ -303,6 +303,10 @@ void ClangDiagGroupsEmitter::run(raw_ostream &OS) {
     OS << "  { ";
     OS << I->first.size() << ", ";
     OS << "\"";
+    if (I->first.find_first_not_of("abcdefghijklmnopqrstuvwxyz"
+                                   "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+                                   "0123456789!@#$%^*-+=:?")!=std::string::npos)
+      throw "Invalid character in diagnostic group '" + I->first + "'";
     OS.write_escaped(I->first) << "\","
                                << std::string(MaxLen-I->first.size()+1, ' ');