[clang] [Clang][Driver][NFC] Capture -foffload-lto Arg before dereferencing (PR #181752)
Srividya Sundaram via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 16 14:25:08 PST 2026
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 <srividya.sundaram at intel.com>
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(
More information about the cfe-commits
mailing list