aboutsummaryrefslogtreecommitdiff
path: root/src/check_expr.cpp
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2024-06-16 19:15:50 +0200
committerGitHub <noreply@github.com>2024-06-16 19:15:50 +0200
commitfe3baae7a6f779037743041e0d8f8a696006eb6f (patch)
treec52216ac6f58c96871c0cab996fc79fb83ae151e /src/check_expr.cpp
parent339bafe6ff649ad9c683a1d4afa212b7d2a649de (diff)
parent78a5a27212a6b892e32e58a84ea0c25cd83fac3c (diff)
Merge pull request #3772 from Feoramund/fix-constant-wrong-type-bitset
Fix `bit_set` construction crash on constant non-integer field
Diffstat (limited to 'src/check_expr.cpp')
-rw-r--r--src/check_expr.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index 359b30276..e548eac88 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -9819,7 +9819,9 @@ gb_internal ExprKind check_compound_literal(CheckerContext *c, Operand *o, Ast *
if (tav.mode != Addressing_Constant) {
continue;
}
- GB_ASSERT(tav.value.kind == ExactValue_Integer);
+ if (tav.value.kind != ExactValue_Integer) {
+ continue;
+ }
i64 v = big_int_to_i64(&tav.value.value_integer);
i64 lower = bt->BitSet.lower;
u64 index = cast(u64)(v-lower);