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

Class DefinitionByReferenceNode

A node that represents the value of a variable after a function call that may have changed the variable because it’s passed by reference.

A typical example would be a call f(&x). Firstly, there will be flow into x from previous definitions of x. Secondly, there will be a DefinitionByReferenceNode to represent the value of x after the call has returned. This node will have its getArgument() equal to &x.

Import path

import semmle.code.cpp.dataflow.internal.DataFlowUtil

Direct supertypes

Indirect supertypes

Known direct subtypes

    Fields

    Inherited fields

    Predicates

    toString

    Gets a textual representation of this element.

    Inherited 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.

    from Node
    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.

    from Node
    asParameter

    Gets the parameter corresponding to this node, if any.

    from Node
    asPartialDefinition

    Gets the expression that is partially defined by this node, if any.

    from Node
    asUninitialized

    Gets the uninitialized local variable corresponding to this node, if any.

    from Node
    getArgument

    Gets the argument corresponding to this node.

    from DefinitionByReferenceOrIteratorNode
    getEnclosingCallable

    INTERNAL: Do not use. Alternative name for getFunction.

    from Node
    getFunction

    Gets the function to which this node belongs.

    from DefinitionByReferenceOrIteratorNode
    getLocation

    Gets the location of this element.

    from DefinitionByReferenceOrIteratorNode
    getParameter

    Gets the parameter through which this value is assigned.

    from DefinitionByReferenceOrIteratorNode
    getPartialDefinitionfrom PartialDefinitionNode
    getPreUpdateNode

    Gets the node before the state update.

    from DefinitionByReferenceOrIteratorNode
    getType

    Gets the type of this node.

    from DefinitionByReferenceOrIteratorNode
    getTypeBound

    Gets an upper bound on the type of this node.

    from 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.

    from Node