summaryrefslogtreecommitdiff
path: root/decls_cgen.c
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2020-03-27 23:07:05 -0400
committerLeo Tenenbaum <pommicket@gmail.com>2020-03-27 23:07:05 -0400
commitc0cae45d92992ac6c4a784f9d4e4537e42481127 (patch)
tree666ca365977a8bc88152d821538535da4bb3bb1d /decls_cgen.c
parent0848ff3bb41572d2e850360f220369ccd62c715b (diff)
made statement members pointers
Diffstat (limited to 'decls_cgen.c')
-rw-r--r--decls_cgen.c49
1 files changed, 26 insertions, 23 deletions
diff --git a/decls_cgen.c b/decls_cgen.c
index 46db767..1cb5393 100644
--- a/decls_cgen.c
+++ b/decls_cgen.c
@@ -131,22 +131,23 @@ static void cgen_sdecls_stmt(CGenerator *g, Statement *s) {
cgen_sdecls_decl(g, s->decl);
break;
case STMT_EXPR:
- cgen_sdecls_expr(g, &s->expr);
+ cgen_sdecls_expr(g, s->expr);
break;
- case STMT_RET:
- if (s->ret.flags & RET_HAS_EXPR)
- cgen_sdecls_expr(g, &s->ret.expr);
- break;
- case STMT_INCLUDE:
-
- if (s->inc.inc_file && (s->inc.inc_file->flags & INC_FILE_CGEND_SDECLS)) {
+ case STMT_RET: {
+ Return *r = s->ret;
+ 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 (s->inc.inc_file) s->inc.inc_file->flags |= INC_FILE_CGEND_SDECLS;
- arr_foreach(s->inc.stmts, Statement, sub)
+ if (i->inc_file) i->inc_file->flags |= INC_FILE_CGEND_SDECLS;
+ arr_foreach(i->stmts, Statement, sub)
cgen_sdecls_stmt(g, sub);
}
- break;
+ } break;
case STMT_BREAK:
if (!s->referring_to->c.break_lbl) {
s->referring_to->c.break_lbl = ++g->lbl_counter;
@@ -163,7 +164,7 @@ static void cgen_sdecls_stmt(CGenerator *g, Statement *s) {
cgen_sdecls_stmt(g, s->defer);
break;
case STMT_USE:
- cgen_sdecls_expr(g, &s->use);
+ cgen_sdecls_expr(g, s->use);
break;
}
}
@@ -372,21 +373,23 @@ static void cgen_decls_stmt(CGenerator *g, Statement *s) {
cgen_decls_decl(g, s->decl);
break;
case STMT_EXPR:
- cgen_decls_expr(g, &s->expr);
+ cgen_decls_expr(g, s->expr);
break;
- case STMT_RET:
- if (s->ret.flags & RET_HAS_EXPR)
- cgen_decls_expr(g, &s->ret.expr);
- break;
- case STMT_INCLUDE:
- if (s->inc.inc_file && (s->inc.inc_file->flags & INC_FILE_CGEND_DECLS)) {
+ case STMT_RET: {
+ Return *r = s->ret;
+ 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 (s->inc.inc_file) s->inc.inc_file->flags |= INC_FILE_CGEND_DECLS;
- arr_foreach(s->inc.stmts, Statement, sub)
+ if (i->inc_file) i->inc_file->flags |= INC_FILE_CGEND_DECLS;
+ arr_foreach(i->stmts, Statement, sub)
cgen_decls_stmt(g, sub);
}
- break;
+ } break;
case STMT_BREAK:
case STMT_CONT:
case STMT_MESSAGE:
@@ -395,7 +398,7 @@ static void cgen_decls_stmt(CGenerator *g, Statement *s) {
cgen_decls_stmt(g, s->defer);
break;
case STMT_USE:
- cgen_sdecls_expr(g, &s->use);
+ cgen_sdecls_expr(g, s->use);
break;
}
}