Member predicate BasicBlocks::ConditionBlock::controlsSubCond

Holds if basic block controlled is controlled by this basic block with Boolean value testIsTrue. That is, controlled can only be reached from the callable entry point by going via the true edge (testIsTrue = true) or false edge (testIsTrue = false) out of this basic block.

Moreover, cond is a sub expression of the expression ending this basic block that must have evaluated to condIsTrue. For example, in

if (x & !y)
  f(x, y);

f(x, y) is controlled by x & !y evaluating to true, but also by sub conditions x and y evaluating to true and false, respectively.

predicate controlsSubCond(BasicBlock controlled, boolean testIsTrue, Expr cond, boolean condIsTrue)