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