diff --git a/tccgen.c b/tccgen.c index 4252c57..a5de7e9 100644 --- a/tccgen.c +++ b/tccgen.c @@ -6075,7 +6075,7 @@ static void decl_designator(CType *type, Section *sec, unsigned long c, c += index * type_size(type, &align); } else { f = *cur_field; - while (f && (f->v & SYM_FIRST_ANOM)) + while (f && (f->v & SYM_FIRST_ANOM) && (f->type.t & VT_BITFIELD)) *cur_field = f = f->next; if (!f) tcc_error("too many field init");