for(int i=0; i<sp; i++) stacks[newPC][i] = new Phi();
}
if (stacks[newPC].length != sp) throw new IllegalArgumentException("stack depth disagreement");
- for(int i=0; i<stacks[newPC].length; i++) stacks[pc][i].merge(stack[i]);
+ for(int i=0; i<stacks[newPC].length; i++) stacks[newPC][i].merge(stack[i]);
}
private Object[] ops = new Object[65535];
private void push(Expr e) {
if (e.getType() == Type.VOID) throw new IllegalArgumentException("can't push a void");
- if (stack[sp+1] == null) stack[sp+1] = new Phi();
+ if (stack[sp] == null) stack[sp] = new Phi();
stack[sp++].merge(e);
}
private Expr pop() {
--- /dev/null
+package org.ibex.classgen;
+public class Poop {
+ public static int i;
+ public static void bar(int k) {
+ i = k+3;
+ }
+ public static void main() {
+ i = 5;
+ bar(i-3);
+ i += 3;
+ }
+}