CodeQL library for C#

Member predicate ControlFlowElement::controlsElement


Holds if control flow element controlled is controlled by this control flow element with conditional value s. That is, controlled can only be reached from the callable entry point by going via the s edge out of this element.

This predicate is different from

exists(ConditionBlock cb |
  cb.getLastNode() = this.getAControlFlowNode() |
  cb.controls(controlled.getAControlFlowNode().getBasicBlock(), s)

as control flow splitting is taken into account.

predicate controlsElement(ControlFlowElement controlled, ConditionalSuccessor s)