aboutsummaryrefslogtreecommitdiff
path: root/src/irgen.cff
diff options
context:
space:
mode:
Diffstat (limited to 'src/irgen.cff')
-rw-r--r--src/irgen.cff14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/irgen.cff b/src/irgen.cff
index e157406..c0ea1e1 100644
--- a/src/irgen.cff
+++ b/src/irgen.cff
@@ -70,7 +70,7 @@ struct InstStream {
}
-fn genblock(S *InstStream, block [#]Stmt) void;
+fn genblock(S *InstStream, block Block) void;
fn genexpr(S *InstStream, ex *Expr) IRValue {
static tmpid int = 0;
@@ -343,7 +343,7 @@ fn genstmt(S *InstStream, stmt *Stmt) void {
let beqz = S->mkinst1({:beqz}, :Val(t));
S->push(beqz);
genblock(S, If.t);
- if If.f.#ptr {
+ if If.f.sts.#ptr {
let b = S->mkinst({:b}, 0);
S->push(b);
beqz.branch = S->pushnop();
@@ -407,11 +407,11 @@ fn genstmt(S *InstStream, stmt *Stmt) void {
assert(jumpto != #null, "no cont label %d", id);
S->push(S->mkinst({:b, .branch: *jumpto},0));
- case Return retex;
- if retex->empty() {
+ case Return *ret;
+ if ret.ex->empty() {
S->push(S->mkinst({:ret0}, 0));
} else {
- let inst = S->mkinst1({:ret}, :Val(genexpr(S, &retex.Some)));
+ let inst = S->mkinst1({:ret}, :Val(genexpr(S, &ret.ex.Some)));
S->push(inst);
}
@@ -420,8 +420,8 @@ fn genstmt(S *InstStream, stmt *Stmt) void {
}
}
-fn genblock(S *InstStream, block [#]Stmt) void {
- foreach_ptr(st, _, block) {
+fn genblock(S *InstStream, block Block) void {
+ foreach_ptr(st, _, block.sts) {
genstmt(S, st);
}
}