[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