stack overflow checking
authorbrian <brian@brianweb.net>
Sun, 3 Jul 2005 20:35:55 +0000 (20:35 +0000)
committerbrian <brian@brianweb.net>
Sun, 3 Jul 2005 20:35:55 +0000 (20:35 +0000)
darcs-hash:20050703203555-24bed-6830336c6205eb9ab4208f81e216f34099de3424.gz

src/org/ibex/classgen/JSSA.java

index 92d31f0..c16f5e6 100644 (file)
@@ -73,8 +73,14 @@ public class JSSA extends MethodGen implements CGConst {
     /** JVM stack pointer */
     private int sp = 0;
     
-    private Expr push(Expr e) { return stack[sp++] = e; }
-    private Expr pop()        { return stack[--sp]; }
+    private Expr push(Expr e) {
+        if(sp == stack.length-1) throw new IllegalStateException("stack overflow");
+        return stack[sp++] = e;
+    }
+    private Expr pop() {
+        if(sp == 0) throw new IllegalStateException("stack underflow");
+        return stack[--sp];
+    }
 
 
     // SSA-node classes /////////////////////////////////////////////////////////////////////////////////////////