Stored operands and the low-level LocalState operations from pinned
operand.rs, place.rs, and stack.rs. Memory access and machine hooks are
required at higher-level accesses; the ghost accessor below never substitutes
for a Rust read.
- ptr : Memory.Pointer (Option Prov)
- metadata : MemPlaceMeta Prov
- misaligned : Option Memory.Misalignment
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Miri.Interpreter.instDecidableEqOperand.decEq (Miri.Interpreter.Operand.immediate a) (Miri.Interpreter.Operand.immediate b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Miri.Interpreter.instDecidableEqOperand.decEq (Miri.Interpreter.Operand.immediate value) (Miri.Interpreter.Operand.indirect place) = isFalse ⋯
- Miri.Interpreter.instDecidableEqOperand.decEq (Miri.Interpreter.Operand.indirect place) (Miri.Interpreter.Operand.immediate value) = isFalse ⋯
- Miri.Interpreter.instDecidableEqOperand.decEq (Miri.Interpreter.Operand.indirect a) (Miri.Interpreter.Operand.indirect b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- dead {Prov : Type} : LocalValue Prov
- live {Prov : Type} (value : Operand Prov) : LocalValue Prov
Instances For
Equations
- Miri.Interpreter.instDecidableEqLocalValue.decEq Miri.Interpreter.LocalValue.dead Miri.Interpreter.LocalValue.dead = isTrue ⋯
- Miri.Interpreter.instDecidableEqLocalValue.decEq Miri.Interpreter.LocalValue.dead (Miri.Interpreter.LocalValue.live value) = isFalse ⋯
- Miri.Interpreter.instDecidableEqLocalValue.decEq (Miri.Interpreter.LocalValue.live value) Miri.Interpreter.LocalValue.dead = isFalse ⋯
- Miri.Interpreter.instDecidableEqLocalValue.decEq (Miri.Interpreter.LocalValue.live a) (Miri.Interpreter.LocalValue.live b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Layout will be the canonical imported TyAndLayout representation at the
integrated interpreter boundary. Its cached value is retained unchanged by
the selected source operations.
- value : LocalValue Prov
- layout : Option Layout
Instances For
Equations
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- inbounds : OffsetMode
- wrapping : OffsetMode
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- addedMetadataToThinPlace : MemPlaceOffsetError
- offsetDoesNotFitI64 (offset : ABI.Size) : MemPlaceOffsetError
- inbounds (reason : PointerOffsetError) : MemPlaceOffsetError
- pointer (reason : Memory.PointerError) : MemPlaceOffsetError
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Miri.Interpreter.instDecidableEqMemPlaceOffsetError.decEq Miri.Interpreter.MemPlaceOffsetError.addedMetadataToThinPlace Miri.Interpreter.MemPlaceOffsetError.addedMetadataToThinPlace = isTrue ⋯
- Miri.Interpreter.instDecidableEqMemPlaceOffsetError.decEq Miri.Interpreter.MemPlaceOffsetError.addedMetadataToThinPlace (Miri.Interpreter.MemPlaceOffsetError.inbounds reason) = isFalse ⋯
- Miri.Interpreter.instDecidableEqMemPlaceOffsetError.decEq Miri.Interpreter.MemPlaceOffsetError.addedMetadataToThinPlace (Miri.Interpreter.MemPlaceOffsetError.pointer reason) = isFalse ⋯
- Miri.Interpreter.instDecidableEqMemPlaceOffsetError.decEq (Miri.Interpreter.MemPlaceOffsetError.offsetDoesNotFitI64 offset) (Miri.Interpreter.MemPlaceOffsetError.pointer reason) = isFalse ⋯
- Miri.Interpreter.instDecidableEqMemPlaceOffsetError.decEq (Miri.Interpreter.MemPlaceOffsetError.inbounds reason) Miri.Interpreter.MemPlaceOffsetError.addedMetadataToThinPlace = isFalse ⋯
- Miri.Interpreter.instDecidableEqMemPlaceOffsetError.decEq (Miri.Interpreter.MemPlaceOffsetError.inbounds reason) (Miri.Interpreter.MemPlaceOffsetError.offsetDoesNotFitI64 offset) = isFalse ⋯
- Miri.Interpreter.instDecidableEqMemPlaceOffsetError.decEq (Miri.Interpreter.MemPlaceOffsetError.inbounds reason) (Miri.Interpreter.MemPlaceOffsetError.pointer reason_1) = isFalse ⋯
- Miri.Interpreter.instDecidableEqMemPlaceOffsetError.decEq (Miri.Interpreter.MemPlaceOffsetError.pointer reason) Miri.Interpreter.MemPlaceOffsetError.addedMetadataToThinPlace = isFalse ⋯
- Miri.Interpreter.instDecidableEqMemPlaceOffsetError.decEq (Miri.Interpreter.MemPlaceOffsetError.pointer reason) (Miri.Interpreter.MemPlaceOffsetError.offsetDoesNotFitI64 offset) = isFalse ⋯
- Miri.Interpreter.instDecidableEqMemPlaceOffsetError.decEq (Miri.Interpreter.MemPlaceOffsetError.pointer reason) (Miri.Interpreter.MemPlaceOffsetError.inbounds reason_1) = isFalse ⋯
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- self.mapProvenance f = { ptr := self.ptr.mapProvenance (Option.map f), metadata := self.metadata, misaligned := self.misaligned }
Instances For
Equations
- self.toRef layout = Miri.Interpreter.Immediate.newPointerWithMeta self.ptr self.metadata layout
Instances For
Source MemPlace::offset_with_meta_: metadata cannot be added to a thin
place; inbounds mode checks the signed conversion and allocation bounds,
while wrapping mode uses the target-width pointer operation directly.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- self.makeLiveUninit = { value := Miri.Interpreter.LocalValue.live (Miri.Interpreter.Operand.immediate Miri.Interpreter.Immediate.uninit), layout := self.layout }
Instances For
Source ghost read for provenance visiting. It does not count as a read in the abstract machine and performs no borrow/race hooks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- self.access = match self.value with | Miri.Interpreter.LocalValue.dead => Except.error Miri.Interpreter.LocalStateError.deadLocal | Miri.Interpreter.LocalValue.live value => Except.ok value
Instances For
Functional form of source access_mut: only a live operand is exposed
for mutation. It is still the caller's job to perform the machine access hook.