CTFE's packed provenance from pinned rustc mir/interpret/pointer.rs.
The representation is decoded into the same allocation ID and two flags;
the constructor enforces the source's 62-bit ID and immutable⇒shared invariant.
packed reconstructs the original u64, including both high bits. This is
separate from Miri's concrete/wildcard provenance, not a substitute for it.
- allocationIdUsesFlagBits : CtfeProvenanceError
Instances For
@[instance_reducible]
@[instance_reducible]
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
@[instance_reducible]
@[instance_reducible]
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
- prov.asImmutable = { allocId := prov.allocId, allocIdFits := ⋯, immutable := true, sharedRef := true, immutableImpliesShared := Miri.Memory.CtfeProvenance.asImmutable._proof_1 }
Instances For
The exact two high-bit masks from the source representation.
Equations
Instances For
Decoding the allocation bits recovers exactly the stored identity. This uses kernel-checked bitwise lemmas; no native-decide certificate axiom.
@[instance_reducible]
Equations
- Miri.Memory.instPointerProvenanceCtfeProvenance = { offsetIsAddr := false, wildcard := none, getAllocId := fun (prov : Miri.Memory.CtfeProvenance) => some prov.allocId }
Equations
- ptr.provAndRelativeOffset = ptr.intoRawParts
Instances For
Equations
Instances For
Equations
- Miri.Memory.Pointer.fromAllocId id = do let __do_lift ← Miri.Memory.CtfeProvenance.fromAllocId id pure (Miri.Memory.Pointer.fromCtfeProvenance __do_lift)