Documentation

Miri.Interpreter.Aggregate

Pinned step.rs write_aggregate and write_repeat. The same MIR operands and canonical layouts flow through RvalueHooks; stateful obligations retain effects on failure. No field write is treated as initialization of aggregate padding.

structure Miri.Interpreter.AggregateHooks (Prov S C V : Type) :
Instances For
    def Miri.Interpreter.writeAggregate {P S C V : Type} (h : AggregateHooks P S C V) (choice : C) (kind : MIR.AggregateKind) (operands : Array MIR.Operand) (dest : V) :
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Miri.Interpreter.writeRepeat {P S C V : Type} (h : AggregateHooks P S C V) (choice : C) (operand : MIR.Operand) (dest : V) :

      The repeat count is the destination array length. Even zero-length repeats first evaluate the operand and force allocation, then validate mutable access. Positive lengths copy once and replicate the resulting bytes; the source can alias the destination, so evaluating/copying every element would be incorrect.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def Miri.Interpreter.RvalueHooks.withAggregate {P S C V : Type} (base : RvalueHooks P S C V) (aggregate : AggregateHooks P S C V) :
        RvalueHooks P S C V

        Install the aggregate/repeat source ports into the existing rvalue dispatch.

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

          Actual pointer wrapping arithmetic, retaining provenance and target width.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def Miri.Interpreter.aggregateMemoryCopyRepeatedly {Kind Prov Extra HookState ProvExtra S : Type} [DecidableEq Kind] (pointerSize : ABI.Size) (hooks : Memory.MemoryCopyHooks Prov Extra Kind HookState ProvExtra) (getMemory : S → Memory.MemoryState Prov Extra Kind) (getHooks : S → HookState) (putMemoryHooks : S → Memory.MemoryState Prov Extra Kind → HookState → S) (mapError : Memory.MemoryLifecycleError → StepError) (source dest : Memory.Pointer (Option Prov)) (size : ABI.Size) (count : UInt64) (nonoverlapping : Bool) :

            Concrete repeated-copy adapter to existing allocation/memory semantics. The supplied state embedding must preserve unrelated execution state.

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