[clang] [HIP] Check if Input is a file before constructing link job (PR #183492)

via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 26 03:06:46 PST 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-driver

@llvm/pr-subscribers-clang

Author: Dmitry Sidorov (MrSidims)

<details>
<summary>Changes</summary>

It feels awkward, but it seems like it's a drawback of the current design. As sanity check constructLldCommand also has this check.

---
Full diff: https://github.com/llvm/llvm-project/pull/183492.diff


2 Files Affected:

- (modified) clang/lib/Driver/ToolChains/HIPAMD.cpp (+8-2) 
- (modified) clang/lib/Driver/ToolChains/SPIRV.cpp (+4-1) 


``````````diff
diff --git a/clang/lib/Driver/ToolChains/HIPAMD.cpp b/clang/lib/Driver/ToolChains/HIPAMD.cpp
index 31f0c5581f568..979461d716d03 100644
--- a/clang/lib/Driver/ToolChains/HIPAMD.cpp
+++ b/clang/lib/Driver/ToolChains/HIPAMD.cpp
@@ -39,8 +39,11 @@ void AMDGCN::Linker::constructLLVMLinkCommand(
 
   ArgStringList LinkerInputs;
 
-  for (auto Input : Inputs)
+  for (auto Input : Inputs) {
+    if (!Input.isFilename())
+      continue;
     LinkerInputs.push_back(Input.getFilename());
+  }
 
   // Look for archive of bundled bitcode in arguments, and add temporary files
   // for the extracted archive of bitcode to inputs.
@@ -131,8 +134,11 @@ void AMDGCN::Linker::constructLldCommand(Compilation &C, const JobAction &JA,
   }
 
   LldArgs.append({"-o", Output.getFilename()});
-  for (auto Input : Inputs)
+  for (auto Input : Inputs) {
+    if (!Input.isFilename())
+      continue;
     LldArgs.push_back(Input.getFilename());
+  }
 
   // Look for archive of bundled bitcode in arguments, and add temporary files
   // for the extracted archive of bitcode to inputs.
diff --git a/clang/lib/Driver/ToolChains/SPIRV.cpp b/clang/lib/Driver/ToolChains/SPIRV.cpp
index a59bd05cac0cf..413ae34aa23c5 100644
--- a/clang/lib/Driver/ToolChains/SPIRV.cpp
+++ b/clang/lib/Driver/ToolChains/SPIRV.cpp
@@ -83,8 +83,11 @@ void SPIRV::constructLLVMLinkCommand(Compilation &C, const Tool &T,
 
   ArgStringList LlvmLinkArgs;
 
-  for (auto Input : Inputs)
+  for (auto Input : Inputs) {
+    if (!Input.isFilename())
+      continue;
     LlvmLinkArgs.push_back(Input.getFilename());
+  }
 
   tools::constructLLVMLinkCommand(C, T, JA, Inputs, LlvmLinkArgs, Output, Args);
 }

``````````

</details>


https://github.com/llvm/llvm-project/pull/183492


More information about the cfe-commits mailing list