summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/Object/objdump-sectionheaders.test16
-rw-r--r--tools/llvm-objdump/llvm-objdump.cpp7
2 files changed, 13 insertions, 10 deletions
diff --git a/test/Object/objdump-sectionheaders.test b/test/Object/objdump-sectionheaders.test
index a417d07a81..bc2478cea2 100644
--- a/test/Object/objdump-sectionheaders.test
+++ b/test/Object/objdump-sectionheaders.test
@@ -6,11 +6,11 @@
; CHECK: Sections:
; CHECK: Idx Name Size Address Type
-; CHECK: 0 000000000 00000000000000000
-; CHECK: 1 .text 000000026 00000000000000000 TEXT DATA
-; CHECK: 2 .rodata.str1.1 00000000d 00000000000000026 DATA
-; CHECK: 3 .note.GNU-stack 000000000 00000000000000033
-; CHECK: 4 .rela.text 000000048 00000000000000038
-; CHECK: 5 .symtab 0000000c0 00000000000000080
-; CHECK: 6 .strtab 000000033 00000000000000140
-; CHECK: 7 .shstrtab 00000004b 00000000000000173
+; CHECK: 0 00000000 0000000000000000
+; CHECK: 1 .text 00000026 0000000000000000 TEXT DATA
+; CHECK: 2 .rodata.str1.1 0000000d 0000000000000026 DATA
+; CHECK: 3 .note.GNU-stack 00000000 0000000000000033
+; CHECK: 4 .rela.text 00000048 0000000000000038
+; CHECK: 5 .symtab 000000c0 0000000000000080
+; CHECK: 6 .strtab 00000033 0000000000000140
+; CHECK: 7 .shstrtab 0000004b 0000000000000173
diff --git a/tools/llvm-objdump/llvm-objdump.cpp b/tools/llvm-objdump/llvm-objdump.cpp
index 9958dad3d3..be105d3ab2 100644
--- a/tools/llvm-objdump/llvm-objdump.cpp
+++ b/tools/llvm-objdump/llvm-objdump.cpp
@@ -442,7 +442,7 @@ static void PrintSectionHeaders(const ObjectFile *o) {
if (error(si->isBSS(BSS))) return;
std::string Type = (std::string(Text ? "TEXT " : "") +
(Data ? "DATA " : "") + (BSS ? "BSS" : ""));
- outs() << format("%3d %-13s %09" PRIx64 " %017" PRIx64 " %s\n",
+ outs() << format("%3d %-13s %08" PRIx64 " %016" PRIx64 " %s\n",
i, Name.str().c_str(), Size, Address, Type.c_str());
++i;
}
@@ -572,7 +572,10 @@ static void PrintSymbolTable(const ObjectFile *o) {
else if (Type == SymbolRef::ST_Function)
FileFunc = 'F';
- outs() << format("%08" PRIx64, Address) << " "
+ const char *Fmt = o->getBytesInAddress() > 4 ? "%016" PRIx64 :
+ "%08" PRIx64;
+
+ outs() << format(Fmt, Address) << " "
<< GlobLoc // Local -> 'l', Global -> 'g', Neither -> ' '
<< (Weak ? 'w' : ' ') // Weak?
<< ' ' // Constructor. Not supported yet.