summary refs log tree commit diff
path: root/ssa.c
diff options
context:
space:
mode:
Diffstat (limited to 'ssa.c')
-rw-r--r--ssa.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ssa.c b/ssa.c
index c35fd7e..e5f0f44 100644
--- a/ssa.c
+++ b/ssa.c
@@ -288,7 +288,8 @@ phiins(Fn *fn)
 	Ins *i;
 	Phi *p;
 	Ref r;
-	int t, n, k, nt;
+	int t, n, nt;
+	short k;
 
 	bsinit(u, fn->nblk);
 	bsinit(defs, fn->nblk);
@@ -324,9 +325,8 @@ phiins(Fn *fn)
 							bsset(u, b->id);
 							*--bp = b;
 						}
-						if (k == -1)
-							k = i->cls;
-						assert(k == i->cls);
+						if (clsmerge(&k, i->cls))
+							die("invalid input");
 					}
 				}
 			}