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
