diff options
| author | 2017-01-24 08:32:59 +0000 | |
|---|---|---|
| committer | 2017-01-24 08:32:59 +0000 | |
| commit | 53d771aafdbe5b919f264f53cba3788e2c4cffd2 (patch) | |
| tree | 7eca39498be0ff1e3a6daf583cd9ca5886bb2636 /gnu/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp | |
| parent | In preparation of compiling our kernels with -ffreestanding, explicitly map (diff) | |
| download | wireguard-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.cpp | 23 |
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() |
