llvm-objdump: Skip empty sections when dumping contents

Empty sections are just noise when using objdump.
This is similar to what binutils does.

llvm-svn: 221680
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp
index 2d1c86c..c61a5b2 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp
@@ -313,6 +313,8 @@
 
     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 @@
     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);