]> granicus.if.org Git - llvm/commitdiff
llvm-objdump: Skip empty sections when dumping contents
authorDavid Majnemer <david.majnemer@gmail.com>
Tue, 11 Nov 2014 09:58:25 +0000 (09:58 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Tue, 11 Nov 2014 09:58:25 +0000 (09:58 +0000)
Empty sections are just noise when using objdump.
This is similar to what binutils does.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221680 91177308-0d34-0410-b5e6-96231b3b80d8

test/MC/Mips/cpload.s
test/MC/Mips/elf-objdump.s [deleted file]
test/tools/llvm-objdump/coff-large-bss.test
tools/llvm-objdump/llvm-objdump.cpp

index 99b020a3c8f2c701f1c6036c6bd1fdb150aa516c..46b3ee4c7955975fb3d359102e5e2d188aa5b46d 100644 (file)
 # OBJ-O32: R_MIPS_LO16 _gp_disp
 # OBJ-O32:    addu $gp, $gp, $25
 
-# OBJ-N32:     .text
+# OBJ-N32-NOT: .text
 # OBJ-N32-NOT: lui   $gp, 0
 # OBJ-N32-NOT: addiu $gp, $gp, 0
 # OBJ-N32-NOT: addu  $gp, $gp, $25
 
-# OBJ-N64:     .text
+# OBJ-N64-NOT: .text
 # OBJ-N64-NOT: lui   $gp, 0
 # OBJ-N64-NOT: addiu $gp, $gp, 0
 # OBJ-N64-NOT: addu  $gp, $gp, $25
diff --git a/test/MC/Mips/elf-objdump.s b/test/MC/Mips/elf-objdump.s
deleted file mode 100644 (file)
index 6a5c2a5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-// 32 bit big endian
-// RUN: llvm-mc -filetype=obj -triple mips-unknown-linux %s -o - | llvm-objdump -d -triple mips-unknown-linux  - | FileCheck %s
-// 32 bit little endian
-// RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux %s -o - | llvm-objdump -d -triple mips-unknown-linux  - | FileCheck %s
-// 64 bit big endian
-// RUN: llvm-mc -filetype=obj -arch=mips64 -triple mips64-unknown-linux %s -o - | llvm-objdump -d -triple mips-unknown-linux - | FileCheck %s
-// 64 bit little endian
-// RUN: llvm-mc -filetype=obj -arch=mips64el -triple mips64el-unknown-linux %s -o - | llvm-objdump -d -triple mips-unknown-linux - | FileCheck %s
-
-// We just want to see if llvm-objdump works at all.
-// CHECK: .text
index 2d7643eb61a482ea135a40469c6a2109fd42375c..dc0fc6758b60218d8fc56b826f3cf6440406393e 100644 (file)
@@ -1,6 +1,3 @@
 RUN: llvm-objdump -s %p/Inputs/large-bss.obj.coff-i386 | FileCheck %s
 
-; CHECK:      Contents of section .text:
-: CHECK-NEXT: Contents of section .data:
-: CHECK-NEXT: Contents of section .bss:
-: CHECK-NEXT: <skipping contents of bss section at [0000, 010f)>
+: CHECK: <skipping contents of bss section at [0000, 010f)>
index 2d1c86c618c92de055bac273f141b68dd4f4a24d..c61a5b2a67b1939a61b1101ac935639c498391ca 100644 (file)
@@ -313,6 +313,8 @@ static void DisassembleObject(const ObjectFile *Obj, bool InlineRelocs) {
 
     uint64_t SectionAddr = Section.getAddress();
     uint64_t SectSize = Section.getSize();
+    if (!SectSize)
+      continue;
 
     // Make a list of all the symbols in this section.
     std::vector<std::pair<uint64_t, StringRef>> Symbols;
@@ -514,11 +516,12 @@ static void PrintSectionContents(const ObjectFile *Obj) {
     if (error(Section.getName(Name)))
       continue;
     uint64_t BaseAddr = Section.getAddress();
-    bool BSS = Section.isBSS();
+    uint64_t Size = Section.getSize();
+    if (!Size)
+      continue;
 
     outs() << "Contents of section " << Name << ":\n";
-    if (BSS) {
-      uint64_t Size = Section.getSize();
+    if (Section.isBSS()) {
       outs() << format("<skipping contents of bss section at [%04" PRIx64
                        ", %04" PRIx64 ")>\n",
                        BaseAddr, BaseAddr + Size);