summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/IR/AsmWriter.cpp22
-rw-r--r--llvm/test/Assembler/source-filename-backslash.ll4
2 files changed, 5 insertions, 21 deletions
diff --git a/llvm/lib/IR/AsmWriter.cpp b/llvm/lib/IR/AsmWriter.cpp
index 4750cf6071d..c64291cbbfc 100644
--- a/llvm/lib/IR/AsmWriter.cpp
+++ b/llvm/lib/IR/AsmWriter.cpp
@@ -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();
diff --git a/llvm/test/Assembler/source-filename-backslash.ll b/llvm/test/Assembler/source-filename-backslash.ll
index 27b51986567..8669401cf93 100644
--- a/llvm/test/Assembler/source-filename-backslash.ll
+++ b/llvm/test/Assembler/source-filename-backslash.ll
@@ -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"
OpenPOWER on IntegriCloud