private void verifyValidExitPredecessor(SsaBasicBlock b){
  ArrayList<SsaInsn> insns=b.getInsns();
  SsaInsn lastInsn=insns.get(insns.size() - 1);
  Rop opcode=lastInsn.getOpcode();
  if (opcode.getBranchingness() != Rop.BRANCH_RETURN && opcode != Rops.THROW) {
    throw new RuntimeException("Exit predecessor must end" + " in valid exit statement.");
  }
}

private void verifyValidExitPredecessor ( SsaBasicBlock b ) { ArrayList < SsaInsn > insns = b . getInsns ( ) ; SsaInsn lastInsn = insns . get ( insns . size ( ) - 1 ) ; Rop opcode = lastInsn . getOpcode ( ) ; if ( opcode . getBranchingness ( ) != Rop . BRANCH_RETURN && opcode != Rops . THROW ) { throw new RuntimeException ( "Exit predecessor must end" + " in valid exit statement." ) ; } }
validates that a basic block is a valid end predecessor . it must end in a return or a throw . throws a runtime exception on error .
