[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