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

Module AliasAnalysis

Import path

import semmle.code.cpp.ir.implementation.aliased_ssa.internal.AliasAnalysis

Predicates

addressOperandAllocationAndOffset

Holds if addrOperand is at offset bitOffset from a base instruction of allocation. The offset may be unknown().

addressOperandBaseAndConstantOffset

Holds if addrOperand is at constant offset bitOffset from the value of instruction base. Only holds for the base with the longest chain of propagation to addrOperand.

allocationEscapes

Holds if the address of allocation escapes outside the domain of the analysis. This can occur either because the allocation’s address is taken within the function and escapes, or because the allocation is marked as always escaping via alwaysEscapes().

getAddressOperandAllocation

Gets the allocation into which addrOperand points, if known.

getConstantValue

If the result of instruction instr is an integer constant, returns the value of that constant. Otherwise, returns unknown.

getPointerBitOffset

Computes the offset, in bits, by which the result of instr differs from the pointer argument to instr, if that offset is a constant. Otherwise, returns unknown.

Modules

Print

Predicates used only for printing annotated IR dumps. These should not be used in production queries.