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

Class ConditionBlock

A basic block that terminates in a condition, splitting the subsequent control flow.

Import path

import semmle.code.csharp.controlflow.BasicBlocks

Direct supertypes

Indirect supertypes

Predicates

controls

Holds if basic block controlled is controlled by this basic block with conditional value s. That is, controlled can only be reached from the callable entry point by going via the s edge out of this basic block.

immediatelyControls

Holds if basic block succ is immediately controlled by this basic block with conditional value s. That is, succ is an immediate successor of this block, and succ can only be reached from the callable entry point by going via the s edge out of this basic block.

Inherited predicates

dominates

Holds if this basic block dominates basic block bb.

from BasicBlock
getAFalseSuccessor

Gets an immediate false successor, if any.

from BasicBlock
getANode

Gets a control flow node in this basic block.

from BasicBlock
getAPredecessor

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

from BasicBlock
getAPredecessorByType

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

from BasicBlock
getASuccessor

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

from BasicBlock
getASuccessorByType

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

from BasicBlock
getATrueSuccessor

Gets an immediate true successor, if any.

from BasicBlock
getCallable

Gets the callable that this basic block belongs to.

from BasicBlock
getFirstNode

Gets the first control flow node in this basic block.

from BasicBlock
getImmediateDominator

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

from BasicBlock
getLastNode

Gets the last control flow node in this basic block.

from BasicBlock
getLocation

Gets the location of this basic block.

from BasicBlock
getNode

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

from BasicBlock
immediatelyDominates

Holds if this basic block immediately dominates basic block bb.

from BasicBlock
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.

from BasicBlock
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.

from BasicBlock
length

Gets the length of this basic block.

from BasicBlock
postDominates

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

from BasicBlock
strictlyDominates

Holds if this basic block strictly dominates basic block bb.

from BasicBlock
strictlyPostDominates

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

from BasicBlock
toString

Gets a textual representation of this basic block.

from BasicBlock

Charpred