aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r--llvm/tools/llvm-objdump/llvm-objdump.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp
index 21359a7..b68714e 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp
@@ -2015,7 +2015,14 @@ void llvm::PrintSymbolTable(const ObjectFile *o, StringRef ArchiveName,
printCOFFSymbolTable(coff);
return;
}
- for (const SymbolRef &Symbol : o->symbols()) {
+
+ for (auto I = o->symbol_begin(), E = o->symbol_end(); I != E; ++I) {
+ // Skip printing the special zero symbol when dumping an ELF file.
+ // This makes the output consistent with the GNU objdump.
+ if (I == o->symbol_begin() && isa<ELFObjectFileBase>(o))
+ continue;
+
+ const SymbolRef &Symbol = *I;
Expected<uint64_t> AddressOrError = Symbol.getAddress();
if (!AddressOrError)
report_error(ArchiveName, o->getFileName(), AddressOrError.takeError(),