Documentation

Miri.Interpreter.ControlFlow

Control transitions from pinned eval_context.rs:513–558, call.rs:1134–1210, and step.rs:537–707. Required callbacks carry the remaining interpreter operations; this is not a closed Rust semantics.

structure Miri.Interpreter.ControlHooks (P L E M C Op : Type) :
Instances For
    def Miri.Interpreter.ControlFlow.setLocation {P L E M : Type} (state : StepState P L E M) (location : FrameLocation) :

    Source jumps assign the location directly; target validation belongs to body loading/next step, not an extra check before this assignment.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Miri.Interpreter.ControlFlow.goToBlock {P L E M : Type} (target : MIR.BasicBlockId) (state : StepState P L E M) :
      Equations
      Instances For
        def Miri.Interpreter.ControlFlow.unwindToBlock {P L E M C Op : Type} (hooks : ControlHooks P L E M C Op) (choice : C) (target : MIR.UnwindAction) (state : StepState P L E M) :
        Equations
        Instances For
          def Miri.Interpreter.ControlFlow.returnFromCurrentFrame {P L E M C Op : Type} (hooks : ControlHooks P L E M C Op) (choice : C) (unwinding : Bool) (state : StepState P L E M) :

          Return reads local 0 even on unwind, pops before copying, then performs cleanup before following the continuation. Every error preserves prior effects.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            structure Miri.Interpreter.TerminatorHooks (P L E M C Op Imm : Type) extends Miri.Interpreter.ControlHooks P L E M C Op :
            Instances For
              def Miri.Interpreter.ControlFlow.evalTerminator {P L E M C Op Imm : Type} (hooks : TerminatorHooks P L E M C Op Imm) (choice : C) (terminator : MIR.Terminator) (state : StepState P L E M) :
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For