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

Module Make::Logic

Provides the Guard class with suitable β€˜controls’ predicates augmented with logical implications based on SSA.

Import path

import codeql.controlflow.Guards

Predicates

ssaControls

Holds if def evaluating to v controls the basic block bb. That is, execution of bb implies that def evaluated to v.

ssaControlsBranchEdge

Holds if def evaluating to v controls the control-flow branch edge from bb1 to bb2. That is, following the edge from bb1 to bb2 implies that def evaluated to v.

Classes

Guard

A guard. This may be any expression whose value determines subsequent control flow. It may also be a switch case, which as a guard is considered to evaluate to either true or false depending on whether the case matches.

Modules

ValidationWrapper

Extends a BarrierGuard input predicate with wrapped invocations.

ValidationWrapperWithState

Extends a BarrierGuard input predicate with wrapped invocations.

Predicate signatures

Type signatures

Aliases

nullGuard

Holds if guard evaluating to v implies that e is guaranteed to be null if isNull is true, and non-null if isNull is false.

Parameters

LogicInputLogicInputSig