The pointer-sized and byte-fragment representation from rustc's pinned allocation/provenance_map.rs. Read operations preserve the distinction between no provenance, wildcard provenance, and a partial CTFE pointer error. The checked construction below enforces sorted unique map keys. It does not replace the allocation's bounds/initialization/aliasing checks.
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
- memory (reason : MemoryError) : ProvenanceMapError
- pointerSizeZero : ProvenanceMapError
- unsortedOrDuplicateKeys : ProvenanceMapError
- readPartialPointer (offset : ABI.Size) : ProvenanceMapError
- missingWildcard : ProvenanceMapError
- pointerSizedProvenanceAtByte (offset : ABI.Size) : ProvenanceMapError
- insertOverlapsExistingProvenance : ProvenanceMapError
- pointerSizeExceedsFragmentStorage (bytes : UInt64) : ProvenanceMapError
- fragmentSliceOutOfBounds (start size : ABI.Size) (available : Nat) : ProvenanceMapError
- copyEntryCountOverflow : ProvenanceMapError
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
- 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
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
The source requires sorted, duplicate-free keys at this entry point.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A fragment-state decoder with the same sorted-map key invariants. It is
not a replacement for source prepare_copy/apply_copy/clear operations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- self.getPtr offset = Option.map Prod.snd (Array.find? (fun (entry : Miri.ABI.Size × Prov) => entry.fst.bytes == offset.bytes) self.ptrs)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- self.rangeBytes range = do let finish ← Miri.Memory.ProvenanceMap.rangeEnd✝ range pure (Miri.Memory.ProvenanceMap.rangeEntries✝ (self.byteFragments.getD #[]) range.start finish)
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
Source get_range yields whole pointer entries first, then byte entries.
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
Mutating source operations keep the updated state even on assertion
failure, using the standard library's EStateM result representation.
Equations
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
- One or more equations did not get rendered due to their size.
Instances For
Source apply_copy requires the affected range to have been cleared. The
map insertions retain the source's replacement behavior at existing keys.
Equations
- One or more equations did not get rendered due to their size.