diff options
author | Markus Böck <markus.boeck02@gmail.com> | 2020-04-18 08:23:37 -0700 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2020-04-18 08:30:50 -0700 |
commit | cacf1b5093279ae2aaa695d3eb5f0c116d0746ea (patch) | |
tree | 22e83c1ad31a0b8aeaf1a3b30478d667c77233e0 /llvm/tools/llvm-objdump | |
parent | 5eb8d45ab5b85cb3a2edfe995cbf1d4b1beae462 (diff) | |
download | llvm-cacf1b5093279ae2aaa695d3eb5f0c116d0746ea.zip llvm-cacf1b5093279ae2aaa695d3eb5f0c116d0746ea.tar.gz llvm-cacf1b5093279ae2aaa695d3eb5f0c116d0746ea.tar.bz2 |
[llvm-objdump] Demangle C++ Symbols in branch and call targets
Currently C++ symbols are demangled in the symbol table as well as in
the disassembly and relocations. This patch adds demangling of C++
symbols in targets of calls and branches making it easier to decipher
control flow in disassembly. This also matches up with GNUobjdump's
behavior
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D77957
Diffstat (limited to 'llvm/tools/llvm-objdump')
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index c264ea6..0eeb337 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -1556,7 +1556,10 @@ static void disassembleObject(const Target *TheTarget, const ObjectFile *Obj, if (TargetSym != TargetSectionSymbols->begin()) { --TargetSym; uint64_t TargetAddress = TargetSym->Addr; - StringRef TargetName = TargetSym->Name; + std::string TargetName = TargetSym->Name.str(); + if (Demangle) + TargetName = demangle(TargetName); + outs() << " <" << TargetName; uint64_t Disp = Target - TargetAddress; if (Disp) |