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.DataFlowUtilDirect supertypes
Known direct subtypes
- BodyLessParameterNodeImpl
- ExprNode
- FinalGlobalValue
- FinalParameterNode
- FlowSource
- FlowSummaryNode
- IndirectExprNode
- IndirectReturnNode
- IndirectReturnOutNode
- InitialGlobalValue
- OperandNode
- PostUpdateNode
- RawIndirectInstruction
- RawIndirectOperand
- RemoteFlowSink
- SideEffectOperandNode
- SsaIteratorNode
- SsaSynthNode
- UninitializedNode
- VariableNode
Predicates
| asCertainDefinition | Gets the definition associated with this node, if this node is a certain definition. |
| asConvertedExpr | Gets the expression corresponding to this node, if any. The returned expression may be a |
| 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 |
| asDefinition | Gets the definition associated with this node, if any. |
| asDefinition | Gets the definition associated with this node, if any. |
| 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 |
| asExpr | INTERNAL: Do not use. |
| 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. |
| asIndirectArgument | Gets the the argument going into a function for a node that represents the indirect value of the argument after |
| asIndirectConvertedExpr | Gets the expression that’s indirectly tracked by this node behind a number of indirections. |
| asIndirectConvertedExpr | Gets the expression that’s indirectly tracked by this node behind |
| asIndirectConvertedExpr | INTERNAL: Do not use. |
| asIndirectDefinition | Gets the indirect definition at some indirection corresponding to this node, if any. |
| asIndirectDefinition | Gets the indirect definition at a given indirection corresponding to this node, if any. |
| asIndirectExpr | Gets the non-conversion 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 | INTERNAL: Do not use. |
| asIndirectOperand | Gets the operand that is indirectly tracked by this node behind |
| asIndirectVariable | Gets an indirection of this node’s underlying variable, if any. |
| asIndirectVariable | Gets the |
| 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. |
| asUncertainDefinition | Gets the definition associated with this node, if this node is an uncertain definition. |
| 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 |
| isFinalValueOfParameter | Holds if this node represents the value of an output parameter |
| isFinalValueOfParameter | Holds if this node represents the |
| isGLValue | Holds if this node represents a glvalue. |
| toString | Gets a textual representation of this element. |
| toStringImpl | INTERNAL: Do not use. |