Skip to content

Commit 7ef4b0a

Browse files
authored
[Driver][SYCL] Properly tag temporary list file for archive unbundling (#6470)
When unbundling archives, we were not properly tagging the type of file being generated as a temporary list file. This was causing the cleanup to miss the generated unbundled objects from the unbundle step.
1 parent 6c66f28 commit 7ef4b0a

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7788,8 +7788,8 @@ InputInfoList Driver::BuildJobsForActionNoCache(
77887788
std::string TmpFileName = C.getDriver().GetTemporaryPath(
77897789
llvm::sys::path::stem(BaseInput),
77907790
JA->getType() == types::TY_Archive ? "a" : "txt");
7791-
const char *TmpFile =
7792-
C.addTempFile(C.getArgs().MakeArgString(TmpFileName));
7791+
const char *TmpFile = C.addTempFile(
7792+
C.getArgs().MakeArgString(TmpFileName), JA->getType());
77937793
CurI = InputInfo(JA->getType(), TmpFile, TmpFile);
77947794
} else if (types::isFPGA(JA->getType())) {
77957795
std::string Ext(types::getTypeTempSuffix(JA->getType()));
@@ -7823,7 +7823,7 @@ InputInfoList Driver::BuildJobsForActionNoCache(
78237823
std::string TmpFileName = C.getDriver().GetTemporaryPath(
78247824
llvm::sys::path::stem(BaseInput), Ext);
78257825
const char *TmpFile =
7826-
C.addTempFile(C.getArgs().MakeArgString(TmpFileName));
7826+
C.addTempFile(C.getArgs().MakeArgString(TmpFileName), TI);
78277827
CurI = InputInfo(TI, TmpFile, TmpFile);
78287828
} else {
78297829
// Host part of the unbundled object is not used when -fsycl-link is
@@ -7880,7 +7880,7 @@ InputInfoList Driver::BuildJobsForActionNoCache(
78807880
std::string TmpFileName =
78817881
C.getDriver().GetTemporaryPath(llvm::sys::path::stem(BaseInput), Ext);
78827882
const char *TmpFile =
7883-
C.addTempFile(C.getArgs().MakeArgString(TmpFileName));
7883+
C.addTempFile(C.getArgs().MakeArgString(TmpFileName), JA->getType());
78847884
Result = InputInfo(JA->getType(), TmpFile, TmpFile);
78857885
UnbundlingResults.push_back(Result);
78867886
} else {

clang/test/Driver/sycl-offload-tempfile.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33

44
// RUN: mkdir -p %t_dir
55
// RUN: env TMPDIR=%t_dir TEMP=%t_dir TMP=%t_dir \
6-
// RUN: %clang -### -fsycl -fsycl-device-code-split %s 2>&1 | \
6+
// RUN: %clang -### -target x86_64-unknown-linux-gnu %S/Inputs/SYCL/liblin64.a \
7+
// RUN: -fsycl -fsycl-device-code-split %s 2>&1 | \
78
// RUN: FileCheck -DDIRNAME=%t_dir --check-prefix=CHECK-TEMPFILE-SPLIT %s
89
// RUN: not ls %t_dir/*
910
// CHECK-TEMPFILE-SPLIT: sycl-post-link{{.*}} "-o" "[[DIRNAME]]{{\/|\\}}[[TABLE:.+\.table]]"

0 commit comments

Comments
 (0)