CodeQL library for C#
Search

Class ControlFlow::Node

A control flow node.

Either a callable entry node (EntryNode), a callable exit node (ExitNode), or a control flow node for a control flow element, that is, an expression or a statement (ElementNode).

A control flow node is a node in the control flow graph (CFG). There is a many-to-one relationship between ElementNodes and ControlFlowElements. This allows control flow splitting, for example modeling the control flow through finally blocks.

Only nodes that can be reached from the callable entry point are included in the CFG.

Import path

import csharp

Direct supertypes

Known direct subtypes

    Predicates

    dominates

    Holds if this node dominates that node.

    getAFalseSuccessor

    Gets an immediate false successor, if any.

    getAPredecessor

    Gets an immediate predecessor, if any.

    getAPredecessorByType

    Gets an immediate predecessor node of a given flow type, if any.

    getASuccessor

    Gets an immediate successor, if any.

    getASuccessorByType

    Gets a successor node of a given type, if any.

    getATrueSuccessor

    Gets an immediate true successor, if any.

    getBasicBlock

    Gets the basic block that this control flow node belongs to.

    getElement

    Gets the control flow element that this node corresponds to, if any.

    getEnclosingCallable

    Gets the enclosing callable of this control flow node.

    getLocation

    Gets the location of this control flow node.

    isBranch

    Holds if this node has more than one successor.

    isCondition

    Holds if this control flow node has conditional successors.

    isJoin

    Holds if this node has more than one predecessor.

    postDominates

    Holds if this node post-dominates that node.

    strictlyDominates

    Holds if this node strictly dominates that node.

    strictlyPostDominates

    Holds if this node strictly post-dominates that node.

    toString

    Gets a textual representation of this control flow node.