Class MemoryLocation
A memory location accessed by a memory operand or memory result. In this implementation, the location is one of the following:
VariableMemoryLocation
- A location within a knownIRVariable
, at an offset that is either a constant or is unknown.UnknownMemoryLocation
- A location not known to be within a specificIRVariable
.
Compared to MemoryLocation0
, this class does not contain memory locations that represent uses of busy definitions.
Import path
import semmle.code.cpp.ir.implementation.aliased_ssa.internal.AliasedSSA
Direct supertypes
Indirect supertypes
Inherited predicates
canDefineReadOnly | Holds if a definition of this location can be the definition of a read-only use location. | from MemoryLocation0 |
canReuseSsa | from MemoryLocation0 | |
getAnAllocation | Gets an allocation associated with this | from MemoryLocation0 |
getIRFunction | from MemoryLocation0 | |
getIRType | from MemoryLocation0 | |
getLocation | from MemoryLocation0 | |
getType | from MemoryLocation0 | |
getUniqueId | from MemoryLocation0 | |
getVirtualVariable | from MemoryLocation0 | |
isAlwaysAllocatedOnStack | Holds if the location always represents memory allocated on the stack (for example, a variable with automatic storage duration). | from MemoryLocation0 |
isMayAccess | from MemoryLocation0 | |
isReadOnly | Holds if the location cannot be overwritten except by definition of a | from MemoryLocation0 |
toString | from MemoryLocation0 | |
toStringInternal | from MemoryLocation0 |