CodeQL library for C#
codeql/csharp-all 0.10.1 (changelog, source)
Search

Module MakeImplCommon

Import path

import codeql.dataflow.internal.DataFlowImplCommon

Imports

Predicates

accessPathApproxCostLimits

The cost limits for the AccessPathFront to AccessPathApprox expansion.

accessPathCostLimits

The cost limits for the AccessPathApprox to AccessPath expansion.

argumentPositionMatch

Holds if arg is an argument of call with an argument position that matches parameter position ppos.

getLocalCallContext

Gets the local call context given the call context and the callable that the contexts apply to.

getNodeDataFlowType

Gets the type of n used for type pruning.

getNodeEnclosingCallable

Gets the enclosing callable of n. Unlike n.getEnclosingCallable(), this predicate ensures that joins go from n to the result instead of the other way around.

getReturnPosition

Classes

AccessPathFront

The front of an access path. This is either a head or a nil.

AccessPathFrontHead
AccessPathFrontNil
AccessPathFrontOption

An optional access path front.

ApproxAccessPathFront

The front of an approximated access path. This is either a head or a nil.

ApproxAccessPathFrontHead
ApproxAccessPathFrontNil
ApproxAccessPathFrontOption

An optional approximated access path front.

ArgNode

A data-flow node that represents a call argument.

BooleanOption

An optional Boolean value.

CallContext

A call context to restrict the targets of virtual dispatch, prune local flow, and match the call sites of flow into a method with flow out of a method.

CallContextAny
CallContextCall
CallContextNoCall
CallContextReturn
CallContextSomeCall
CallContextSpecificCall
CastingNode

A Node at which a cast can occur such that the type should be checked.

DataFlowCallOption

An optional DataFlowCall.

LocalCallContext

A call context that is relevant for pruning local flow.

LocalCallContextAny
LocalCallContextSpecificCall
OutNodeExt

A node to which data can flow from a call. Either an ordinary out node or a post-update node associated with a call argument.

ParamNode

The value of a parameter at function entry, viewed as a node in a data flow graph.

ParamNodeOption

An optional ParamNode.

ParamUpdateReturnKind
ReturnCtx

A return context used to calculate flow summaries in reverse flow.

ReturnKindExt

An extended return kind. A return kind describes how data can be returned from a callable. This can either be through a returned value or an updated parameter.

ReturnNodeExt

A node from which flow can return to the caller. This is either a regular ReturnNode or a PostUpdateNode corresponding to the value of a parameter.

ReturnPosition

A callable tagged with a relevant return kind.

ValueReturnKind

Modules

CallContextSensitivity

Provides predicates releated to call-context sensitivity.

DataFlowImplCommonPublic
TypeFlow

Given a call graph for a set of flow paths, this module calculates the type flow between parameter and argument nodes in the cases where it is possible for a type to first be weakened and then strengthened again. When the stronger types at the end-points of such a type flow path are incompatible, the relevant call edges can be excluded as impossible.

Module signatures

Parameters