unwind: Option<mir::BasicBlock>,
) -> InterpResult<'tcx>;
+ /// Called to evaluate `Abort` MIR terminator.
+ fn abort(_ecx: &mut InterpCx<'mir, 'tcx, Self>) -> InterpResult<'tcx> {
+ throw_unsup_format!("aborting execution is not supported");
+ }
+
/// Called for all binary operations where the LHS has pointer type.
///
/// Returns a (value, overflowed) pair if the operation succeeded
}
}
+ Abort => {
+ M::abort(self)?;
+ }
+
// When we encounter Resume, we've finished unwinding
// cleanup for the current stack frame. We pop it in order
// to continue unwinding the next frame
| FalseEdges { .. }
| FalseUnwind { .. }
| Yield { .. }
- | GeneratorDrop
- | Abort => bug!("{:#?} should have been eliminated by MIR pass", terminator.kind),
+ | GeneratorDrop => {
+ bug!("{:#?} should have been eliminated by MIR pass", terminator.kind)
+ }
}
Ok(())