CodeQL library for C/C++
Search

Class DataFlow::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.dataflow.DataFlow

Direct supertypes

Known direct subtypes

    Predicates

    asDefiningArgument

    Gets the argument that defines this DefinitionByReferenceNode, if any. This predicate should be used instead of asExpr when referring to the value of a reference argument after the call has returned. For example, in f(&x), this predicate will have &x as its result for the Node that represents the new value of x.

    asExpr

    Gets the 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 asDefiningArgument instead of asExpr.

    asParameter

    Gets the parameter corresponding to this node, if any.

    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.

    getEnclosingCallable

    INTERNAL: Do not use. Alternative name for getFunction.

    getFunction

    Gets the function to which this node belongs.

    getLocation

    Gets the location of this element.

    getType

    Gets the type of this node.

    getTypeBound

    Gets an upper bound on the type of this node.

    hasLocationInfo

    Holds if this element is at the specified location. The location spans column startcolumn of line startline to column endcolumn of line endline in file filepath. For more information, see Locations.

    toString

    Gets a textual representation of this element.