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

Module signature Semantic

Import path

import codeql.rangeanalysis.RangeAnalysis

Predicates

additionalValueFlowStep

Holds if the value of dest is known to be src + delta.

conversionCannotOverflow
getABasicBlockSuccessor

Gets an immediate successor of basic block bb, if any.

getBlockId1

Gets an ideally unique integer for bb. If it is undesirable to make this unique, then getBlock2 must provide a tiebreaker, such that the pair (getBlockId1(bb),getBlockId2(bb)) becomes unique.

getBlockId2

Gets a tiebreaker id in case getBlockId1 is not unique.

getExprType

Gets the type of an expression.

getSsaType

Gets the type of an SSA variable.

implies_v2
isAssignOp

Types

AddExpr
AddressType
BasicBlock
BinaryExpr
BitAndExpr
BitOrExpr
BoxExpr
ConditionalExpr
ConstantIntegerExpr
ConvertExpr
CopyValueExpr
DivExpr
Expr
FloatingPointType
Guard

A guard in the range analysis.

IntegerType
MulExpr
NegateExpr
PostDecExpr
PostIncExpr
PreDecExpr
PreIncExpr
RelationalExpr
RemExpr
ShiftLeftExpr
ShiftRightExpr
ShiftRightUnsignedExpr
SsaExplicitUpdate

An SSA variable representing the value of an explicit update of the source variable.

SsaPhiNode

A phi node in the SSA form. A phi node is a kind of node in the SSA form that represents a merge point where multiple control flow paths converge and the value of a variable needs to be selected according to which control flow path was taken. For example, in the following Ruby code: rb if b x = 0 else x = 1 end puts x A phi node for x is inserted just before the call puts x, since the value of x may come from either x = 0 or x = 1.

SsaVariable

A static single-assignment (SSA) variable.

SubExpr
Type
UnaryExpr
UnboxExpr