CodeQL library for Ruby
codeql/ruby-all 0.8.15-dev (changelog, source)
Search

Class Ssa::Definition

A static single assignment (SSA) definition.

Import path

import codeql.ruby.dataflow.SSA

Direct supertypes

Indirect supertypes

Known direct subtypes

Predicates

getAFirstRead

Gets a first control-flow node that reads the value of this SSA definition. That is, a read that can be reached from this definition without passing through other reads.

getALastRead

Gets a last control-flow node that reads the value of this SSA definition. That is, a read that can reach the end of the enclosing CFG scope, or another SSA definition for the source variable, without passing through any other read.

getARead

Gets a control-flow node that reads the value of this SSA definition.

getAnUltimateDefinition

Gets a definition that ultimately defines this SSA definition and is not itself a phi node.

getControlFlowNode

Gets the control flow node of this SSA definition, if any. Phi nodes are examples of SSA definitions without a control flow node, as they are modeled at index -1 in the relevant basic block.

getLocation

Gets the location of this SSA definition.

getScope

Gets the scope of this SSA definition.

hasAdjacentReads

Holds if read1 and read2 are adjacent reads of this SSA definition. That is, read2 can be reached from read1 without passing through another read.

toString

Gets a textual representation of this SSA definition.

Inherited predicates

definesAt

Holds if this SSA definition defines v at index i in basic block bb. Phi nodes are considered to be at index -1, while normal variable writes are at the index of the control flow node they wrap.

from Definition
getBasicBlock

Gets the basic block to which this SSA definition belongs.

from Definition
getSourceVariable

Gets the source variable underlying this SSA definition.

from Definition