aboutsummaryrefslogtreecommitdiff
path: root/src/checker/expr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/checker/expr.cpp')
-rw-r--r--src/checker/expr.cpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/checker/expr.cpp b/src/checker/expr.cpp
index a15322ceb..86c864e0e 100644
--- a/src/checker/expr.cpp
+++ b/src/checker/expr.cpp
@@ -1926,19 +1926,18 @@ b32 check_index_value(Checker *c, AstNode *index_value, i64 max_count, i64 *valu
}
if (operand.mode == Addressing_Constant) {
- if (max_count >= 0) { // NOTE(bill): Do array bound checking
- i64 i = exact_value_to_integer(operand.value).value_integer;
- if (i < 0) {
- gbString expr_str = expr_to_string(operand.expr);
- error(&c->error_collector, ast_node_token(operand.expr),
- "Index `%s` cannot be a negative value", expr_str);
- gb_string_free(expr_str);
- if (value) *value = 0;
- return false;
- }
+ i64 i = exact_value_to_integer(operand.value).value_integer;
+ if (i < 0) {
+ gbString expr_str = expr_to_string(operand.expr);
+ error(&c->error_collector, ast_node_token(operand.expr),
+ "Index `%s` cannot be a negative value", expr_str);
+ gb_string_free(expr_str);
+ if (value) *value = 0;
+ return false;
+ }
+ if (max_count >= 0) { // NOTE(bill): Do array bound checking
if (value) *value = i;
-
if (i >= max_count) {
gbString expr_str = expr_to_string(operand.expr);
error(&c->error_collector, ast_node_token(operand.expr),