diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp
index efb3ea0..1f21117 100644
--- a/llvm/lib/Object/COFFObjectFile.cpp
+++ b/llvm/lib/Object/COFFObjectFile.cpp
@@ -174,7 +174,7 @@
 
   // The section VirtualAddress does not include ImageBase, and we want to
   // return virtual addresses.
-  Result += getImageBase().get();
+  Result += getImageBase();
 
   return Result;
 }
@@ -271,7 +271,7 @@
 
   // The section VirtualAddress does not include ImageBase, and we want to
   // return virtual addresses.
-  Result += getImageBase().get();
+  Result += getImageBase();
   return Result;
 }
 
@@ -418,17 +418,18 @@
   return std::error_code();
 }
 
-ErrorOr<uint64_t> COFFObjectFile::getImageBase() const {
+uint64_t COFFObjectFile::getImageBase() const {
   if (PE32Header)
-    return uint64_t(PE32Header->ImageBase);
+    return PE32Header->ImageBase;
   else if (PE32PlusHeader)
-    return uint64_t(PE32PlusHeader->ImageBase);
-  return object_error::parse_failed;
+    return PE32PlusHeader->ImageBase;
+  // This actually comes up in practice.
+  return 0;
 }
 
 // Returns the file offset for the given VA.
 std::error_code COFFObjectFile::getVaPtr(uint64_t Addr, uintptr_t &Res) const {
-  uint64_t ImageBase = getImageBase().get();
+  uint64_t ImageBase = getImageBase();
   uint64_t Rva = Addr - ImageBase;
   assert(Rva <= UINT32_MAX);
   return getRvaPtr((uint32_t)Rva, Res);
