aboutsummaryrefslogtreecommitdiff
path: root/src/check_expr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/check_expr.cpp')
-rw-r--r--src/check_expr.cpp7
1 files 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;