diff options
author | Fangrui Song <maskray@google.com> | 2019-05-10 16:24:57 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2019-05-10 16:24:57 +0000 |
commit | 61504079515f76ca094bb836c4d53b41064220d6 (patch) | |
tree | aa7fc823bfdff3bc9e9343b2f995f5e898acac6f /llvm/tools/llvm-objdump/llvm-objdump.cpp | |
parent | 61c0daa0076e0c1d6cf17f84b577627cf7e7c43c (diff) | |
download | llvm-61504079515f76ca094bb836c4d53b41064220d6.zip llvm-61504079515f76ca094bb836c4d53b41064220d6.tar.gz llvm-61504079515f76ca094bb836c4d53b41064220d6.tar.bz2 |
[llvm-objdump] Print st_other
Add support for ".hidden" ".internal" ".protected" and " 0x%02x" for
other st_other bits used by some architectures.
Reviewed By: sfertile
Differential Revision: https://reviews.llvm.org/D61718
llvm-svn: 360439
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.cpp | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index ea3922b..3fddfd2 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -1686,20 +1686,38 @@ void printSymbolTable(const ObjectFile *O, StringRef ArchiveName, outs() << SectionName; } - outs() << '\t'; if (Common || isa<ELFObjectFileBase>(O)) { uint64_t Val = Common ? Symbol.getAlignment() : ELFSymbolRef(Symbol).getSize(); - outs() << format("\t %08" PRIx64 " ", Val); + outs() << format("\t%08" PRIx64, Val); } - if (Hidden) - outs() << ".hidden "; + if (isa<ELFObjectFileBase>(O)) { + uint8_t Other = ELFSymbolRef(Symbol).getOther(); + switch (Other) { + case ELF::STV_DEFAULT: + break; + case ELF::STV_INTERNAL: + outs() << " .internal"; + break; + case ELF::STV_HIDDEN: + outs() << " .hidden"; + break; + case ELF::STV_PROTECTED: + outs() << " .protected"; + break; + default: + outs() << format(" 0x%02x", Other); + break; + } + } else if (Hidden) { + outs() << " .hidden"; + } if (Demangle) - outs() << demangle(Name) << '\n'; + outs() << ' ' << demangle(Name) << '\n'; else - outs() << Name << '\n'; + outs() << ' ' << Name << '\n'; } } |