[clang] 77c5eac - [LinkerWrapper] Fix errors from missing files during a dry run

Joseph Huber via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 12 08:49:42 PST 2023


Author: Joseph Huber
Date: 2023-01-12T10:49:27-06:00
New Revision: 77c5eac2aa9b9b1a12850295abf84d51f87745de

URL: https://github.com/llvm/llvm-project/commit/77c5eac2aa9b9b1a12850295abf84d51f87745de
DIFF: https://github.com/llvm/llvm-project/commit/77c5eac2aa9b9b1a12850295abf84d51f87745de.diff

LOG: [LinkerWrapper] Fix errors from missing files during a dry run

Summary:
We use a dry run for testing. If we do a dry run there is no file to
open and try to embed. Intead of erroring just create an empty one.

Added: 
    

Modified: 
    clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp

Removed: 
    


################################################################################
diff  --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
index a6e127c34034f..294a84b929b7d 100644
--- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
+++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
@@ -1187,8 +1187,12 @@ linkAndWrapDeviceFiles(SmallVectorImpl<OffloadFile> &LinkerInputFiles,
     for (OffloadKind Kind : ActiveOffloadKinds) {
       llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> FileOrErr =
           llvm::MemoryBuffer::getFileOrSTDIN(*OutputOrErr);
-      if (std::error_code EC = FileOrErr.getError())
-        return createFileError(*OutputOrErr, EC);
+      if (std::error_code EC = FileOrErr.getError()) {
+        if (DryRun)
+          FileOrErr = MemoryBuffer::getMemBuffer("");
+        else
+          return createFileError(*OutputOrErr, EC);
+      }
 
       OffloadingImage TheImage{};
       TheImage.TheImageKind =


        


More information about the cfe-commits mailing list