summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-08-19 18:44:51 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-08-19 18:44:51 +0000
commit2ed1c57b34b2f5aaf00bc7608f8a643ba4940425 (patch)
tree4539694b32f5952fb32b3d2b83868f9cf0752bfe
parent48af1c2a1a5148bc6a143bc0d8650ef744f2f7c3 (diff)
downloadbcm5719-llvm-2ed1c57b34b2f5aaf00bc7608f8a643ba4940425.tar.gz
bcm5719-llvm-2ed1c57b34b2f5aaf00bc7608f8a643ba4940425.zip
Update for llvm api change.
llvm-svn: 216003
-rw-r--r--lld/lib/ReaderWriter/FileArchive.cpp27
-rw-r--r--lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp7
2 files changed, 21 insertions, 13 deletions
diff --git a/lld/lib/ReaderWriter/FileArchive.cpp b/lld/lib/ReaderWriter/FileArchive.cpp
index 0f98ef0d0ac..ac4b0f4c356 100644
--- a/lld/lib/ReaderWriter/FileArchive.cpp
+++ b/lld/lib/ReaderWriter/FileArchive.cpp
@@ -57,11 +57,15 @@ public:
return nullptr;
if (dataSymbolOnly) {
- ErrorOr<std::unique_ptr<MemoryBuffer>> buffOrErr =
- ci->getMemoryBuffer(true);
+ ErrorOr<llvm::MemoryBufferRef> buffOrErr = ci->getMemoryBufferRef();
if (buffOrErr.getError())
return nullptr;
- if (isDataSymbol(std::move(buffOrErr.get()), name))
+
+ llvm::MemoryBufferRef mb = buffOrErr.get();
+ std::unique_ptr<MemoryBuffer> buff(MemoryBuffer::getMemBuffer(
+ mb.getBuffer(), mb.getBufferIdentifier(), false));
+
+ if (isDataSymbol(std::move(buff), name))
return nullptr;
}
@@ -136,14 +140,17 @@ protected:
std::error_code
instantiateMember(Archive::child_iterator member,
std::vector<std::unique_ptr<File>> &result) const {
- ErrorOr<std::unique_ptr<MemoryBuffer>> mbOrErr =
- member->getMemoryBuffer(true);
+ ErrorOr<llvm::MemoryBufferRef> mbOrErr = member->getMemoryBufferRef();
if (std::error_code ec = mbOrErr.getError())
return ec;
- std::unique_ptr<MemoryBuffer> mb = std::move(mbOrErr.get());
+ llvm::MemoryBufferRef mb = mbOrErr.get();
if (_logLoading)
- llvm::outs() << mb->getBufferIdentifier() << "\n";
- _registry.parseFile(mb, result);
+ llvm::outs() << mb.getBufferIdentifier() << "\n";
+
+ std::unique_ptr<MemoryBuffer> buf(MemoryBuffer::getMemBuffer(
+ mb.getBuffer(), mb.getBufferIdentifier(), false));
+
+ _registry.parseFile(buf, result);
const char *memberStart = member->getBuffer().data();
_membersInstantiated.insert(memberStart);
return std::error_code();
@@ -154,7 +161,7 @@ protected:
// symbol or does not exist, returns a failure.
std::error_code isDataSymbol(std::unique_ptr<MemoryBuffer> mb,
StringRef symbol) const {
- auto objOrErr(ObjectFile::createObjectFile(mb));
+ auto objOrErr(ObjectFile::createObjectFile(mb->getMemBufferRef()));
if (auto ec = objOrErr.getError())
return ec;
std::unique_ptr<ObjectFile> obj = std::move(objOrErr.get());
@@ -218,7 +225,7 @@ public:
MemoryBuffer &buff = *mb;
// Make Archive object which will be owned by FileArchive object.
std::error_code ec;
- Archive *archive = new Archive(std::move(mb), ec);
+ Archive *archive = new Archive(mb->getMemBufferRef(), ec);
if (ec)
return ec;
StringRef path = buff.getBufferIdentifier();
diff --git a/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp b/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
index 1836a099ec6..792a6af7657 100644
--- a/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
+++ b/lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp
@@ -144,6 +144,7 @@ private:
StringRef ArrayRefToString(ArrayRef<uint8_t> array);
std::unique_ptr<const llvm::object::COFFObjectFile> _obj;
+ std::unique_ptr<MemoryBuffer> _mb;
atom_collection_vector<DefinedAtom> _definedAtoms;
atom_collection_vector<UndefinedAtom> _undefinedAtoms;
atom_collection_vector<SharedLibraryAtom> _sharedLibraryAtoms;
@@ -287,9 +288,9 @@ DefinedAtom::Merge getMerge(const coff_aux_section_definition *auxsym) {
}
FileCOFF::FileCOFF(std::unique_ptr<MemoryBuffer> mb, std::error_code &ec)
- : File(mb->getBufferIdentifier(), kindObject), _compatibleWithSEH(false),
- _ordinal(0) {
- auto binaryOrErr = llvm::object::createBinary(std::move(mb));
+ : File(mb->getBufferIdentifier(), kindObject), _mb(std::move(mb)),
+ _compatibleWithSEH(false), _ordinal(0) {
+ auto binaryOrErr = llvm::object::createBinary(_mb->getMemBufferRef());
if ((ec = binaryOrErr.getError()))
return;
std::unique_ptr<llvm::object::Binary> bin = std::move(binaryOrErr.get());
OpenPOWER on IntegriCloud