diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-11-15 12:54:53 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-11-15 12:54:53 +0000 |
| commit | fee467a0d022ebd8a02c34eab2c9d623a3052e28 (patch) | |
| tree | f315532d996f957cf21ac1be7ab6e44b00a862b5 /clang | |
| parent | 176a5cb38abee0ed735c8c19c7a9c984ff4fe4f8 (diff) | |
| download | bcm5719-llvm-fee467a0d022ebd8a02c34eab2c9d623a3052e28.tar.gz bcm5719-llvm-fee467a0d022ebd8a02c34eab2c9d623a3052e28.zip | |
Validate DiagGroup names in TableGen, they're used as command line arguments so we don't want shell meta chars in there.
llvm-svn: 144645
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/utils/TableGen/ClangDiagnosticsEmitter.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp b/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp index 7a5eb1d7114..4435fa735b2 100644 --- a/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp +++ b/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp @@ -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, ' '); |

