Module SSA
Provides classes and predicates for SSA representation (Static Single Assignment form).
An SSA variable consists of the pair of a SsaSourceVariable
and a
ControlFlowNode
at which it is defined. Each SSA variable is defined
either by a phi node, an implicit initial value (for parameters and fields),
an explicit update, or an implicit update (for fields).
An implicit update occurs either at a Call
that might modify a field, at
another update that can update the qualifier of a field, or at a FieldRead
of the field in case the field is not amenable to a non-trivial SSA
representation.
Import path
import semmle.code.java.dataflow.SSA
Predicates
sameValue |
Gets an expression that has the same value as the given SSA variable. |
Classes
SsaExplicitUpdate |
An SSA variable that is defined by a |
SsaImplicitInit |
An SSA variable that is defined by its initial value in the callable. This includes initial values of parameters, fields, and closure variables. |
SsaImplicitUpdate |
An SSA variable that represents any sort of implicit update. This can be a |
SsaPhiNode |
An SSA phi node. |
SsaSourceField |
A fully qualified field in the context of a |
SsaSourceVariable |
A fully qualified variable in the context of a |
SsaUncertainImplicitUpdate |
An SSA variable that represents an uncertain implicit update of the value. This is a |
SsaUpdate |
An SSA variable that either explicitly or implicitly updates the variable. |
SsaVariable |
An SSA variable. |