[llvm-objdump] Simplify Expected<T> handling with unwrapOrError

llvm-svn: 357855
diff --git a/llvm/tools/llvm-objdump/ELFDump.cpp b/llvm/tools/llvm-objdump/ELFDump.cpp
index c358b42..90a99c9 100644
--- a/llvm/tools/llvm-objdump/ELFDump.cpp
+++ b/llvm/tools/llvm-objdump/ELFDump.cpp
@@ -163,16 +163,10 @@
 
 template <class ELFT>
 void printDynamicSection(const ELFFile<ELFT> *Elf, StringRef Filename) {
-  auto ProgramHeaderOrError = Elf->program_headers();
-  if (!ProgramHeaderOrError)
-    report_error(Filename, ProgramHeaderOrError.takeError());
-
-  auto DynamicEntriesOrError = Elf->dynamicEntries();
-  if (!DynamicEntriesOrError)
-    report_error(Filename, DynamicEntriesOrError.takeError());
-
+  ArrayRef<typename ELFT::Dyn> DynamicEntries =
+      unwrapOrError(Elf->dynamicEntries(), Filename);
   outs() << "Dynamic Section:\n";
-  for (const auto &Dyn : *DynamicEntriesOrError) {
+  for (const typename ELFT::Dyn &Dyn : DynamicEntries) {
     if (Dyn.d_tag == ELF::DT_NULL)
       continue;
 
@@ -331,34 +325,23 @@
 
 template <class ELFT>
 void printSymbolVersionInfo(const ELFFile<ELFT> *Elf, StringRef FileName) {
-  typedef typename ELFT::Shdr Elf_Shdr;
-
-  auto SectionsOrError = Elf->sections();
-  if (!SectionsOrError)
-    report_error(FileName, SectionsOrError.takeError());
-
-  for (const Elf_Shdr &Shdr : *SectionsOrError) {
+  ArrayRef<typename ELFT::Shdr> Sections =
+      unwrapOrError(Elf->sections(), FileName);
+  for (const typename ELFT::Shdr &Shdr : Sections) {
     if (Shdr.sh_type != ELF::SHT_GNU_verneed &&
         Shdr.sh_type != ELF::SHT_GNU_verdef)
       continue;
 
-    auto ContentsOrError = Elf->getSectionContents(&Shdr);
-    if (!ContentsOrError)
-      report_error(FileName, ContentsOrError.takeError());
-
-    auto StrTabSecOrError = Elf->getSection(Shdr.sh_link);
-    if (!StrTabSecOrError)
-      report_error(FileName, StrTabSecOrError.takeError());
-
-    auto StrTabOrError = Elf->getStringTable(*StrTabSecOrError);
-    if (!StrTabOrError)
-      report_error(FileName, StrTabOrError.takeError());
+    ArrayRef<uint8_t> Contents =
+        unwrapOrError(Elf->getSectionContents(&Shdr), FileName);
+    const typename ELFT::Shdr *StrTabSec =
+        unwrapOrError(Elf->getSection(Shdr.sh_link), FileName);
+    StringRef StrTab = unwrapOrError(Elf->getStringTable(StrTabSec), FileName);
 
     if (Shdr.sh_type == ELF::SHT_GNU_verneed)
-      printSymbolVersionDependency<ELFT>(*ContentsOrError, *StrTabOrError);
+      printSymbolVersionDependency<ELFT>(Contents, StrTab);
     else
-      printSymbolVersionDefinition<ELFT>(Shdr, *ContentsOrError,
-                                         *StrTabOrError);
+      printSymbolVersionDefinition<ELFT>(Shdr, Contents, StrTab);
   }
 }