[lld] r274161 - Matching change for lld for the llvm change of Archive::create() from ErrorOr<...> to Expected<...> in r274160.
Kevin Enderby via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 29 13:36:11 PDT 2016
Author: enderby
Date: Wed Jun 29 15:36:11 2016
New Revision: 274161
URL: http://llvm.org/viewvc/llvm-project?rev=274161&view=rev
Log:
Matching change for lld for the llvm change of Archive::create() from ErrorOr<...> to Expected<...> in r274160.
Modified:
lld/trunk/COFF/DriverUtils.cpp
lld/trunk/COFF/InputFiles.cpp
lld/trunk/ELF/Error.h
lld/trunk/lib/ReaderWriter/FileArchive.cpp
Modified: lld/trunk/COFF/DriverUtils.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/DriverUtils.cpp?rev=274161&r1=274160&r2=274161&view=diff
==============================================================================
--- lld/trunk/COFF/DriverUtils.cpp (original)
+++ lld/trunk/COFF/DriverUtils.cpp Wed Jun 29 15:36:11 2016
@@ -706,9 +706,9 @@ static std::string replace(StringRef S,
// import files to that file.
void writeImportLibrary() {
std::unique_ptr<MemoryBuffer> Buf = createEmptyImportLibrary();
- std::error_code EC;
- object::Archive Archive(Buf->getMemBufferRef(), EC);
- error(EC, "Error reading an empty import file");
+ llvm::Error Err;
+ object::Archive Archive(Buf->getMemBufferRef(), Err);
+ error(errorToErrorCode(std::move(Err)), "Error reading an empty import file");
std::vector<NewArchiveIterator> Members = readMembers(Archive);
std::string DLLName = llvm::sys::path::filename(Config->OutputFile);
Modified: lld/trunk/COFF/InputFiles.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/InputFiles.cpp?rev=274161&r1=274160&r2=274161&view=diff
==============================================================================
--- lld/trunk/COFF/InputFiles.cpp (original)
+++ lld/trunk/COFF/InputFiles.cpp Wed Jun 29 15:36:11 2016
@@ -64,7 +64,8 @@ std::string InputFile::getShortName() {
void ArchiveFile::parse() {
// Parse a MemoryBufferRef as an archive file.
auto ArchiveOrErr = Archive::create(MB);
- error(ArchiveOrErr, "Failed to parse static library");
+ error(errorToErrorCode(ArchiveOrErr.takeError()),
+ "Failed to parse static library");
File = std::move(*ArchiveOrErr);
// Allocate a buffer for Lazy objects.
Modified: lld/trunk/ELF/Error.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Error.h?rev=274161&r1=274160&r2=274161&view=diff
==============================================================================
--- lld/trunk/ELF/Error.h (original)
+++ lld/trunk/ELF/Error.h Wed Jun 29 15:36:11 2016
@@ -52,6 +52,13 @@ template <class T> T check(ErrorOr<T> EO
fatal(EO.getError().message(), Prefix);
}
+template <class T> T check(Expected<T> EO, const Twine &Prefix) {
+ if (EO)
+ return std::move(*EO);
+ error(errorToErrorCode(EO.takeError()), Prefix);
+ return T();
+}
+
} // namespace elf
} // namespace lld
Modified: lld/trunk/lib/ReaderWriter/FileArchive.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/FileArchive.cpp?rev=274161&r1=274160&r2=274161&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/FileArchive.cpp (original)
+++ lld/trunk/lib/ReaderWriter/FileArchive.cpp Wed Jun 29 15:36:11 2016
@@ -114,10 +114,11 @@ public:
protected:
std::error_code doParse() override {
// Make Archive object which will be owned by FileArchive object.
+ llvm::Error Err;
+ _archive.reset(new Archive(_mb->getMemBufferRef(), Err));
+ if (Err)
+ return errorToErrorCode(std::move(Err));
std::error_code ec;
- _archive.reset(new Archive(_mb->getMemBufferRef(), ec));
- if (ec)
- return ec;
if ((ec = buildTableOfContents()))
return ec;
return std::error_code();
More information about the llvm-commits
mailing list