diff options
Diffstat (limited to 'decls_cgen.c')
-rw-r--r-- | decls_cgen.c | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/decls_cgen.c b/decls_cgen.c index 80b6a38..5b2603b 100644 --- a/decls_cgen.c +++ b/decls_cgen.c @@ -138,16 +138,6 @@ static void cgen_sdecls_stmt(CGenerator *g, Statement *s) { if (r->flags & RET_HAS_EXPR) cgen_sdecls_expr(g, &r->expr); } break; - case STMT_INCLUDE: { - Include *i = s->inc; - if (i->inc_file && (i->inc_file->flags & INC_FILE_CGEND_SDECLS)) { - /* already generated */ - } else { - if (i->inc_file) i->inc_file->flags |= INC_FILE_CGEND_SDECLS; - arr_foreach(i->stmts, Statement, sub) - cgen_sdecls_stmt(g, sub); - } - } break; case STMT_BREAK: if (!s->referring_to->c.break_lbl) { s->referring_to->c.break_lbl = ++g->lbl_counter; @@ -166,6 +156,13 @@ static void cgen_sdecls_stmt(CGenerator *g, Statement *s) { case STMT_USE: cgen_sdecls_expr(g, &s->use->expr); break; + case STMT_INLINE_BLOCK: + arr_foreach(s->inline_block, Statement, sub) + cgen_sdecls_stmt(g, sub); + break; + case STMT_INCLUDE: + assert(0); + break; } } @@ -386,16 +383,6 @@ static void cgen_decls_stmt(CGenerator *g, Statement *s) { if (r->flags & RET_HAS_EXPR) cgen_decls_expr(g, &r->expr); } break; - case STMT_INCLUDE: { - Include *i = s->inc; - if (i->inc_file && (i->inc_file->flags & INC_FILE_CGEND_DECLS)) { - /* already generated */ - } else { - if (i->inc_file) i->inc_file->flags |= INC_FILE_CGEND_DECLS; - arr_foreach(i->stmts, Statement, sub) - cgen_decls_stmt(g, sub); - } - } break; case STMT_BREAK: case STMT_CONT: case STMT_MESSAGE: @@ -406,6 +393,13 @@ static void cgen_decls_stmt(CGenerator *g, Statement *s) { case STMT_USE: cgen_sdecls_expr(g, &s->use->expr); break; + case STMT_INLINE_BLOCK: + arr_foreach(s->inline_block, Statement, sub) + cgen_decls_stmt(g, sub); + break; + case STMT_INCLUDE: + assert(0); + break; } } |