summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorColin LeMahieu <colinl@codeaurora.org>2015-01-23 20:06:24 +0000
committerColin LeMahieu <colinl@codeaurora.org>2015-01-23 20:06:24 +0000
commitbc2f47a76eb1471f0795b4e6d29e83836d2aff28 (patch)
treebe3f9eb0a88b87fa2e765fd6328621a5e6fb54a9 /llvm/tools/llvm-objdump/llvm-objdump.cpp
parentc3c8b27616a119369ffbe2033c5eb645fde5d358 (diff)
downloadbcm5719-llvm-bc2f47a76eb1471f0795b4e6d29e83836d2aff28.tar.gz
bcm5719-llvm-bc2f47a76eb1471f0795b4e6d29e83836d2aff28.zip
[Objdump] Output information about common symbols in a way closer to GNU objdump.
llvm-svn: 226932
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r--llvm/tools/llvm-objdump/llvm-objdump.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp
index cd94a3a49c6..1204a973d45 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp
@@ -642,7 +642,15 @@ void llvm::PrintSymbolTable(const ObjectFile *o) {
bool Global = Flags & SymbolRef::SF_Global;
bool Weak = Flags & SymbolRef::SF_Weak;
bool Absolute = Flags & SymbolRef::SF_Absolute;
-
+ bool Common = Flags & SymbolRef::SF_Common;
+
+ if (Common) {
+ uint32_t Alignment;
+ if (error(Symbol.getAlignment(Alignment)))
+ Alignment = 0;
+ Address = Size;
+ Size = Alignment;
+ }
if (Address == UnknownAddressOrSize)
Address = 0;
if (Size == UnknownAddressOrSize)
@@ -672,6 +680,8 @@ void llvm::PrintSymbolTable(const ObjectFile *o) {
<< ' ';
if (Absolute) {
outs() << "*ABS*";
+ } else if (Common) {
+ outs() << "*COM*";
} else if (Section == o->section_end()) {
outs() << "*UND*";
} else {
OpenPOWER on IntegriCloud