miri::shims::panic

Trait EvalContextExt

Source
pub trait EvalContextExt<'tcx>: MiriInterpCxExt<'tcx> {
    // Provided methods
    fn handle_miri_start_unwind(
        &mut self,
        payload: &OpTy<'tcx>,
    ) -> InterpResult<'tcx> { ... }
    fn handle_catch_unwind(
        &mut self,
        args: &[OpTy<'tcx>],
        dest: &MPlaceTy<'tcx>,
        ret: Option<BasicBlock>,
    ) -> InterpResult<'tcx> { ... }
    fn handle_stack_pop_unwind(
        &mut self,
        extra: FrameExtra<'tcx>,
        unwinding: bool,
    ) -> InterpResult<'tcx, ReturnAction> { ... }
    fn start_panic(
        &mut self,
        msg: &str,
        unwind: UnwindAction,
    ) -> InterpResult<'tcx> { ... }
    fn start_panic_nounwind(&mut self, msg: &str) -> InterpResult<'tcx> { ... }
    fn assert_panic(
        &mut self,
        msg: &AssertMessage<'tcx>,
        unwind: UnwindAction,
    ) -> InterpResult<'tcx> { ... }
}

Provided Methods§

Source

fn handle_miri_start_unwind( &mut self, payload: &OpTy<'tcx>, ) -> InterpResult<'tcx>

Handles the special miri_start_unwind intrinsic, which is called by libpanic_unwind to delegate the actual unwinding process to Miri.

Source

fn handle_catch_unwind( &mut self, args: &[OpTy<'tcx>], dest: &MPlaceTy<'tcx>, ret: Option<BasicBlock>, ) -> InterpResult<'tcx>

Handles the try intrinsic, the underlying implementation of std::panicking::try.

Source

fn handle_stack_pop_unwind( &mut self, extra: FrameExtra<'tcx>, unwinding: bool, ) -> InterpResult<'tcx, ReturnAction>

Source

fn start_panic(&mut self, msg: &str, unwind: UnwindAction) -> InterpResult<'tcx>

Start a panic in the interpreter with the given message as payload.

Source

fn start_panic_nounwind(&mut self, msg: &str) -> InterpResult<'tcx>

Start a non-unwinding panic in the interpreter with the given message as payload.

Source

fn assert_panic( &mut self, msg: &AssertMessage<'tcx>, unwind: UnwindAction, ) -> InterpResult<'tcx>

Implementors§

Source§

impl<'tcx> EvalContextExt<'tcx> for MiriInterpCx<'tcx>