Documentation

Miri.Interpreter.GlobalMemoryCopyMachine

Complete raw global/local lookup around memory.rs:1490–1638 memcopy. Cow::Borrowed sources remain detached; only Owned source conversions cache. Destination globals materialize before WriteToReadOnly, preserving that cache on UB. Source snapshots survive destination conversion and overlapping writes.

Two pointer checks precede source probe (even size zero), source lookup, read, destination lookup/mutability, destination before_alloc_access, write, then actual snapshot copy. num_copies=0 still reads a nonzero source.

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

    Source typed-copy slow path shared by intrinsic and MIR copies. Dynamic sizes precede physical copying; misalignment is reported only after copying.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Miri.Interpreter.GlobalMemoryCopyMachine.copy {K U : Type} [DecidableEq K] (config : PlaceMachine.AccessConfig K (User U)) (arithmetic : Memory.PointerArithmetic) (source dest : Memory.Pointer (Option Memory.Provenance)) (size : ABI.Size) (repeatCount : UInt64) (nonoverlapping : Bool) :
      M K U Unit

      Original PointerMachine-shaped API, retaining the same implementation.

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