A phi node. For example, in
if b
x = 0
else
x = 1
end
puts x
a phi node for x is inserted just before the call puts x.
Import path
import codeql.ruby.dataflow.SSADirect supertypes
Indirect supertypes
Predicates
| getAnInput | Gets an input of this phi node. |
| getLocation | Gets the location of this SSA definition. |
| hasInputFromBlock | Holds if |
| toString | Gets a textual representation of this SSA definition. |
Inherited predicates
| definesAt | Holds if this SSA definition defines | from Definition |
| 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. | from Definition |
| 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. | from Definition |
| getARead | Gets a control-flow node that reads the value of this SSA definition. | from Definition |
| getAnUltimateDefinition | Gets a definition that ultimately defines this SSA definition and is not itself a phi node. | from Definition |
| getBasicBlock | Gets the basic block to which this SSA definition belongs. | from Definition |
| 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 | from Definition |
| getScope | Gets the scope of this SSA definition. | from Definition |
| getSourceVariable | Gets the source variable underlying this SSA definition. | from Definition |
| hasAdjacentReads | Holds if | from Definition |