summaryrefslogtreecommitdiff
path: root/decls_cgen.c
diff options
context:
space:
mode:
Diffstat (limited to 'decls_cgen.c')
-rw-r--r--decls_cgen.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/decls_cgen.c b/decls_cgen.c
index e19da8a..d18f533 100644
--- a/decls_cgen.c
+++ b/decls_cgen.c
@@ -117,11 +117,14 @@ static bool cgen_decls_expr(CGenerator *g, Expression *e) {
}
static bool cgen_decls_block(CGenerator *g, Block *b) {
+ Block *prev_block = g->block;
+ g->block = b;
arr_foreach(b->stmts, Statement, s)
if (!cgen_decls_stmt(g, s))
return false;
if (b->ret_expr && !cgen_decls_expr(g, b->ret_expr))
return false;
+ g->block = prev_block;
return true;
}
@@ -181,7 +184,6 @@ static bool cgen_decls_decl(CGenerator *g, Declaration *d) {
if (!cgen_decls_type(g, &d->type))
return false;
if (cgen_fn_is_direct(g, d)) {
- d->expr.fn->c.name = d->idents[0];
if (!cgen_fn_decl(g, d->expr.fn, &d->expr.type))
return false;
cgen_recurse_subexprs(g, (&d->expr), cgen_decls_expr, cgen_decls_block, cgen_decls_decl);