CodeQL library for C#
codeql/csharp-all 5.1.0 (changelog, source)
Search

Member predicate Make::BasicBlockImpl::edgeDominates

Holds if the edge with successor type s out of this basic block is a dominating edge for dominated.

That is, all paths reaching dominated from the entry point basic block must go through the s edge out of this basic block.

Edge dominance is similar to node dominance except it concerns edges instead of nodes: A basic block is dominated by a basic block bb if it can only be reached through bb and dominated by an edge e if it can only be reached through e.

Note that where all basic blocks (except the entry basic block) are strictly dominated by at least one basic block, a basic block may not be dominated by any edge. If an edge dominates a basic block bb, then both endpoints of the edge dominates bb. The converse is not the case, as there may be multiple paths between the endpoints with none of them dominating.

predicate edgeDominates(BasicBlock dominated, SuccessorType s)