diff --git a/clang/lib/Driver/ToolChains/SYCL.cpp b/clang/lib/Driver/ToolChains/SYCL.cpp index 9b97c004fd2ab..4ed2ce29791c2 100644 --- a/clang/lib/Driver/ToolChains/SYCL.cpp +++ b/clang/lib/Driver/ToolChains/SYCL.cpp @@ -207,7 +207,8 @@ void SYCL::Linker::ConstructJob(Compilation &C, const JobAction &JA, static const char *makeExeName(Compilation &C, StringRef Name) { llvm::SmallString<8> ExeName(Name); - if (C.getDriver().IsCLMode()) + const ToolChain *HostTC = C.getSingleOffloadToolChain(); + if (HostTC->getTriple().isWindowsMSVCEnvironment()) ExeName.append(".exe"); return C.getArgs().MakeArgString(ExeName); } diff --git a/clang/test/Driver/sycl-offload.c b/clang/test/Driver/sycl-offload.c index aeea104e524bd..a487d2701b519 100644 --- a/clang/test/Driver/sycl-offload.c +++ b/clang/test/Driver/sycl-offload.c @@ -689,10 +689,16 @@ // Check to be sure that for windows, the 'exe' tools are called // RUN: %clang_cl -fsycl -fsycl-targets=spir64_x86_64-unknown-unknown-sycldevice %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefixes=CHK-TOOLS-CPU-WIN +// RUN: %clang -target x86_64-pc-windows-msvc -fsycl -fsycl-targets=spir64_x86_64-unknown-unknown-sycldevice %s -### 2>&1 \ +// RUN: | FileCheck %s -check-prefixes=CHK-TOOLS-CPU-WIN // RUN: %clang_cl -fsycl -fsycl-targets=spir64_gen-unknown-unknown-sycldevice %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefixes=CHK-TOOLS-GEN-WIN +// RUN: %clang -target x86_64-pc-windows-msvc -fsycl -fsycl-targets=spir64_gen-unknown-unknown-sycldevice %s -### 2>&1 \ +// RUN: | FileCheck %s -check-prefixes=CHK-TOOLS-GEN-WIN // RUN: %clang_cl -fsycl -fsycl-targets=spir64_fpga-unknown-unknown-sycldevice %s -### 2>&1 \ // RUN: | FileCheck %s -check-prefixes=CHK-TOOLS-FPGA-WIN +// RUN: %clang -target x86_64-pc-windows-msvc -fsycl -fsycl-targets=spir64_fpga-unknown-unknown-sycldevice %s -### 2>&1 \ +// RUN: | FileCheck %s -check-prefixes=CHK-TOOLS-FPGA-WIN // CHK-TOOLS-GEN-WIN: ocloc.exe{{.*}} // CHK-TOOLS-CPU-WIN: opencl-aot.exe{{.*}} // CHK-TOOLS-FPGA-WIN: aoc.exe{{.*}}