diff options
Diffstat (limited to 'decls_cgen.c')
-rw-r--r-- | decls_cgen.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/decls_cgen.c b/decls_cgen.c index 58383f7..dcf5629 100644 --- a/decls_cgen.c +++ b/decls_cgen.c @@ -115,8 +115,13 @@ static bool cgen_decls_stmt(CGenerator *g, Statement *s) { return false; break; case STMT_EXPR: + if (!cgen_decls_expr(g, &s->expr)) + return false; break; case STMT_RET: + if (s->ret.flags & RET_HAS_EXPR) + if (!cgen_decls_expr(g, &s->ret.expr)) + return false; break; } return true; @@ -125,6 +130,12 @@ static bool cgen_decls_stmt(CGenerator *g, Statement *s) { static bool cgen_decls_file(CGenerator *g, ParsedFile *f) { cgen_write(g, "/* declarations */\n"); arr_foreach(f->stmts, Statement, s) { + /* if only (you need to recurse!) */ + /* OPTIM?? */ + if (s->kind == STMT_DECL) { + } + } + arr_foreach(f->stmts, Statement, s) { if (!cgen_decls_stmt(g, s)) return false; } |