summary refs log tree commit diff
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-03-22 12:16:03 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2016-03-22 12:16:09 -0400
commita67ffa423cc859ac5093337e26af9c87af4631f6 (patch)
tree3f136f899f59ee2a465f9c8c57d3a143a6a7f226
parent337b10f6edc4d56cbf126255b3e63e6e0b7c8530 (diff)
downloadroux-a67ffa423cc859ac5093337e26af9c87af4631f6.tar.gz
check for overflow in ssa.c (abi fuzzer)
-rw-r--r--lisc/lisc.h2
-rw-r--r--lisc/ssa.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/lisc/lisc.h b/lisc/lisc.h
index 41be0ad..a57a984 100644
--- a/lisc/lisc.h
+++ b/lisc/lisc.h
@@ -77,7 +77,7 @@ enum Reg {
 
 enum {
 	NString = 32,
-	NPred   = 15,
+	NPred   = 63,
 	NIns    = 8192,
 	NAlign  = 3,
 	NSeg    = 32,
diff --git a/lisc/ssa.c b/lisc/ssa.c
index 269406b..7ccd944 100644
--- a/lisc/ssa.c
+++ b/lisc/ssa.c
@@ -464,6 +464,8 @@ renblk(Blk *b, Name **stk, Fn *fn)
 			t = p->to.val;
 			if ((t=fn->tmp[t].visit)) {
 				m = p->narg++;
+				if (m == NPred)
+					diag("ssa: too many phi arguments");
 				p->arg[m] = getstk(t, b, stk);
 				p->blk[m] = b;
 			}