void adjust_exception_edges(BlockBegin* block, BlockBegin* sux) { int e = sux->number_of_exception_handlers(); for (int i = 0; i < e; i++) { BlockBegin* xhandler = sux->exception_handler_at(i); block->add_exception_handler(xhandler); assert(xhandler->is_predecessor(sux), "missing predecessor"); if (sux->number_of_preds() == 0) { // sux is disconnected from graph so disconnect from exception handlers xhandler->remove_predecessor(sux); } if (!xhandler->is_predecessor(block)) { xhandler->add_predecessor(block); } } }