diff options
Diffstat (limited to 'bootstrap/cgen.c')
| -rw-r--r-- | bootstrap/cgen.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/bootstrap/cgen.c b/bootstrap/cgen.c index 62a808d..4a80bfb 100644 --- a/bootstrap/cgen.c +++ b/bootstrap/cgen.c @@ -634,7 +634,11 @@ gendecl(struct decl *decl, bool toplevel) { case Dlet: assert(!toplevel); break; - case Ddef: case Dtype: case Dtepl: case Dmacro: case Dlabel: + case Dtype: + if (decl->ty->t == TYstruct || decl->ty->t == TYunion) + for (int i = 0; i < decl->ty->agg.decls.n; ++i) + liftdecl(decl->ty->agg.decls.d[i]); + case Ddef: case Dtepl: case Dmacro: case Dlabel: break; } } @@ -716,8 +720,6 @@ defctype(const struct type *ty, void *_) { pri("_Static_assert(__alignof__(%s) == %U, \"__alignof__(%t) == %U\");\n", *cname, (u64)ty->align, ty, (u64)ty->align); } - for (int i = 0; i < ty->agg.decls.n; ++i) - liftdecl(ty->agg.decls.d[i]); break; case TYeunion: if (ty->konst) { |