From 3ab2b0ca2b0d24d1a84970944786724ec3129dae Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 15 Apr 2009 20:13:18 +0000 Subject: [PATCH] use escape string. llvm-svn: 69212 --- utils/TableGen/ClangDiagnosticsEmitter.cpp | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/utils/TableGen/ClangDiagnosticsEmitter.cpp b/utils/TableGen/ClangDiagnosticsEmitter.cpp index 38c4eeb39d4..5a5f4795c27 100644 --- a/utils/TableGen/ClangDiagnosticsEmitter.cpp +++ b/utils/TableGen/ClangDiagnosticsEmitter.cpp @@ -16,8 +16,9 @@ #include "llvm/Support/Debug.h" #include "llvm/Support/Compiler.h" #include "llvm/Support/Streams.h" -#include "llvm/ADT/VectorExtras.h" #include "llvm/ADT/DenseSet.h" +#include "llvm/ADT/StringExtras.h" +#include "llvm/ADT/VectorExtras.h" #include #include using namespace llvm; @@ -39,15 +40,6 @@ static const RecordVal* findRecordVal(const Record& R, const std::string &key) { 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) { - default: OS << *I; break; - case '\"': OS << "\\" << *I; break; - case '\\': OS << "\\\\"; break; - } -} - static void EmitAllCaps(std::ostream& OS, const std::string &s) { for (std::string::const_iterator I=s.begin(), E=s.end(); I!=E; ++I) OS << char(toupper(*I)); @@ -63,8 +55,9 @@ static void ProcessDiag(std::ostream &OS, const Record *DiagClass, OS << R.getValueAsDef("Class")->getName(); OS << ", diag::" << R.getValueAsDef("DefaultMapping")->getName(); OS << ", \""; - EmitEscaped(OS, R.getValueAsString("Text")); - OS << "\")\n"; + std::string S = R.getValueAsString("Text"); + EscapeString(S); + OS << S << "\")\n"; } void ClangDiagsDefsEmitter::run(std::ostream &OS) { @@ -168,7 +161,7 @@ static void BuildGroup(DiagnosticSet& DS, VisitedLists &Visited, void ClangDiagGroupsEmitter::run(std::ostream &OS) { // Build up a map from options to controlled diagnostics. OptionMap OM; - + const RecordVector &Opts = Records.getAllDerivedDefinitions("Option"); for (RecordVector::const_iterator I=Opts.begin(), E=Opts.end(); I != E; ++I) if (const RecordVal* V = findRecordVal(**I, "Members"))