summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCExternalSymbolizer.cpp
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2014-01-16 18:43:56 +0000
committerKevin Enderby <enderby@apple.com>2014-01-16 18:43:56 +0000
commit8f4921c3331c8e8e1ced7401a5920f2231f9668c (patch)
treedc02c2cd6a5ba3b2625496c52ec442958be828fa /llvm/lib/MC/MCExternalSymbolizer.cpp
parent2be02a784828c66d0025fe63a8e84751d6531a37 (diff)
downloadbcm5719-llvm-8f4921c3331c8e8e1ced7401a5920f2231f9668c.tar.gz
bcm5719-llvm-8f4921c3331c8e8e1ced7401a5920f2231f9668c.zip
Tweak the MCExternalSymbolizer to print references to C string literals
with raw_ostream's write_escaped() method. For example darwin's otool(1) program that uses the llvm disassembler now produces disassembly like this: leaq 0x7b(%rip), %rdi ## literal pool for: "%f\ntoto\n" and not print the new lines which messes up the output. rdar://15145300 llvm-svn: 199407
Diffstat (limited to 'llvm/lib/MC/MCExternalSymbolizer.cpp')
-rw-r--r--llvm/lib/MC/MCExternalSymbolizer.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCExternalSymbolizer.cpp b/llvm/lib/MC/MCExternalSymbolizer.cpp
index def662777d6..b82229457db 100644
--- a/llvm/lib/MC/MCExternalSymbolizer.cpp
+++ b/llvm/lib/MC/MCExternalSymbolizer.cpp
@@ -149,8 +149,11 @@ void MCExternalSymbolizer::tryAddingPcLoadReferenceComment(raw_ostream &cStream,
if(ReferenceType == LLVMDisassembler_ReferenceType_Out_LitPool_SymAddr)
cStream << "literal pool symbol address: " << ReferenceName;
else if(ReferenceType ==
- LLVMDisassembler_ReferenceType_Out_LitPool_CstrAddr)
- cStream << "literal pool for: \"" << ReferenceName << "\"";
+ LLVMDisassembler_ReferenceType_Out_LitPool_CstrAddr) {
+ cStream << "literal pool for: \"";
+ cStream.write_escaped(ReferenceName);
+ cStream << "\"";
+ }
else if(ReferenceType ==
LLVMDisassembler_ReferenceType_Out_Objc_CFString_Ref)
cStream << "Objc cfstring ref: @\"" << ReferenceName << "\"";
OpenPOWER on IntegriCloud