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, or
at another update that can update the qualifier of a field.
Import path
import semmle.code.java.dataflow.SSAImports
| MakeSsa<SsaImpl::SsaInput> | |
| SsaPublic | |
| java | Provides all default Java QL imports. |
Predicates
| sameValue | Gets an expression that has the same value as the given SSA variable. |
| ssaGetAFirstUse | Gets an access of the SSA source variable underlying this SSA variable that can be reached from this SSA variable without passing through any other uses, but potentially through phi nodes and uncertain implicit updates. |
Classes
| SsaCapturedDefinition | An SSA definition in a closure that captures a variable. |
| SsaExplicitUpdate | DEPRECATED: Use |
| SsaImplicitCallDefinition | An SSA definition representing the potential definition of a variable via a call. |
| SsaImplicitInit | DEPRECATED: Use |
| SsaImplicitQualifierDefinition | An SSA definition due to an update of the qualifier. |
| SsaImplicitUpdate | DEPRECATED: Use |
| SsaPhiNode | DEPRECATED: Use |
| SsaSourceField | A fully qualified field in the context of a |
| SsaSourceVariable | A fully qualified variable in the context of a |
| SsaUncertainImplicitUpdate | DEPRECATED: Use |
| SsaUpdate | DEPRECATED: use |
| SsaVariable | DEPRECATED: use |