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

Module Make

Provides an SSA implementation.

The SSA construction is pruned based on liveness. That is, SSA definitions are only constructed for Input::variableWrites when it is possible to reach an Input::variableRead, without going through a certain write (the same goes for phi nodes). Whenever a variable is both read and written at the same index in some basic block, the read is assumed to happen before the write.

The result of invoking this parameterized module is not meant to be exposed directly; instead, one should define a language-specific layer on top, and make sure to cache all exposed predicates marked with

NB: If this predicate is exposed, it should be cached.

Import path

import codeql.ssa.Ssa

Predicates

adjacentDefRead

NB: If this predicate is exposed, it should be cached.

adjacentDefReadExt

NB: If this predicate is exposed, it should be cached.

lastRef

NB: If this predicate is exposed, it should be cached.

lastRefExt

NB: If this predicate is exposed, it should be cached.

lastRefRedef

NB: If this predicate is exposed, it should be cached.

lastRefRedefExt

NB: If this predicate is exposed, it should be cached.

lastRefRedefExt

NB: If this predicate is exposed, it should be cached.

phiHasInputFromBlock

NB: If this predicate is exposed, it should be cached.

phiHasInputFromBlockExt

NB: If this predicate is exposed, it should be cached.

ssaDefReachesEndOfBlock

NB: If this predicate is exposed, it should be cached.

ssaDefReachesEndOfBlockExt

NB: If this predicate is exposed, it should be cached.

ssaDefReachesRead

NB: If this predicate is exposed, it should be cached.

ssaDefReachesReadExt

NB: If this predicate is exposed, it should be cached.

uncertainWriteDefinitionInput

NB: If this predicate is exposed, it should be cached.

Classes

Definition

A static single assignment (SSA) definition.

DefinitionExt

An extended static single assignment (SSA) definition.

PhiNode

A phi node.

PhiReadNode

A phi-read node.

UncertainWriteDefinition

An SSA definition that represents an uncertain update of the underlying source variable.

WriteDefinition

An SSA definition that corresponds to a write.

Modules

Consistency

Provides a set of consistency queries.

DataFlowIntegration

Constructs the type Node and associated value step relations, which are intended to be included in the DataFlow::Node type and local step relations.

Module signatures

DataFlowIntegrationInputSig

Provides the input to DataFlowIntegration.

Parameters