summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2017-01-24 08:32:59 +0000
committerpatrick <patrick@openbsd.org>2017-01-24 08:32:59 +0000
commit53d771aafdbe5b919f264f53cba3788e2c4cffd2 (patch)
tree7eca39498be0ff1e3a6daf583cd9ca5886bb2636 /gnu/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp
parentIn preparation of compiling our kernels with -ffreestanding, explicitly map (diff)
downloadwireguard-openbsd-53d771aafdbe5b919f264f53cba3788e2c4cffd2.tar.xz
wireguard-openbsd-53d771aafdbe5b919f264f53cba3788e2c4cffd2.zip
Import LLVM 4.0.0 rc1 including clang and lld to help the current
development effort on OpenBSD/arm64.
Diffstat (limited to 'gnu/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp')
-rw-r--r--gnu/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/gnu/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp b/gnu/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp
index eb7e7fb1837..799f947a8c8 100644
--- a/gnu/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp
+++ b/gnu/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()