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

Module PartialDefinitions

Provides classes and predicates dealing with “partial definitions”.

In contrast to a normal “definition”, which provides a new value for something, a partial definition is an expression that may affect a value, but does not necessarily replace it entirely. For example:

x.y = 1; // a partial definition of the object `x`.
x.y.z = 1; // a partial definition of the objects `x` and `x.y`.
x.setY(1); // a partial definition of the object `x`.
setY(&x); // a partial definition of the object `x`.

Import path

import semmle.code.cpp.dataflow.internal.FlowVar

Classes

DefinitionByIterator

A partial definition that’s a definition via an output iterator.

DefinitionByReference

A partial definition that’s a definition by reference.

IteratorPartialDefinition
PartialDefinition
VariablePartialDefinition