Author: Joseph Huber Date: 2022-05-10T13:33:20-04:00 New Revision: 045665423e6e893ee168368dab10469c8d3168c5
URL: https://github.com/llvm/llvm-project/commit/045665423e6e893ee168368dab10469c8d3168c5 DIFF: https://github.com/llvm/llvm-project/commit/045665423e6e893ee168368dab10469c8d3168c5.diff LOG: [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. Added: Modified: clang/lib/Driver/ToolChains/Clang.cpp Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 4fc126353475..6934b8dd2d6c 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -4405,8 +4405,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, (JA.isHostOffloading(Action::OFK_OpenMP) && Args.hasFlag(options::OPT_fopenmp_new_driver, options::OPT_no_offload_new_driver, true)) || - Args.hasFlag(options::OPT_offload_new_driver, - options::OPT_no_offload_new_driver, false); + (JA.isHostOffloading(C.getActiveOffloadKinds()) && + Args.hasFlag(options::OPT_offload_new_driver, + options::OPT_no_offload_new_driver, false)); + bool IsUsingLTO = D.isUsingLTO(IsDeviceOffloadAction); auto LTOMode = D.getLTOMode(IsDeviceOffloadAction); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits