diff options
author | Fangrui Song <maskray@google.com> | 2019-05-16 13:24:04 +0000 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2019-05-16 13:24:04 +0000 |
commit | e183340c29db62e3c93c59c403984ad675d72c83 (patch) | |
tree | 21ec750631cf5febc8acfa3d2d6b35fc72538e96 /llvm/lib/Object/ELFObjectFile.cpp | |
parent | 1b93a24c297117c455a126f1c3e858fefe410c2f (diff) | |
download | bcm5719-llvm-e183340c29db62e3c93c59c403984ad675d72c83.tar.gz bcm5719-llvm-e183340c29db62e3c93c59c403984ad675d72c83.zip |
Recommit [Object] Change object::SectionRef::getContents() to return Expected<StringRef>
r360876 didn't fix 2 call sites in clang.
Expected<ArrayRef<uint8_t>> may be better but use Expected<StringRef> for now.
Follow-up of D61781.
llvm-svn: 360892
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
-rw-r--r-- | llvm/lib/Object/ELFObjectFile.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/Object/ELFObjectFile.cpp b/llvm/lib/Object/ELFObjectFile.cpp index cc1eeefec26..c0ac7a357f8 100644 --- a/llvm/lib/Object/ELFObjectFile.cpp +++ b/llvm/lib/Object/ELFObjectFile.cpp @@ -377,12 +377,13 @@ ELFObjectFileBase::getPltAddresses() const { } if (!Plt || !RelaPlt || !GotPlt) return {}; - StringRef PltContents; - if (Plt->getContents(PltContents)) + Expected<StringRef> PltContents = Plt->getContents(); + if (!PltContents) { + consumeError(PltContents.takeError()); return {}; - ArrayRef<uint8_t> PltBytes((const uint8_t *)PltContents.data(), - Plt->getSize()); - auto PltEntries = MIA->findPltEntries(Plt->getAddress(), PltBytes, + } + auto PltEntries = MIA->findPltEntries(Plt->getAddress(), + arrayRefFromStringRef(*PltContents), GotPlt->getAddress(), Triple); // Build a map from GOT entry virtual address to PLT entry virtual address. DenseMap<uint64_t, uint64_t> GotToPlt; |