commit 66c006eb6d70bec771ff14e924aabf221f3767a4
parent 68c6feefbde175fbc27d8f638d3fbd7e92432171
Author: Quentin Carbonneaux <quentin.carbonneaux@yale.edu>
Date: Wed, 15 Jul 2015 02:56:54 -0400
fix some parsing bug of phi nodes
Diffstat:
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lisc/parse.c b/lisc/parse.c
@@ -322,13 +322,13 @@ parseline(PState ps)
curb->nins = curi - ins;
curb->ins = alloc(curb->nins * sizeof(Ins));
memcpy(curb->ins, ins, curb->nins * sizeof(Ins));
- plink = &curb->phi;
if (curb->jmp.type == JXXX) {
curb->jmp.type = JJmp;
curb->s1 = b;
}
}
curb = b;
+ plink = &curb->phi;
if (curb->jmp.type != JXXX)
err("multiple definitions of block");
expect(TNL);
@@ -424,6 +424,7 @@ parseline(PState ps)
memcpy(phi->arg, arg, i * sizeof arg[0]);
memcpy(phi->blk, blk, i * sizeof blk[0]);
phi->narg = i;
+ *plink = phi;
plink = &phi->link;
return PPhi;
}