Program: 83949
Project: 83949
Buggy source:
private void processInsn(int opcode){
switch (opcode) {
case DUP:
    this.push(this.stack[this.stackIndex]);
  return;
case SWAP:
{
  this.stackChanged=true;
  Object o=this.stack[this.stackIndex];
  this.stack[this.stackIndex]=this.stack[this.stackIndex - 1];
  this.stack[this.stackIndex - 1]=o;
  return;
}
case POP:
this.pop();
return;
case ACONST_NULL:
this.push(NULL);
return;
case ARRAYLENGTH:
this.set(INTEGER);
return;
case RETURN:
this.hasReturn=true;
return;
case BALOAD:
case SALOAD:
case CALOAD:
case IALOAD:
this.pop();
this.pop();
this.push(INTEGER);
break;
case LALOAD:
this.pop();
this.pop();
this.push(LONG);
break;
case FALOAD:
this.pop();
this.pop();
this.push(FLOAT);
break;
case DALOAD:
this.pop();
this.pop();
this.push(DOUBLE);
break;
case AALOAD:
this.pop();
this.pop();
this.push(TOP);
case IADD:
case ISUB:
case IMUL:
case IDIV:
case IREM:
case ISHL:
case ISHR:
case IUSHR:
this.pop();
this.pop();
this.push(INTEGER);
return;
case LADD:
case LSUB:
case LMUL:
case LDIV:
case LREM:
case LSHL:
case LSHR:
case LUSHR:
this.pop();
this.pop();
this.push(LONG);
return;
case FADD:
case FSUB:
case FMUL:
case FDIV:
case FREM:
this.pop();
this.pop();
this.push(FLOAT);
return;
case DADD:
case DSUB:
case DMUL:
case DDIV:
case DREM:
this.pop();
this.pop();
this.push(DOUBLE);
return;
case L2I:
case F2I:
case D2I:
this.set(INTEGER);
case I2L:
case F2L:
case D2L:
this.set(LONG);
return;
case I2F:
case L2F:
case D2F:
this.set(FLOAT);
return;
case LCMP:
case FCMPL:
case FCMPG:
case DCMPL:
case DCMPG:
this.pop();
this.pop();
this.push(INTEGER);
return;
}
}

Fixed version (ground truth):
private void processInsn(int opcode){
switch (opcode) {
case DUP:
    this.push(this.stack[this.stackIndex]);
  return;
case SWAP:
{
  Object o=this.stack[this.stackIndex];
  this.stack[this.stackIndex]=this.stack[this.stackIndex - 1];
  this.stack[this.stackIndex - 1]=o;
  return;
}
case POP:
this.pop();
return;
case ACONST_NULL:
this.push(NULL);
return;
case ARRAYLENGTH:
this.set(INTEGER);
return;
case RETURN:
this.hasReturn=true;
return;
case BALOAD:
case SALOAD:
case CALOAD:
case IALOAD:
this.pop();
this.pop();
this.push(INTEGER);
break;
case LALOAD:
this.pop();
this.pop();
this.push(LONG);
break;
case FALOAD:
this.pop();
this.pop();
this.push(FLOAT);
break;
case DALOAD:
this.pop();
this.pop();
this.push(DOUBLE);
break;
case AALOAD:
this.pop();
this.pop();
this.push(TOP);
case IADD:
case ISUB:
case IMUL:
case IDIV:
case IREM:
case ISHL:
case ISHR:
case IUSHR:
this.pop();
this.pop();
this.push(INTEGER);
return;
case LADD:
case LSUB:
case LMUL:
case LDIV:
case LREM:
case LSHL:
case LSHR:
case LUSHR:
this.pop();
this.pop();
this.push(LONG);
return;
case FADD:
case FSUB:
case FMUL:
case FDIV:
case FREM:
this.pop();
this.pop();
this.push(FLOAT);
return;
case DADD:
case DSUB:
case DMUL:
case DDIV:
case DREM:
this.pop();
this.pop();
this.push(DOUBLE);
return;
case L2I:
case F2I:
case D2I:
this.set(INTEGER);
case I2L:
case F2L:
case D2L:
this.set(LONG);
return;
case I2F:
case L2F:
case D2F:
this.set(FLOAT);
return;
case LCMP:
case FCMPL:
case FCMPG:
case DCMPL:
case DCMPG:
this.pop();
this.pop();
this.push(INTEGER);
return;
}
}