https://github.com/mgcarrasco created 
https://github.com/llvm/llvm-project/pull/196131

Originally reverted due to possible regression detected by buildbot. This PR 
relands https://github.com/llvm/llvm-project/pull/196113. Failures were due to 
flaky tests. 

>From a6a8ca5c8580941d0ce554ec15e66bf0a072bba9 Mon Sep 17 00:00:00 2001
From: Manuel Carrasco <[email protected]>
Date: Wed, 6 May 2026 12:33:34 -0500
Subject: [PATCH] Reland "[Driver][HIP/SPIRV] Fix crash when llvm-link is
 executed" (#196113)"

---
 clang/lib/Driver/ToolChains/HIPAMD.cpp     |  3 ++-
 clang/test/Driver/hip-spirv-linker-crash.c | 15 +++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)
 create mode 100644 clang/test/Driver/hip-spirv-linker-crash.c

diff --git a/clang/lib/Driver/ToolChains/HIPAMD.cpp 
b/clang/lib/Driver/ToolChains/HIPAMD.cpp
index b4ff90c1d61f0..e086e15a8c380 100644
--- a/clang/lib/Driver/ToolChains/HIPAMD.cpp
+++ b/clang/lib/Driver/ToolChains/HIPAMD.cpp
@@ -40,7 +40,8 @@ void AMDGCN::Linker::constructLLVMLinkCommand(
   ArgStringList LinkerInputs;
 
   for (auto Input : Inputs)
-    LinkerInputs.push_back(Input.getFilename());
+    if (Input.isFilename())
+      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.
diff --git a/clang/test/Driver/hip-spirv-linker-crash.c 
b/clang/test/Driver/hip-spirv-linker-crash.c
new file mode 100644
index 0000000000000..3f8835f2b5696
--- /dev/null
+++ b/clang/test/Driver/hip-spirv-linker-crash.c
@@ -0,0 +1,15 @@
+// Verify that SPIR-V compilation does not crash during the llvm-link step
+// due to extra args that are not meant to be forwarded there.
+//
+// RUN: %clang -### --target=spirv64-amd-amdhsa -use-spirv-backend \
+// RUN:   -Xlinker -opt-bisect-limit=-1 %s 2>&1 \
+// RUN:   | FileCheck %s
+//
+// RUN: %clang -### --target=spirv64-amd-amdhsa -use-spirv-backend \
+// RUN:   -Xlinker -mllvm -Xlinker -opt-bisect-limit=-1 %s 2>&1 \
+// RUN:   | FileCheck %s
+//
+// CHECK: "{{.*}}llvm-link"
+// CHECK-NOT: opt-bisect-limit
+// CHECK-NOT: -mllvm
+// CHECK-SAME: "-o" "{{.*}}.bc" "{{.*}}.bc"{{$}}

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to