diff options
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/ELFObjectFile.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/llvm/lib/Object/ELFObjectFile.cpp b/llvm/lib/Object/ELFObjectFile.cpp index c0ac7a357f8..cc1eeefec26 100644 --- a/llvm/lib/Object/ELFObjectFile.cpp +++ b/llvm/lib/Object/ELFObjectFile.cpp @@ -377,13 +377,12 @@ ELFObjectFileBase::getPltAddresses() const { } if (!Plt || !RelaPlt || !GotPlt) return {}; - Expected<StringRef> PltContents = Plt->getContents(); - if (!PltContents) { - consumeError(PltContents.takeError()); + StringRef PltContents; + if (Plt->getContents(PltContents)) return {}; - } - auto PltEntries = MIA->findPltEntries(Plt->getAddress(), - arrayRefFromStringRef(*PltContents), + ArrayRef<uint8_t> PltBytes((const uint8_t *)PltContents.data(), + Plt->getSize()); + auto PltEntries = MIA->findPltEntries(Plt->getAddress(), PltBytes, GotPlt->getAddress(), Triple); // Build a map from GOT entry virtual address to PLT entry virtual address. DenseMap<uint64_t, uint64_t> GotToPlt; |