summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-06-23 15:45:38 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-06-23 15:45:38 +0000
commit5f7ade26d01f779fcec92d428ca738f8d12bc86a (patch)
tree01a6f9dc5efb6617adf074115f22ba04235d1999 /llvm/tools/llvm-objdump/llvm-objdump.cpp
parenta6d383677d710b7258029d6dd775d3dbc73cacc8 (diff)
downloadbcm5719-llvm-5f7ade26d01f779fcec92d428ca738f8d12bc86a.tar.gz
bcm5719-llvm-5f7ade26d01f779fcec92d428ca738f8d12bc86a.zip
objdump: Don't print a (always 0) size for MachO symbols.
Only common symbol on MachO and COFF have a size. For COFF we already had a custom format. For MachO, there is no native objdump and we were printing it as ELF. Now we only print the sizes for symbols that actually have them. llvm-svn: 240422
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r--llvm/tools/llvm-objdump/llvm-objdump.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp
index dd484f23ffe..77e95f688dc 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp
@@ -1085,7 +1085,6 @@ void llvm::PrintSymbolTable(const ObjectFile *o) {
continue;
if (error(Symbol.getType(Type)))
continue;
- uint64_t Size = Symbol.getSize();
if (error(Symbol.getSection(Section)))
continue;
StringRef Name;
@@ -1101,15 +1100,11 @@ void llvm::PrintSymbolTable(const ObjectFile *o) {
bool Common = Flags & SymbolRef::SF_Common;
bool Hidden = Flags & SymbolRef::SF_Hidden;
- if (Common) {
- uint32_t Alignment = Symbol.getAlignment();
- Address = Size;
- Size = Alignment;
- }
+ if (Common)
+ Address = Symbol.getSize();
+
if (Address == UnknownAddressOrSize)
Address = 0;
- if (Size == UnknownAddressOrSize)
- Size = 0;
char GlobLoc = ' ';
if (Type != SymbolRef::ST_Unknown)
GlobLoc = Global ? 'g' : 'l';
@@ -1151,8 +1146,13 @@ void llvm::PrintSymbolTable(const ObjectFile *o) {
SectionName = "";
outs() << SectionName;
}
- outs() << '\t'
- << format("%08" PRIx64 " ", Size);
+
+ outs() << '\t';
+ if (Common)
+ outs() << format("%08" PRIx64 " ", Symbol.getAlignment());
+ else if (isa<ELFObjectFileBase>(o))
+ outs() << format("%08" PRIx64 " ", Symbol.getSize());
+
if (Hidden) {
outs() << ".hidden ";
}
OpenPOWER on IntegriCloud