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.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index 3fcfe29f5..01ff9da5b 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -9947,10 +9947,14 @@ gb_internal ExprKind check_compound_literal(CheckerContext *c, Operand *o, Ast *
}
Type *et = base_type(t->BitSet.elem);
isize field_count = 0;
- if (et->kind == Type_Enum) {
+ if (et != nullptr && et->kind == Type_Enum) {
field_count = et->Enum.fields.count;
}
+ if (is_type_array(bit_set_to_int(t))) {
+ is_constant = false;
+ }
+
if (cl->elems[0]->kind == Ast_FieldValue) {
error(cl->elems[0], "'field = value' in a bit_set a literal is not allowed");
is_constant = false;