Class Node
A node in a data flow graph.
A node can be either an expression, a parameter, or an uninitialized local
variable. Such nodes are created with DataFlow::exprNode
,
DataFlow::parameterNode
, and DataFlow::uninitializedNode
respectively.
Import path
import semmle.code.cpp.ir.dataflow.internal.DataFlowUtil
Direct supertypes
Known direct subtypes
- ExprNode
- FinalGlobalValue
- FinalParameterNode
- FlowSource
- IndirectArgumentOutNode
- IndirectExprNode
- IndirectInstruction
- IndirectOperand
- IndirectParameterNode
- IndirectReturnNode
- IndirectReturnOutNode
- InitialGlobalValue
- OperandNode
- ParameterNode
- PostUpdateNode
- RawIndirectInstruction
- RawIndirectOperand
- RemoteFlowSink
- SideEffectOperandNode
- SsaPhiNode
- UninitializedNode
- VariableNode
Predicates
asConvertedExpr |
Gets the expression corresponding to this node, if any. The returned expression may be a |
asDefiningArgument |
Gets the argument that defines this |
asDefiningArgument |
Gets the argument that defines this |
asExpr |
Gets the non-conversion expression corresponding to this node, if any. This predicate only has a result on nodes that represent the value of evaluating the expression. For data flowing out of an expression, like when an argument is passed by reference, use |
asIndirectArgument |
Gets the the argument going into a function for a node that represents the indirect value of the argument after |
asIndirectArgument |
Gets the the argument going into a function for a node that represents the indirect value of the argument after any non-zero number of loads. |
asIndirectConvertedExpr |
Gets the expression that’s indirectly tracked by this node behind |
asIndirectConvertedExpr |
Gets the expression that’s indirectly tracked by this node behind a number of indirections. |
asIndirectExpr |
Gets the non-conversion expression that’s indirectly tracked by this node under |
asIndirectExpr |
Gets the non-conversion expression that’s indirectly tracked by this node behind a number of indirections. |
asIndirectVariable |
Gets the |
asIndirectVariable |
Gets an indirection of this node’s underlying variable, if any. |
asInstruction |
Gets the instruction corresponding to this node, if any. |
asOperand |
Gets the operands corresponding to this node, if any. |
asParameter |
Gets the positional parameter corresponding to this node, if any. |
asParameter |
Gets the positional parameter corresponding to the node that represents the value of the parameter after |
asPartialDefinition |
Gets the expression that is partially defined by this node, if any. |
asUninitialized |
Gets the uninitialized local variable corresponding to this node, if any. |
asVariable |
Gets the variable corresponding to this node, if any. This can be used for modeling flow in and out of global variables. |
getBasicBlock |
Gets the basic block of this node, if any. |
getEnclosingCallable |
INTERNAL: Do not use. |
getFunction |
Gets the function to which this node belongs, if any. |
getLocation |
Gets the location of this element. |
getLocationImpl |
INTERNAL: Do not use. |
getType |
Gets the type of this node. |
getTypeBound |
Gets an upper bound on the type of this node. |
hasIndexInBlock |
Holds if this node is at index |
hasLocationInfo |
Holds if this element is at the specified location. The location spans column |
isGLValue |
Holds if this node represents a glvalue. |
toString |
Gets a textual representation of this element. |
toStringImpl |
INTERNAL: Do not use. |