Browse Source

Fix constant out of bounds bug

gingerBill 5 years ago
parent
commit
7e271310ff
1 changed files with 4 additions and 5 deletions
  1. 4 5
      src/check_expr.cpp

+ 4 - 5
src/check_expr.cpp

@@ -3119,13 +3119,12 @@ bool check_index_value(CheckerContext *c, bool open_range, Ast *index_value, i64
 				}
 				}
 				if (value) *value = v;
 				if (value) *value = v;
 				bool out_of_bounds = false;
 				bool out_of_bounds = false;
-				if (open_range) {
-					out_of_bounds = v >= max_count;
-				} else {
-					out_of_bounds = v >= max_count+1;
-				}
 				if (v < 0) {
 				if (v < 0) {
 					out_of_bounds = true;
 					out_of_bounds = true;
+				} else if (open_range) {
+					out_of_bounds = v > max_count;
+				} else {
+					out_of_bounds = v >= max_count;
 				}
 				}
 
 
 				if (out_of_bounds) {
 				if (out_of_bounds) {