Skip to content

Commit 0456654

Browse files
committed
[OpenMP] Fix embedding offload code when there is no offloading toolchain
Summary: We use the `--offload-new-driver` option to enable offload code embedding. The check for when to do this was flawed and was enabling it too early in the case of OpenMP, causing a segfault when dereferencing the offloading toolchain.
1 parent ce583b1 commit 0456654

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4405,8 +4405,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
44054405
(JA.isHostOffloading(Action::OFK_OpenMP) &&
44064406
Args.hasFlag(options::OPT_fopenmp_new_driver,
44074407
options::OPT_no_offload_new_driver, true)) ||
4408-
Args.hasFlag(options::OPT_offload_new_driver,
4409-
options::OPT_no_offload_new_driver, false);
4408+
(JA.isHostOffloading(C.getActiveOffloadKinds()) &&
4409+
Args.hasFlag(options::OPT_offload_new_driver,
4410+
options::OPT_no_offload_new_driver, false));
4411+
44104412
bool IsUsingLTO = D.isUsingLTO(IsDeviceOffloadAction);
44114413
auto LTOMode = D.getLTOMode(IsDeviceOffloadAction);
44124414

0 commit comments

Comments
 (0)