[llvm] r199407 - Tweak the MCExternalSymbolizer to print references to C string literals

Kevin Enderby enderby at apple.com
Thu Jan 16 10:43:57 PST 2014


Author: enderby
Date: Thu Jan 16 12:43:56 2014
New Revision: 199407

URL: http://llvm.org/viewvc/llvm-project?rev=199407&view=rev
Log:
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

Modified:
    llvm/trunk/lib/MC/MCExternalSymbolizer.cpp

Modified: llvm/trunk/lib/MC/MCExternalSymbolizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCExternalSymbolizer.cpp?rev=199407&r1=199406&r2=199407&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCExternalSymbolizer.cpp (original)
+++ llvm/trunk/lib/MC/MCExternalSymbolizer.cpp Thu Jan 16 12:43:56 2014
@@ -149,8 +149,11 @@ void MCExternalSymbolizer::tryAddingPcLo
     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 << "\"";





More information about the llvm-commits mailing list