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

Module signature TypeTrackingInput

The step relations for type tracking.

Import path

import codeql.typetracking.TypeTracking

Predicates

callStep

Holds if nodeFrom steps to nodeTo by being passed as a parameter in a call.

compatibleContents

Holds if a value stored with storeContents can be read back with loadContents.

hasFeatureBacktrackStoreTarget

Holds if the target of store steps should be backtracked via simpleLocalSmallStep to a LocalSourceNode. If this flag is not set, then the targets of store steps are assumed to be LocalSourceNodes themselves.

jumpStep

Holds if data can flow from nodeFrom to nodeTo in a way that discards call contexts.

levelStepCall

Holds if there is a level step from nodeFrom to nodeTo that may depend on the call graph.

levelStepNoCall

Holds if there is a level step from nodeFrom to nodeTo that does not depend on the call graph.

loadStep

Holds if nodeTo is the result of accessing the content c of nodeFrom.

loadStoreStep

Holds if the content c1 of nodeFrom is stored in the content c2 of nodeTo.

nonStandardFlowsTo

Holds if a non-standard flowsTo predicate is needed, i.e., one that is not simply simpleLocalSmallStep*(localSource, dst).

returnStep

Holds if nodeFrom steps to nodeTo by being returned from a call.

simpleLocalSmallStep

Holds if there is a simple local flow step from nodeFrom to nodeTo. A transitive closure of such steps is prepended to the non-simple type-tracking steps.

storeStep

Holds if nodeFrom is being written to the content c of the object in nodeTo.

withContentStep

Holds if type-tracking should step from nodeFrom to nodeTo if inside a content matched by filter.

withoutContentStep

Holds if type-tracking should step from nodeFrom to nodeTo but block flow of contents matched by filter.

Types

Content

A type of content to be used with the store and read steps.

ContentFilter

A label to use for withContentStep and withoutContentStep steps, restricting which Contents may pass through.

LocalSourceNode

A node that is the source of local flow. This defines the end-points of the big-step relation used by type-trackers once the transitive closure of simpleLocalFlowStep is prepended to the other steps.

Node

A node that is used by the type-trackers.