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

Class VariableMemoryLocation

An access to memory within a single known IRVariable. The variable may be either an unescaped variable (with its own VirtualIRVariable) or an escaped variable (assigned to UnknownVirtualVariable).

Import path

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

Direct supertypes

Indirect supertypes

Known direct subtypes

    Fields

    Inherited fields

    Predicates

    coversEntireVariable

    Holds if this memory location covers the entire variable.

    getEndBitOffset
    getStartBitOffset
    getType
    getUniqueId
    isAlwaysAllocatedOnStack

    Holds if the location always represents memory allocated on the stack (for example, a variable with automatic storage duration).

    toStringInternal

    Inherited predicates

    canDefineReadOnly

    Holds if a definition of this location can be the definition of a read-only use location.

    from MemoryLocation0
    canReuseSsafrom MemoryLocation0
    getAnAllocation

    Gets an allocation associated with this MemoryLocation.

    from AllocationMemoryLocation
    getIRFunctionfrom AllocationMemoryLocation
    getIRTypefrom MemoryLocation0
    getLocationfrom AllocationMemoryLocation
    getVirtualVariablefrom AllocationMemoryLocation
    isMayAccessfrom AllocationMemoryLocation
    isReadOnly

    Holds if the location cannot be overwritten except by definition of a MemoryLocation for which def.canDefineReadOnly() holds.

    from AllocationMemoryLocation
    toStringfrom MemoryLocation0

    Charpred