aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2013-01-10 22:40:50 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2013-01-10 22:40:50 +0000
commit27b2b1b4e543992f1988bbda74dabc6bf77c97d4 (patch)
tree2c5be8ae5925b6862d1a8d9fb4ec4101b6fa9e99
parent03de2a621c2f063294eb3f65ea1136f3acac4e98 (diff)
downloadexternal_llvm-27b2b1b4e543992f1988bbda74dabc6bf77c97d4.zip
external_llvm-27b2b1b4e543992f1988bbda74dabc6bf77c97d4.tar.gz
external_llvm-27b2b1b4e543992f1988bbda74dabc6bf77c97d4.tar.bz2
[llvm-objdump] Emit addresses with the correct number of leading 0's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172130 91177308-0d34-0410-b5e6-96231b3b80d8
-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 a417d07..bc2478c 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 9958dad..be105d3 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.