From 73648bb2d85962461119df7c215a879f90a71c63 Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Wed, 3 Nov 2021 11:36:24 +0100 Subject: [PATCH] Fix #1268. Error message for enumerated arrays going out of bounds was not yet updated for the Enum change. --- src/check_expr.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/check_expr.cpp b/src/check_expr.cpp index d8ca190b7..1e8c24fd6 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -3660,8 +3660,11 @@ bool check_index_value(CheckerContext *c, Type *main_type, bool open_range, Ast String lo_str = {}; String hi_str = {}; if (bt->Enum.fields.count > 0) { - lo_str = bt->Enum.fields[bt->Enum.min_value_index]->token.string; - hi_str = bt->Enum.fields[bt->Enum.max_value_index]->token.string; + isize lo_idx = gb_clamp(bt->Enum.min_value_index, 0, bt->Enum.fields.count - 1); + isize hi_idx = gb_clamp(bt->Enum.max_value_index, 0, bt->Enum.fields.count - 1); + + lo_str = bt->Enum.fields[lo_idx]->token.string; + hi_str = bt->Enum.fields[hi_idx]->token.string; } bool out_of_bounds = false;