mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Fix ..= logic in the backend
This commit is contained in:
+1
-1
@@ -3392,7 +3392,7 @@ ExactValue get_constant_field_single(CheckerContext *c, ExactValue value, i32 in
|
|||||||
GB_ASSERT(bt->kind == Type_EnumeratedArray);
|
GB_ASSERT(bt->kind == Type_EnumeratedArray);
|
||||||
corrected_index = index + exact_value_to_i64(bt->EnumeratedArray.min_value);
|
corrected_index = index + exact_value_to_i64(bt->EnumeratedArray.min_value);
|
||||||
}
|
}
|
||||||
if (op == Token_Ellipsis) {
|
if (op != Token_RangeHalf) {
|
||||||
if (lo <= corrected_index && corrected_index <= hi) {
|
if (lo <= corrected_index && corrected_index <= hi) {
|
||||||
TypeAndValue tav = fv->value->tav;
|
TypeAndValue tav = fv->value->tav;
|
||||||
if (success_) *success_ = true;
|
if (success_) *success_ = true;
|
||||||
|
|||||||
@@ -6231,7 +6231,7 @@ lbValue lb_const_value(lbModule *m, Type *type, ExactValue value, bool allow_loc
|
|||||||
TokenKind op = ie->op.kind;
|
TokenKind op = ie->op.kind;
|
||||||
i64 lo = exact_value_to_i64(lo_tav.value);
|
i64 lo = exact_value_to_i64(lo_tav.value);
|
||||||
i64 hi = exact_value_to_i64(hi_tav.value);
|
i64 hi = exact_value_to_i64(hi_tav.value);
|
||||||
if (op == Token_Ellipsis) {
|
if (op != Token_RangeHalf) {
|
||||||
hi += 1;
|
hi += 1;
|
||||||
}
|
}
|
||||||
if (lo == i) {
|
if (lo == i) {
|
||||||
@@ -6315,7 +6315,7 @@ lbValue lb_const_value(lbModule *m, Type *type, ExactValue value, bool allow_loc
|
|||||||
TokenKind op = ie->op.kind;
|
TokenKind op = ie->op.kind;
|
||||||
i64 lo = exact_value_to_i64(lo_tav.value);
|
i64 lo = exact_value_to_i64(lo_tav.value);
|
||||||
i64 hi = exact_value_to_i64(hi_tav.value);
|
i64 hi = exact_value_to_i64(hi_tav.value);
|
||||||
if (op == Token_Ellipsis) {
|
if (op != Token_RangeHalf) {
|
||||||
hi += 1;
|
hi += 1;
|
||||||
}
|
}
|
||||||
if (lo == i) {
|
if (lo == i) {
|
||||||
@@ -12704,7 +12704,7 @@ lbAddr lb_build_addr(lbProcedure *p, Ast *expr) {
|
|||||||
TokenKind op = ie->op.kind;
|
TokenKind op = ie->op.kind;
|
||||||
i64 lo = exact_value_to_i64(lo_tav.value);
|
i64 lo = exact_value_to_i64(lo_tav.value);
|
||||||
i64 hi = exact_value_to_i64(hi_tav.value);
|
i64 hi = exact_value_to_i64(hi_tav.value);
|
||||||
if (op == Token_Ellipsis) {
|
if (op != Token_RangeHalf) {
|
||||||
hi += 1;
|
hi += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -12803,7 +12803,7 @@ lbAddr lb_build_addr(lbProcedure *p, Ast *expr) {
|
|||||||
TokenKind op = ie->op.kind;
|
TokenKind op = ie->op.kind;
|
||||||
i64 lo = exact_value_to_i64(lo_tav.value);
|
i64 lo = exact_value_to_i64(lo_tav.value);
|
||||||
i64 hi = exact_value_to_i64(hi_tav.value);
|
i64 hi = exact_value_to_i64(hi_tav.value);
|
||||||
if (op == Token_Ellipsis) {
|
if (op != Token_RangeHalf) {
|
||||||
hi += 1;
|
hi += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -12912,7 +12912,7 @@ lbAddr lb_build_addr(lbProcedure *p, Ast *expr) {
|
|||||||
TokenKind op = ie->op.kind;
|
TokenKind op = ie->op.kind;
|
||||||
i64 lo = exact_value_to_i64(lo_tav.value);
|
i64 lo = exact_value_to_i64(lo_tav.value);
|
||||||
i64 hi = exact_value_to_i64(hi_tav.value);
|
i64 hi = exact_value_to_i64(hi_tav.value);
|
||||||
if (op == Token_Ellipsis) {
|
if (op != Token_RangeHalf) {
|
||||||
hi += 1;
|
hi += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -13016,7 +13016,7 @@ lbAddr lb_build_addr(lbProcedure *p, Ast *expr) {
|
|||||||
TokenKind op = ie->op.kind;
|
TokenKind op = ie->op.kind;
|
||||||
i64 lo = exact_value_to_i64(lo_tav.value);
|
i64 lo = exact_value_to_i64(lo_tav.value);
|
||||||
i64 hi = exact_value_to_i64(hi_tav.value);
|
i64 hi = exact_value_to_i64(hi_tav.value);
|
||||||
if (op == Token_Ellipsis) {
|
if (op != Token_RangeHalf) {
|
||||||
hi += 1;
|
hi += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user