diff options
Diffstat (limited to 'copy.c')
-rw-r--r-- | copy.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/copy.c b/copy.c index 3aa3b98..053f319 100644 --- a/copy.c +++ b/copy.c @@ -68,16 +68,18 @@ phisimpl(Phi *p, Ref r, Ref *cpy, Use ***pstk, BSet *ts, BSet *as, Fn *fn) uint nstk, a; int t; Ref r1; + Phi *p0; bszero(ts); bszero(as); + p0 = &(Phi){.narg = 0}; stk = *pstk; nstk = 1; stk[0] = &(Use){.type = UPhi, .u.phi = p}; while (nstk) { u = stk[--nstk]; if (u->type == UIns && iscopy(u->u.ins, r, fn)) { - p = &(Phi){.narg = 0}; + p = p0; t = u->u.ins->to.val; } else if (u->type == UPhi) { |