summaryrefslogtreecommitdiff
path: root/decls_cgen.c
diff options
context:
space:
mode:
Diffstat (limited to 'decls_cgen.c')
-rw-r--r--decls_cgen.c11
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;
}