diff --git a/src/check_builtin.cpp b/src/check_builtin.cpp index 49095a7a8..77ba6b435 100644 --- a/src/check_builtin.cpp +++ b/src/check_builtin.cpp @@ -5170,7 +5170,7 @@ gb_internal bool check_builtin_procedure(CheckerContext *c, Operand *operand, As Operand op = {}; check_expr(c, &op, ce->args[1]); - if (op.mode != Addressing_Constant && !is_type_integer(op.type)) { + if (op.mode != Addressing_Constant || !is_type_integer(op.type)) { error(op.expr, "Expected a constant integer for the index of procedure parameter value"); return false; } @@ -5229,7 +5229,7 @@ gb_internal bool check_builtin_procedure(CheckerContext *c, Operand *operand, As Operand op = {}; check_expr(c, &op, ce->args[1]); - if (op.mode != Addressing_Constant && !is_type_integer(op.type)) { + if (op.mode != Addressing_Constant || !is_type_integer(op.type)) { error(op.expr, "Expected a constant integer for the index of procedure parameter value"); return false; } @@ -5307,7 +5307,7 @@ gb_internal bool check_builtin_procedure(CheckerContext *c, Operand *operand, As } else { Operand op = {}; check_expr(c, &op, ce->args[1]); - if (op.mode != Addressing_Constant && !is_type_integer(op.type)) { + if (op.mode != Addressing_Constant || !is_type_integer(op.type)) { error(op.expr, "Expected a constant integer for the index of record parameter value"); return false; }