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

Module signature TypeFlowInput

Provides the input specification.

Import path

import codeql.typeflow.TypeFlow

Predicates

exactTypeBase

Holds if t is the most precise type of n, if any.

getAnAncestor

Gets a direct or indirect supertype of this type, including itself.

getErasure

Gets the erased version of this type. The erasure of a erasure of a parameterized type is its generic counterpart, or t if t is already fully erased.

getSourceDeclaration

Gets the source declaration of this type, or t if t is already a source declaration.

instanceofDisjunctionGuarded

Holds if n is a value that is guarded by a disjunction of a dynamic type check that checks if n is an instance of type t_i where t is one of those t_i.

isExcludedFromNullAnalysis

Holds if n should be excluded from the set of null values even if the null analysis determines that n is always null.

isNullValue

Holds if n represents a null value.

joinStep

Holds if data can flow from n1 to n2 in one step, and n1 is not necessarily functionally determined by n2.

step

Holds if data can flow from n1 to n2 in one step, and n1 is functionally determined by n2.

typeFlowBaseCand

Holds if n has type t and this information is discarded, such that t might be a better type bound for nodes where n flows to. This might include multiple bounds for a single node.

unbound

Holds if t is a raw type or parameterised type with unrestricted type arguments.

Types

Type

A type.

TypeFlowNode

A node for which type information is available. For example, expressions and method declarations.

Parameters

LocationLocationSig