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

Module Ssa

Provides classes for working with static single assignment (SSA) form.

Import path

import csharp

Classes

Definition

A static single assignment (SSA) definition. Either an explicit variable definition (ExplicitDefinition), an implicit variable definition (ImplicitDefinition), or a phi node (PhiNode).

ExplicitDefinition

An SSA definition that corresponds to an explicit assignable definition.

ImplicitCallDefinition

An SSA definition representing the potential definition of a variable via a call.

ImplicitDefinition

An SSA definition that does not correspond to an explicit variable definition. Either an implicit initialization of a variable at the beginning of a callable (ImplicitEntryDefinition), an implicit definition via a call (ImplicitCallDefinition), or an implicit definition where the qualifier is updated (ImplicitQualifierDefinition).

ImplicitEntryDefinition

An SSA definition representing the implicit initialization of a variable at the beginning of a callable. Either a parameter, a local scope variable captured by the callable, or a field or property accessed inside the callable.

ImplicitParameterDefinition

An SSA definition representing the implicit initialization of a parameter at the beginning of a callable.

ImplicitQualifierDefinition

An SSA definition representing the potential definition of a variable via an SSA definition for the qualifier.

PhiNode

An SSA phi node, that is, a pseudo definition for a variable at a point in the flow graph where otherwise two or more definitions for the variable would be visible.

SourceVariable

A variable that can be SSA converted.

UncertainDefinition

An SSA definition that represents an uncertain update of the underlying assignable. Either an explicit update that is uncertain (ref assignments need not be certain), an implicit non-local update via a call, or an uncertain update of the qualifier.

Modules

SourceVariables

Provides different types of SourceVariables.