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§
Sourcefn handle_miri_start_unwind(
&mut self,
payload: &OpTy<'tcx>,
) -> InterpResult<'tcx>
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.
Sourcefn handle_catch_unwind(
&mut self,
args: &[OpTy<'tcx>],
dest: &MPlaceTy<'tcx>,
ret: Option<BasicBlock>,
) -> InterpResult<'tcx>
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
.
fn handle_stack_pop_unwind( &mut self, extra: FrameExtra<'tcx>, unwinding: bool, ) -> InterpResult<'tcx, ReturnAction>
Sourcefn start_panic(&mut self, msg: &str, unwind: UnwindAction) -> InterpResult<'tcx>
fn start_panic(&mut self, msg: &str, unwind: UnwindAction) -> InterpResult<'tcx>
Start a panic in the interpreter with the given message as payload.
Sourcefn start_panic_nounwind(&mut self, msg: &str) -> InterpResult<'tcx>
fn start_panic_nounwind(&mut self, msg: &str) -> InterpResult<'tcx>
Start a non-unwinding panic in the interpreter with the given message as payload.