Use existing PrintEscapedString in AssemblyWriter

r264884 introduced a helper to escape the backslashes in the source file
path, but I since discovered an existing mechanism to escape strings.

llvm-svn: 264936
This commit is contained in:
Teresa Johnson 2016-03-30 22:17:28 +00:00
parent c940ae83b9
commit bc50c12eb6
2 changed files with 5 additions and 21 deletions

View File

@ -2203,22 +2203,6 @@ void AssemblyWriter::writeOperandBundles(ImmutableCallSite CS) {
Out << " ]";
}
/// Escape any backslashes in the source file (e.g. Windows paths)
/// before emitting, so that it is parsed properly by the lexer on input.
static void EscapeBackslashes(std::string Str,
SmallVectorImpl<char> &Res) {
for (auto C : Str) {
switch (C) {
default:
break;
case '\\':
Res.push_back('\\');
break;
}
Res.push_back(C);
}
}
void AssemblyWriter::printModule(const Module *M) {
Machine.initialize();
@ -2232,9 +2216,9 @@ void AssemblyWriter::printModule(const Module *M) {
Out << "; ModuleID = '" << M->getModuleIdentifier() << "'\n";
if (!M->getSourceFileName().empty()) {
SmallString<128> EscapedName;
EscapeBackslashes(M->getSourceFileName(), EscapedName);
Out << "source_filename = \"" << EscapedName << "\"\n";
Out << "source_filename = \"";
PrintEscapedString(M->getSourceFileName(), Out);
Out << "\"\n";
}
const std::string &DL = M->getDataLayoutStr();

View File

@ -4,5 +4,5 @@
; RUN: llvm-as < %s | llvm-dis | FileCheck %s
; CHECK: source_filename = "C:\\path\\with\\backslashes\\test.cc"
source_filename = "C:\\path\\with\\backslashes\\test.cc"
; CHECK: source_filename = "C:\5Cpath\5Cwith\5Cbackslashes\5Ctest.cc"
source_filename = "C:\5Cpath\5Cwith\5Cbackslashes\5Ctest.cc"