aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2020-03-04 17:19:18 -0800
committerFangrui Song <maskray@google.com>2020-03-05 09:59:53 -0800
commitf9a0056016fb89c84b5663642d0c836430a3ad87 (patch)
tree3240e37970afc81799e9d217de0dde199eeef6fc /llvm/tools/llvm-objdump/llvm-objdump.cpp
parent314b9278f0975b12e15d6e12f896eaf7c4519ef2 (diff)
downloadllvm-f9a0056016fb89c84b5663642d0c836430a3ad87.zip
llvm-f9a0056016fb89c84b5663642d0c836430a3ad87.tar.gz
llvm-f9a0056016fb89c84b5663642d0c836430a3ad87.tar.bz2
[llvm-objdump] --syms: make flags closer to GNU objdump
This fixes several issues. The behavior changes are: A SHN_COMMON symbol does not have the 'g' flag. An undefined symbol does not have 'g' or 'l' flag. A STB_GLOBAL SymbolRef::ST_Unknown symbol has the 'g' flag. A STB_LOCAL SymbolRef::ST_Unknown symbol has the 'l' flag. Reviewed By: rupprecht Differential Revision: https://reviews.llvm.org/D75659
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r--llvm/tools/llvm-objdump/llvm-objdump.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp
index c9dec65..4675bd5 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp
@@ -1898,7 +1898,7 @@ void printSymbolTable(const ObjectFile *O, StringRef ArchiveName,
bool Hidden = Flags & SymbolRef::SF_Hidden;
char GlobLoc = ' ';
- if (Type != SymbolRef::ST_Unknown)
+ if ((Section != O->section_end() || Absolute) && !Weak)
GlobLoc = Global ? 'g' : 'l';
char Debug = (Type == SymbolRef::ST_Debug || Type == SymbolRef::ST_File)
? 'd' : ' ';