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

Class VirtualVariable

Represents a set of MemoryLocations that cannot overlap with MemoryLocations outside of the set. The VirtualVariable will be represented by a MemoryLocation that totally overlaps all other MemoryLocations in the set.

Import path

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

Direct supertypes

Indirect supertypes

Known direct subtypes

    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 MemoryLocation0
    getIRFunctionfrom MemoryLocation0
    getIRTypefrom MemoryLocation0
    getLocationfrom MemoryLocation0
    getTypefrom MemoryLocation0
    getUniqueIdfrom MemoryLocation0
    getVirtualVariablefrom MemoryLocation0
    isAlwaysAllocatedOnStack

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

    from MemoryLocation0
    isMayAccessfrom MemoryLocation0
    isReadOnly

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

    from MemoryLocation0
    toStringfrom MemoryLocation0
    toStringInternalfrom MemoryLocation0