CodeQL library for Java/Kotlin
codeql/java-all 0.9.2-dev (changelog, source)
Search

Module Sem

Import path

import semmle.code.java.dataflow.RangeAnalysis

Predicates

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.

getExprType

Gets the type of an expression.

getSsaType

Gets the type of an SSA variable.

implies_v2
isAssignOp

Classes

AddExpr
AddressType
BinaryExpr
BitAndExpr
BitOrExpr
BoxExpr
ConvertExpr
CopyValueExpr
DivExpr
FloatingPointType
Guard

A guard in the range analysis.

IntegerType
MulExpr
NegateExpr
PostDecExpr
PostIncExpr
PreDecExpr
PreIncExpr
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
UnaryExpr
UnboxExpr

Aliases

BasicBlock

A control-flow node that represents the start of a basic block.

ConditionalExpr

A conditional expression of the form a ? b : c, where a is the condition, b is the expression that is evaluated if the condition evaluates to true, and c is the expression that is evaluated if the condition evaluates to false.

ConstantIntegerExpr

An expression that always has the same integer value.

Expr

A common super-class that represents all kinds of expressions.

RelationalExpr

A comparison expression.

Type

A common abstraction for all Java types, including primitive, class, interface and array types.

additionalValueFlowStep

Holds if e1 + delta equals e2.

conversionCannotOverflow

Holds if a cast from fromtyp to totyp can be ignored for the purpose of range analysis.