https://github.com/srividya-sundaram created https://github.com/llvm/llvm-project/pull/181752
None >From bc2f36c6f8d415198f2c18e8758ccd6732ff692b Mon Sep 17 00:00:00 2001 From: srividya sundaram <[email protected]> Date: Mon, 16 Feb 2026 14:24:21 -0800 Subject: [PATCH] [Clang][Driver][NFC] Capture -foffload-lto Arg before dereferencing --- clang/lib/Driver/ToolChains/Clang.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index c16aa33f29ebb..efa8ab7d659f5 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -5233,23 +5233,19 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("-emit-llvm-uselists"); if (IsUsingLTO) { + Arg *OffloadLTO = Args.getLastArg(options::OPT_foffload_lto, + options::OPT_foffload_lto_EQ); if (IsDeviceOffloadAction && !JA.isDeviceOffloading(Action::OFK_OpenMP) && !Args.hasFlag(options::OPT_offload_new_driver, options::OPT_no_offload_new_driver, C.isOffloadingHostKind(Action::OFK_Cuda)) && - !Triple.isAMDGPU()) { + !Triple.isAMDGPU() && OffloadLTO) { D.Diag(diag::err_drv_unsupported_opt_for_target) - << Args.getLastArg(options::OPT_foffload_lto, - options::OPT_foffload_lto_EQ) - ->getAsString(Args) - << Triple.getTriple(); + << OffloadLTO->getAsString(Args) << Triple.getTriple(); } else if (Triple.isNVPTX() && !IsRDCMode && - JA.isDeviceOffloading(Action::OFK_Cuda)) { + JA.isDeviceOffloading(Action::OFK_Cuda) && OffloadLTO) { D.Diag(diag::err_drv_unsupported_opt_for_language_mode) - << Args.getLastArg(options::OPT_foffload_lto, - options::OPT_foffload_lto_EQ) - ->getAsString(Args) - << "-fno-gpu-rdc"; + << OffloadLTO->getAsString(Args) << "-fno-gpu-rdc"; } else { assert(LTOMode == LTOK_Full || LTOMode == LTOK_Thin); CmdArgs.push_back(Args.MakeArgString( _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
