summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp')
-rw-r--r--contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp b/contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp
index eb7e7fb..799f947 100644
--- a/contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp
+++ b/contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp
@@ -52,9 +52,12 @@ public:
Archive::Child c = member->second;
// Don't return a member already returned
- ErrorOr<StringRef> buf = c.getBuffer();
- if (!buf)
+ Expected<StringRef> buf = c.getBuffer();
+ if (!buf) {
+ // TODO: Actually report errors helpfully.
+ consumeError(buf.takeError());
return nullptr;
+ }
const char *memberStart = buf->data();
if (_membersInstantiated.count(memberStart))
return nullptr;
@@ -76,7 +79,7 @@ public:
parseAllMembers(std::vector<std::unique_ptr<File>> &result) override {
if (std::error_code ec = parse())
return ec;
- llvm::Error err;
+ llvm::Error err = llvm::Error::success();
for (auto mf = _archive->child_begin(err), me = _archive->child_end();
mf != me; ++mf) {
std::unique_ptr<File> file;
@@ -119,7 +122,7 @@ public:
protected:
std::error_code doParse() override {
// Make Archive object which will be owned by FileArchive object.
- llvm::Error Err;
+ llvm::Error Err = llvm::Error::success();
_archive.reset(new Archive(_mb->getMemBufferRef(), Err));
if (Err)
return errorToErrorCode(std::move(Err));
@@ -132,9 +135,9 @@ protected:
private:
std::error_code instantiateMember(Archive::Child member,
std::unique_ptr<File> &result) const {
- ErrorOr<llvm::MemoryBufferRef> mbOrErr = member.getMemoryBufferRef();
- if (std::error_code ec = mbOrErr.getError())
- return ec;
+ Expected<llvm::MemoryBufferRef> mbOrErr = member.getMemoryBufferRef();
+ if (!mbOrErr)
+ return errorToErrorCode(mbOrErr.takeError());
llvm::MemoryBufferRef mb = mbOrErr.get();
std::string memberPath = (_archive->getFileName() + "("
+ mb.getBufferIdentifier() + ")").str();
@@ -166,9 +169,9 @@ private:
<< _archive->getFileName() << "':\n");
for (const Archive::Symbol &sym : _archive->symbols()) {
StringRef name = sym.getName();
- ErrorOr<Archive::Child> memberOrErr = sym.getMember();
- if (std::error_code ec = memberOrErr.getError())
- return ec;
+ Expected<Archive::Child> memberOrErr = sym.getMember();
+ if (!memberOrErr)
+ return errorToErrorCode(memberOrErr.takeError());
Archive::Child member = memberOrErr.get();
DEBUG_WITH_TYPE("FileArchive",
llvm::dbgs()
OpenPOWER on IntegriCloud