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

Class BasicBlock

A basic block, that is, a maximal straight-line sequence of control flow nodes without branches or joins.

Import path

import semmle.code.csharp.controlflow.BasicBlocks

Direct supertypes

Known direct subtypes

Predicates

dominates

Holds if this basic block dominates basic block bb.

getAFalseSuccessor

Gets an immediate false successor, if any.

getANode

Gets a control flow node in this basic block.

getAPredecessor

Gets an immediate predecessor of this basic block, if any.

getAPredecessorByType

Gets an immediate predecessor of this basic block of a given type, if any.

getASuccessor

Gets an immediate successor of this basic block, if any.

getASuccessorByType

Gets an immediate successor of this basic block of a given type, if any.

getATrueSuccessor

Gets an immediate true successor, if any.

getCallable

Gets the callable that this basic block belongs to.

getFirstNode

Gets the first control flow node in this basic block.

getImmediateDominator

Gets the basic block that immediately dominates this basic block, if any.

getLastNode

Gets the last control flow node in this basic block.

getLocation

Gets the location of this basic block.

getNode

Gets the control flow node at a specific (zero-indexed) position in this basic block.

immediatelyDominates

Holds if this basic block immediately dominates basic block bb.

inDominanceFrontier

Holds if df is in the dominance frontier of this basic block. That is, this basic block dominates a predecessor of df, but does not dominate df itself.

inLoop

Holds if this basic block is in a loop in the control flow graph. This includes loops created by goto statements. This predicate may not hold even if this basic block is syntactically inside a while loop if the necessary back edges are unreachable.

length

Gets the length of this basic block.

postDominates

Holds if this basic block post-dominates basic block bb.

strictlyDominates

Holds if this basic block strictly dominates basic block bb.

strictlyPostDominates

Holds if this basic block strictly post-dominates basic block bb.

toString

Gets a textual representation of this basic block.