From 0fec7de747d93586eda66ce190f5f3d6715421a4 Mon Sep 17 00:00:00 2001 From: lemon Date: Thu, 4 Aug 2022 22:36:59 +0200 Subject: struct,unions, compound literals; mostly --- bootstrap/fold.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'bootstrap/fold.c') diff --git a/bootstrap/fold.c b/bootstrap/fold.c index f7962d4..efe1f83 100644 --- a/bootstrap/fold.c +++ b/bootstrap/fold.c @@ -238,6 +238,17 @@ fas(struct expr *ex) { free(child); } +static void +fzeroini(struct expr *ex) { + const struct type *ty = ex->ty; + if (ty->t == TYint || ty->t == TYfloat || ty->t == TYbool || ty->t == TYenum) { + ex->i = 0; + numcast(ex, ty); + if (ty->t == TYenum) + trysetenumvname(ex); + } +} + int fold(struct expr *ex) { switch (ex->t) { @@ -261,6 +272,8 @@ fold(struct expr *ex) { case Eas: fas(ex); break; + case Ezeroini: + fzeroini(ex); default: break; } -- cgit v1.2.3