From dc022d53b99fae4d633144f87a344880e1ebb8fb Mon Sep 17 00:00:00 2001 From: Mihail Moskov <28909106+corleypc@users.noreply.github.com> Date: Thu, 6 Aug 2026 17:42:13 +0300 Subject: [PATCH] fixes call site attribute->arg association when args are ignored --- src/llvm_backend_proc.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index b7d2d0bc7..b528980ec 100644 --- a/src/llvm_backend_proc.cpp +++ b/src/llvm_backend_proc.cpp @@ -1024,10 +1024,16 @@ gb_internal lbValue lb_emit_call_internal(lbProcedure *p, lbValue value, lbValue } for_array(i, ft->args) { + // lbArg_Ignore args are not present in the call arguments, so they must not + // advance param_offset (mirrors lb_add_function_type_attributes) + if (ft->args[i].kind == lbArg_Ignore) { + continue; + } LLVMAttributeRef attribute = ft->args[i].attribute; if (attribute != nullptr) { - LLVMAddCallSiteAttribute(ret, param_offset + cast(LLVMAttributeIndex)i, attribute); + LLVMAddCallSiteAttribute(ret, param_offset, attribute); } + param_offset += 1; } switch (inlining) {