Predicate Make::dominatingEdge
Holds if bb1
has bb2
as a direct successor and the edge between bb1
and bb2
is a dominating edge.
An edge (bb1, bb2)
is dominating if there exists a basic block that can
only be reached from the entry block by going through (bb1, bb2)
. This
implies that (bb1, bb2)
dominates its endpoint bb2
. I.e., bb2
can
only be reached from the entry block by going via (bb1, bb2)
.
Import path
import codeql.controlflow.BasicBlock
predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2)