Source-ordered tb_retag_ptr_value / tb_retag_place / tb_reborrow core.
Rustc type/layout queries, pointer validation/resolution, diagnostics, and data
race operations are explicit hook results. The live allocation's actual
BorrowTree is stored in MemoryState extra data and updated through the
source allocation API. This module does not claim the interpreter hooks are
implemented.
- memory : Memory.MemoryState Memory.Provenance BorrowTree MachineKind
- global : GlobalState
- frame : FrameState
Instances For
- allocId : Memory.AllocId
- baseOffset : ABI.Size
- parentProvenance : Memory.ProvenanceExtra
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The source tb_retag_ptr_value type dispatch. Raw pointers and boxes with
custom allocators return before place conversion; only reference types and
global boxes construct a NewPermission and call tb_retag_place.
- reference : RetagInputKind
- globalBox : RetagInputKind
- rawPointer : RetagInputKind
- customAllocatorBox : RetagInputKind
- invalidType : RetagInputKind
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Predicates supplied by rustc for the source type match. Although Rust's
type constructors are disjoint, isGlobalBox is a separate predicate and is
tested before TyKind, exactly as in tb_retag_ptr_value. Keeping the
predicates explicit lets the Lean caller preserve that guard priority.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Miri.TreeBorrows.RetagPipeline.RetagTypeShape.invalid = { isReference := false }
Instances For
- placeConverted : Event
- reborrowSizeSelected (size : ABI.Size) : Event
- pointerTagAllocated (tag : Memory.BorTag) : Event
- allocationResolution (location : Option Memory.AllocId) : Event
- pointerAccessChecked : Event
- creationLogCalled (tag : Memory.BorTag) (location : Option Memory.AllocId) (tracked : Bool) : Event
- protectorRegistered (tag : Memory.BorTag) (kind : ProtectorKind) : Event
- allocationKindChecked (allocId : Memory.AllocId) (kind : Memory.AllocationKind) : Event
- freezeLayoutVisited : Event
- allocationExtraLoaded (allocId : Memory.AllocId) : Event
- parentTreeAccess (kind : AccessKind) (range : DataStructures.ByteRange) : Event
- dataRaceAccess (kind : AccessKind) (range : DataStructures.ByteRange) : Event
- childInserted (tag : Memory.BorTag) : Event
- reborrowReturned (provenance : Option Memory.Provenance) : Event
- placeProvenanceReplaced (provenance : Option Memory.Provenance) : Event
- retaggedValueReconstructed : Event
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- placeConversion (message : String) : Error
- rawPointerWrongMode : Error
- invalidType : Error
- sizeQuery (message : String) : Error
- pointerTagOverflow (tag : Memory.BorTag) : Error
- pointerAccess (message : String) : Error
- creationLog (message : String) : Error
- nonzeroSizeWithoutAllocation (size : ABI.Size) : Error
- allocationLookup (error : Memory.AllocationLookupError) : Error
- nonLiveAllocationHasBytes (kind : Memory.AllocationKind) (size : ABI.Size) : Error
- freezeVisitor (message : String) : Error
- initialState (error : RetagPolicy.InitialStateError) : Error
- layoutRangeMap (error : DataStructures.DedupRangeMapError) : Error
- allocationExtra (message : String) : Error
- writeToReadOnly (allocId : Memory.AllocId) : Error
- offsetOverflow (baseOffset : ABI.Size) (relativeOffset : UInt64) : Error
- rangeEndOverflow (start length : ABI.Size) : Error
- treeAccess (range : DataStructures.ByteRange) (status : BorrowTree.BorrowTreeAccessStatus) : Error
- missingDataRaceResult (index : Nat) : Error
- dataRace (message : String) : Error
- childInsert (error : BorrowTree.ChildInsertError) : Error
- memoryUpdate (error : Memory.AllocationLookupError) : Error
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
- state : MachineState MachineKind
- outcome : Except Error (Option Memory.Provenance)
Instances For
Inputs supplied by the rustc/Miri layer around tb_reborrow. A failed
hook is kept at the point where the pinned source calls it. freezeVisitor
is consulted only when precise interior mutability is enabled; dataRace
is none when the allocation has no vector-clock model.
- allocationResolution : Option ResolvedLocation
Result of
ptr_try_get_alloc_id(place.ptr(), 0), consulted only aftercheck_ptr_accesssucceeds. An absent result takes Miri's zero-size path. - freezeVisitor : Except String (DataStructures.DedupRangeMap Bool)
Instances For
- typeShape : RetagTypeShape
- typeFacts : RetagPolicy.TypeFacts
- referenceKind : RetagPolicy.ReferenceKind
- mode : RetagPolicy.RetagMode
- config : RetagPolicy.PolicyConfig
- layoutSize : ABI.Size
- originalProvenance : Option Memory.Provenance
- pointeeIsFreeze : Bool
- preciseInteriorMut : Bool
- hooks : Hooks
Instances For
Source tb_retag_ptr_value followed by tb_retag_place and the
allocation-local portion of tb_reborrow. Policy selection precedes place
conversion; the dynamic-size query precedes new_ptr; pointer validation
follows tag allocation. Hook failures return the state accumulated up to that
source point, including installed protectors and earlier parent accesses.
Equations
- One or more equations did not get rendered due to their size.