From b33ee6afa74ab1e83554d1b535d81c7df0b3fca5 Mon Sep 17 00:00:00 2001 From: lemon Date: Wed, 10 Aug 2022 04:12:33 +0200 Subject: many bugfix --- bootstrap/cgen.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'bootstrap/cgen.c') 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) { -- cgit v1.2.3