aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/analyzer.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/analyzer.c b/src/analyzer.c
index 5f5771d..6dff9ff 100644
--- a/src/analyzer.c
+++ b/src/analyzer.c
@@ -626,13 +626,12 @@ constfoldexpr(struct azctx *ctx, type_t *T, idx_t i)
case ASTCDECL: {
idx_t expr = ctx->ast.kids[sym->i].rhs;
assert(expr != AST_EMPTY);
- MPQCPY(ctx->folds[i], ctx->folds[expr]);
if (!MPQ_IS_INIT(ctx->folds[i])) {
ctx->si = lvl;
(void)constfolddecl(ctx, sym->i);
- MPQCPY(ctx->folds[i], ctx->folds[expr]);
- assert(MPQ_IS_INIT(ctx->folds[i]));
}
+ MPQCPY(ctx->folds[i], ctx->folds[expr]);
+ assert(MPQ_IS_INIT(ctx->folds[i]));
ni = fwdnode(ctx->ast, i);
goto out;
}