diff options
author | Fangrui Song <maskray@google.com> | 2020-03-04 17:19:18 -0800 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2020-03-05 09:59:53 -0800 |
commit | f9a0056016fb89c84b5663642d0c836430a3ad87 (patch) | |
tree | 3240e37970afc81799e9d217de0dde199eeef6fc /llvm/tools/llvm-objdump/llvm-objdump.cpp | |
parent | 314b9278f0975b12e15d6e12f896eaf7c4519ef2 (diff) | |
download | llvm-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.cpp | 2 |
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' : ' '; |