CodeQL library for C/C++
codeql/cpp-all 12.0.3 (changelog, source)
Search

Class PhiNode

An static single assignment (SSA) phi node.

Import path

import semmle.code.cpp.ir.dataflow.internal.SsaImpl

Direct supertypes

Indirect supertypes

Predicates

getAnInput

Gets a definition that is an input to this phi node.

getFunction

Gets the enclosing declaration of this definition.

getIndirection

Gets the indirection of this definition.

hasInputFromBlock

Holds if input is an input to this phi node along the edge originating in bb.

isCertain

Holds if this definition is guaranteed to totally overwrite the buffer being written to.

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
getAUse

Gets an Operand that represents a use of this definition.

from Definition
getAnIndirectUse

Gets an Operand that represents an indirect use of this 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
getIndirectionIndex

Gets the indirection index of this definition.

from Definition
getLocation

Gets the location of this SSA definition.

from Definition
getSourceVariable

Gets the source variable underlying this SSA definition.

from Definition
getUnderlyingType

Gets the underlying type of the variable being defined by this definition.

from Definition
getUnspecifiedType

Gets the unspecified type of the variable being defined by this definition.

from Definition
getValue

INTERNAL: Do not use.

from Definition
isIndirectParameterDefinition

Holds if this definition defines the indirectionIndex’th indirection of parameter p upon entry into the enclosing function.

from Definition
isIndirectThisDefinition

Holds if this definition defines the implicit *this parameter (i.e., the indirection of the this parameter) upon entry into the enclosing member function.

from Definition
isLiveAtEndOfBlock

Holds if this SSA definition is live at the end of basic block bb. That is, this definition reaches the end of basic block bb, at which point it is still live, without crossing another SSA definition of the same source variable.

from Definition
isParameterDefinition

Holds if this definition defines the parameter p upon entry into the enclosing function.

from Definition
isThisDefinition

Holds if this definition defines the implicit this parameter upon entry into the enclosing member function.

from Definition
toString

Gets a textual representation of this SSA definition.

from Definition