diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 2bb6680cf59612..487e2e1e0b3f00 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -3984,7 +3984,8 @@ void Driver::BuildActions(Compilation &C, DerivedArgList &Args, bool UseNewOffloadingDriver = C.isOffloadingHostKind(Action::OFK_OpenMP) && - !Args.hasArg(options::OPT_fno_openmp_new_driver); + Args.hasFlag(options::OPT_fopenmp_new_driver, + options::OPT_fno_openmp_new_driver, true); for (auto &I : Inputs) { types::ID InputType = I.first; diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 6e4eadd3ab0e77..01380f9e1985aa 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -4675,7 +4675,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, if (IsUsingLTO) { // Only AMDGPU supports device-side LTO. if (IsDeviceOffloadAction && - Args.hasArg(options::OPT_fno_openmp_new_driver) && + !Args.hasFlag(options::OPT_fopenmp_new_driver, + options::OPT_fno_openmp_new_driver, true) && !Triple.isAMDGPU()) { D.Diag(diag::err_drv_unsupported_opt_for_target) << Args.getLastArg(options::OPT_foffload_lto,