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

Module DataFlowNodes

Import path

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

Imports

Predicates

conversionFlow

Holds if opFrom is an operand whose value flows to the result of instrTo.

getFieldSize
getTypeImpl

Returns t, but stripped of the outer-most indirectionIndex number of indirections.

Classes

BodyLessParameterNodeImpl

A node representing a parameter for a function with no body.

CanonicalField

A canonical representation of a field.

CanonicalUnion

A canonical representation of a Union. See CanonicalField for the explanation for why we need a canonical representation.

DirectParameterNode

An explicit positional parameter, including this, but not ....

ExplicitParameterNode
FieldAddress

An operand that is defined by a FieldAddressInstruction.

FinalGlobalValue

A node representing the value of a global variable just before returning from a function body.

FinalParameterNode

A node representing the value of an output parameter just before reaching the end of a function.

FlowSummaryNode

A data-flow node used to model flow summaries. That is, a dataflow node that is synthesized to represent a parameter, return value, or other part of a models-as-data modeled function.

IndirectArgumentOutNode

A node representing the indirection of a value after it has been returned from a function.

IndirectParameterNode

A node representing an indirection of a positional parameter, including *this, but not *....

IndirectReturnNode

A node representing the indirection of a value that is about to be returned from a function.

IndirectReturnOutNode

A node representing the indirect value of a function call (i.e., a value hidden behind a number of indirections).

InitialGlobalValue

A node representing the value of a global variable just after entering a function body.

InstructionDirectParameterNode

A non-indirect parameter node that is represented as an Instruction.

ParameterNode

The value of a parameter at function entry, viewed as a node in a data flow graph. This includes both explicit parameters such as x in f(x) and implicit parameters such as this in x.f().

PostFieldUpdateNode

The node representing the value of a field after it has been updated.

PostUpdateNodeImpl
RawIndirectInstruction

A node that represents the indirect value of an instruction in the IR after a number of loads.

RawIndirectOperand

A node that represents the indirect value of an operand in the IR after a number of loads.

SideEffectOperandNode

A node representing a value after leaving a function.

SsaIteratorNode

Dataflow nodes necessary for iterator flow

SsaSynthNode

A synthesized SSA node produced by the shared SSA library, viewed as a node in a data flow graph.

SummaryParameterNode

A parameter node that is part of a summary.

SummaryPostUpdateNode

A PostUpdateNode that is part of a flow summary. These are synthesized, for example, when a models-as-data summary models a write to a field since the write needs to target a PostUpdateNode.

Modules