reachable[i] = true;
BasicBlock block = program.basicBlockAt(i);
block.getLastInstruction().acceptVisitor(transitionExtractor);
for (BasicBlock successor : transitionExtractor.getTargets()) {
if (!reachable[successor.getIndex()]) {
stack.push(successor.getIndex());
}
}
for (TryCatchBlock tryCatch : block.getTryCatchBlocks()) {
stack.push(tryCatch.getHandler().getIndex());
}