Provides dominance predicates for control-flow nodes.
These variations of the dominance relation are used for computing SSA
form. Formally, a node d dominates a node n if all paths from the
function entry point to n go through d; this applies within a function
and only for nodes reachable from the entry point. Unreachable nodes are not
part the dominance relation.
Import path
import semmle.code.cpp.controlflow.Dominance
Imports
| cpp | Provides classes and predicates for working with C/C++ code.
|
Predicates
| bbDominates | Holds if dominator is a dominator of node in the control-flow graph of basic blocks. This is reflexive.
|
| bbIDominates | Holds if dom is an immediate dominator of node in the control-flow graph of basic blocks.
|
| bbIPostDominates | Holds if pDom is an immediate post-dominator of node in the control-flow graph of basic blocks.
|
| bbPostDominates | Holds if postDominator is a post-dominator of node in the control-flow graph of basic blocks. This is reflexive.
|
| bbStrictlyDominates | Holds if dominator is a strict dominator of node in the control-flow graph of basic blocks. Being strict means that dominator != node.
|
| bbStrictlyPostDominates | Holds if postDominator is a strict post-dominator of node in the control-flow graph of basic blocks. Being strict means that postDominator != node.
|
| dominates | Holds if dominator is a dominator of node in the control-flow graph. This is reflexive.
|
| functionEntry | Holds if entry is the entry point of a function.
|
| functionExit | Holds if exit is the exit node of a function.
|
| iDominates | Holds if dominator is an immediate dominator of node in the control-flow graph.
|
| iPostDominates | Holds if postDominator is an immediate post-dominator of node in the control-flow graph.
|
| postDominates | Holds if postDominator is a post-dominator of node in the control-flow graph. This is reflexive.
|
| strictlyDominates | Holds if dominator is a strict dominator of node in the control-flow graph. Being strict means that dominator != node.
|
| strictlyPostDominates | Holds if postDominator is a strict post-dominator of node in the control-flow graph. Being strict means that postDominator != node.
|