Skip to content

Commit ed5902f

Browse files
Fix failing test.
1 parent 8e8a0ef commit ed5902f

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,13 +1091,6 @@ void Driver::CreateOffloadingDeviceToolChains(Compilation &C,
10911091
HasValidSYCLRuntime &&
10921092
C.getInputArgs().hasArg(options::OPT_offload_arch_EQ);
10931093

1094-
if (IsSYCLOffloadArchEnabled &&
1095-
!C.getInputArgs().hasFlag(options::OPT_offload_new_driver,
1096-
options::OPT_no_offload_new_driver, false)) {
1097-
Diag(clang::diag::err_drv_sycl_offload_arch_new_driver);
1098-
return;
1099-
}
1100-
11011094
Arg *SYCLfpga = C.getInputArgs().getLastArg(options::OPT_fintelfpga);
11021095

11031096
// Make -fintelfpga flag imply -fsycl.
@@ -1368,6 +1361,20 @@ void Driver::CreateOffloadingDeviceToolChains(Compilation &C,
13681361
llvm::Triple SYCLTargetTriple(MakeSYCLDeviceTriple(Val.getKey()));
13691362
std::string NormalizedName = SYCLTargetTriple.normalize();
13701363

1364+
// SYCL offloading to Intel CPUs and Intel GPUs with ``--offload-arch``
1365+
// is currently enabled only with ``--offload-new-driver`` option.
1366+
// Emit a diagnostic if ``--offload-arch`` is invoked without
1367+
// ``--offload-new driver`` option.
1368+
if (SYCLTargetTriple != NVPTXTriple && SYCLTargetTriple != AMDTriple) {
1369+
if (IsSYCLOffloadArchEnabled &&
1370+
!C.getInputArgs().hasFlag(options::OPT_offload_new_driver,
1371+
options::OPT_no_offload_new_driver,
1372+
false)) {
1373+
Diag(clang::diag::err_drv_sycl_offload_arch_new_driver);
1374+
return;
1375+
}
1376+
}
1377+
13711378
// Make sure we don't have a duplicate triple.
13721379
auto Duplicate = FoundNormalizedTriples.find(NormalizedName);
13731380
if (Duplicate != FoundNormalizedTriples.end()) {

0 commit comments

Comments
 (0)