From 9681d88cd3d801f56456bdbe91fe437ebcda96cb Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Sat, 3 May 2025 14:42:20 +0200 Subject: [PATCH] Fix #5107 Fixes #5107 by checking whether `result_count` is non-zero before indexing `type->Proc.results->Tuple.variables`. --- src/check_expr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 69f6bb855..6f585fe73 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -8143,7 +8143,7 @@ gb_internal ExprKind check_call_expr(CheckerContext *c, Operand *operand, Ast *c type = pt; } type = base_type(type); - if (type->kind == Type_Proc && type->Proc.optional_ok) { + if (type->kind == Type_Proc && type->Proc.optional_ok && type->Proc.result_count > 0) { operand->mode = Addressing_OptionalOk; operand->type = type->Proc.results->Tuple.variables[0]->type; if (operand->expr != nullptr && operand->expr->kind == Ast_CallExpr) {