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

Class ControlFlowNode

A node in the control flow graph.

Import path

import semmle.code.cil.ControlFlow

Direct supertypes

Known direct subtypes

Predicates

getAPredecessor

Gets a predecessor of this node, if any.

getASuccessor

Gets a successor of this node, if any.

getASuccessorType

Gets a successor to this node, of type type, if any.

getAnOperand

Gets an operand of this instruction, if any.

getFalseSuccessor

Gets a false successor of this node, if any.

getImplementation

Gets the method containing this control flow node.

getLocation

Gets the location of this control flow node.

getOperand

Gets an instruction that supplies the ith operand to this instruction. Note that this can be multi-valued.

getOperandType

Gets the type of the ith operand. Unlike getOperand(i).getType(), this predicate takes into account when there are multiple possible operands with different types.

getParentExpr

Gets an expression that consumes the output of this instruction on the stack.

getPopCount

Gets the number of items this node pops from the stack.

getPushCount

Gets the number of items this node pushes onto the stack. This value is either 0 or 1, except for the instruction dup which pushes 2 values onto the stack.

getStackSizeAfter

Gets the stack size after this instruction.

getStackSizeBefore

Gets the stack size before this instruction.

getTrueSuccessor

Gets a true successor of this node, if any.

getType

Gets the type of the item pushed onto the stack, if any.

isBranch

Holds if this control flow node has more than one successor.

isJoin

Holds if this control flow node has more than one predecessor.

toString

Gets a textual representation of this control flow node.