void BPatch_basicBlock::getImmediatePostDominates(BPatch_Vector<BPatch_basicBlock*>& imds){ flowGraph->fillPostDominatorInfo(); if(!immediatePostDominates) return; imds.insert(imds.end(), immediatePostDominates->begin(), immediatePostDominates->end()); return; }
void DICFG::analyze_unresolved_control_transfers(std::vector<BPatch_function *> *funcs) { std::vector<BPatch_function *>::iterator funcs_iter; /* Look at the unresolved control transfers */ for(funcs_iter = funcs->begin(); funcs_iter != funcs->end(); funcs_iter++) { BPatch_function *bp_fun = *funcs_iter; BPatch_Vector<BPatch_point *> unresolvedCFs; BPatch_Vector<BPatch_point *>::iterator unresolved_iter; BPatch_point *unresolved_point; address_t unresolved_instr_addr; bp_fun->getUnresolvedControlTransfers(unresolvedCFs); for (unresolved_iter = unresolvedCFs.begin(); unresolved_iter != unresolvedCFs.end(); unresolved_iter++) { unresolved_point = *unresolved_iter; unresolved_instr_addr = (address_t) (unresolved_point->getAddress()); debug_check_if_cs_remains_unresolved(unresolved_instr_addr); } } }