Documentation

Miri.Interpreter.PointerMachineBindings

Concrete dictionary wiring for canonical Miri pointer provenance. These bindings retain the unrelated compiler, validity, memory and float leaves.

Signed interval checks use canonical memory, preserving the zero-byte fast path and concrete dangling provenance until liveness checking.

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
      def Miri.Interpreter.PointerMachine.binary {K U C : Type} (h : Hooks K U) (target : ABI.TargetDataLayout) (ops : ScalarOpsHooks Memory.Provenance (State K U) C) (isRaw : C → MIR.TyId → M K U Bool) (usize : C → M K U (ABI.TyAndLayout MIR.TyId)) (pointeeLayout : C → MIR.TyId → M K U (ABI.TyAndLayout MIR.TyId)) (choice : C) (op : MIR.BinOp) (left right : RvalueImmTy Memory.Provenance) :

      rustc's Offset arm precedes Miri's bitwise/comparison machine fallback. Pointee layout and signedness are compiler facts; arithmetic is concrete.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def Miri.Interpreter.PointerMachine.scalarOps {K U C : Type} (h : Hooks K U) (target : ABI.TargetDataLayout) (ops : ScalarOpsHooks Memory.Provenance (State K U) C) (isRaw : C → MIR.TyId → M K U Bool) (usize : C → M K U (ABI.TyAndLayout MIR.TyId)) (pointeeLayout : C → MIR.TyId → M K U (ABI.TyAndLayout MIR.TyId)) :
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Pointer-to-integer exposure preserves the scalar's actual address; only provenance exposure is rebound here. Cast's width/sign conversion is unchanged.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Memory's resolver distinguishes unresolved integer addresses from missing semantics. Wildcard resolution is performed anew on every access. A concrete pointer's TB tag and a wildcard marker survive in the resolved extra.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              Actual AllocationAccess dictionary: all TB/race/sync physical access stages remain in the supplied machine dictionary; only provenance resolution changes.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Bind the already ported full ptr_offset_from pipeline to actual memory resolution and inbounds checks. Errors inside the source deferred check are returned as values so its two-direction error preference remains intact.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Miri.Interpreter.PointerMachine.checkAlignment {K U : Type} (h : Hooks K U) (symbolic enforce : Bool) (pointer : Memory.Pointer (Option Memory.Provenance)) (required : ABI.Align) :
                  M K U Unit

                  Symbolic promises override the concrete address check only when source requests that mode and allocation kind. Canonical memory supplies liveness, alignment and allocation kind; wildcard provenance is resolved per call.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For