Module BaseSSA

Provides classes and predicates for SSA representation (Static Single Assignment form) restricted to local variables.

An SSA variable consists of the pair of a BaseSsaSourceVariable and a ControlFlowNode at which it is defined. Each SSA variable is defined either by a phi node, an implicit initial value (for parameters), or an explicit update.

This is a restricted version of SSA.qll that only handles LocalScopeVariables in order to not depend on virtual dispatch.

Import path

semmle.code.java.dataflow.internal.BaseSSA

Imports

java

Provides all default Java QL imports.

Classes

BaseSsaImplicitInit

An SSA variable that is defined by its initial value in the callable. This includes initial values of parameters, fields, and closure variables.

BaseSsaPhiNode

An SSA phi node.

BaseSsaSourceVariable

A local variable in the context of a Callable in which it is accessed.

BaseSsaUpdate

An SSA variable that is defined by a VariableUpdate.

BaseSsaVariable

An SSA variable.