summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object/COFFObjectFile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Object/COFFObjectFile.cpp')
-rw-r--r--llvm/lib/Object/COFFObjectFile.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp
index efb3ea04083..1f2111759a0 100644
--- a/llvm/lib/Object/COFFObjectFile.cpp
+++ b/llvm/lib/Object/COFFObjectFile.cpp
@@ -174,7 +174,7 @@ ErrorOr<uint64_t> COFFObjectFile::getSymbolAddress(DataRefImpl Ref) const {
// 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 @@ uint64_t COFFObjectFile::getSectionAddress(DataRefImpl Ref) const {
// 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 @@ std::error_code COFFObjectFile::initSymbolTablePtr() {
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);
OpenPOWER on IntegriCloud