Enum EdgeConditionKind#

Enum Documentation#

enum VirtualCFG::EdgeConditionKind#

The conditions attached to edges are marked to determine which conditions trigger control to flow along that edge (as opposed to other edges out of the same source node). For conditional branches (except eckCaseLabel and eckDefault), the conditions are implicit and depend on knowledge of the particular control structure. Fortran support for this is underdeveloped; single AST nodes representing variable-length loops was not part of the original design of the CFG code.

Values:

enumerator eckUnconditional#
enumerator eckTrue#

Normal, unconditional edge.

enumerator eckFalse#

True case of a two-way branch.

enumerator eckCaseLabel#

False case of a two-way branch.

enumerator eckDefault#

Case label (constant is given by caseLabel())

enumerator eckDoConditionPassed#

Default label.

enumerator eckDoConditionFailed#

Enter Fortran do loop body.

enumerator eckForallIndicesInRange#

Fortran do loop finished.

enumerator eckForallIndicesNotInRange#

Start testing forall mask.

enumerator eckComputedGotoCaseLabel#

End of forall loop.

enumerator eckArithmeticIfLess#

Case in computed goto — number needs to be computed separately.

enumerator eckArithmeticIfEqual#

Edge for the arithmetic if expression being less than zero.

enumerator eckArithmeticIfGreater#

Edge for the arithmetic if expression being equal to zero.

enumerator eckInterprocedural#

Edge for the arithmetic if expression being greater than zero.

enumerator eckError#

Edge spanning two procedures.

Allow an error value