summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object/ELFObjectFile.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2019-05-16 12:08:34 +0000
committerHans Wennborg <hans@hanshq.net>2019-05-16 12:08:34 +0000
commit4da9ff9fcfe8987472dc894489597bd338aac85e (patch)
tree21bc0332451ec4093db5da5255ee98577ac5926e /llvm/lib/Object/ELFObjectFile.cpp
parenta8f88c388f75cb03bd21beb0b64f87d8a8727254 (diff)
downloadbcm5719-llvm-4da9ff9fcfe8987472dc894489597bd338aac85e.tar.gz
bcm5719-llvm-4da9ff9fcfe8987472dc894489597bd338aac85e.zip
Revert r360876 "[Object] Change object::SectionRef::getContents() to return Expected<StringRef>"
It broke the Clang build, see llvm-commits thread. > Expected<ArrayRef<uint8_t>> may be better but use Expected<StringRef> for now. > > Follow-up of D61781. llvm-svn: 360878
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
-rw-r--r--llvm/lib/Object/ELFObjectFile.cpp11
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;
OpenPOWER on IntegriCloud