From 26d25220ef1e4757b167c0ddca0410d7eb20a9fa Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Thu, 13 Feb 2020 14:01:35 +0100 Subject: [PATCH 1/2] fix for Panic InterpError refactoring --- src/machine.rs | 2 +- src/operator.rs | 2 +- src/shims/foreign_items.rs | 2 +- src/shims/panic.rs | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/machine.rs b/src/machine.rs index f8c7168a584..5d933fe8a7f 100644 --- a/src/machine.rs +++ b/src/machine.rs @@ -219,7 +219,7 @@ impl<'mir, 'tcx> Machine<'mir, 'tcx> for Evaluator<'tcx> { fn assert_panic( ecx: &mut InterpCx<'mir, 'tcx, Self>, span: Span, - msg: &AssertMessage<'tcx>, + msg: &mir::AssertMessage<'tcx>, unwind: Option, ) -> InterpResult<'tcx> { ecx.assert_panic(span, msg, unwind) diff --git a/src/operator.rs b/src/operator.rs index 7c932a907e7..8860b949fe9 100644 --- a/src/operator.rs +++ b/src/operator.rs @@ -105,7 +105,7 @@ impl<'mir, 'tcx> EvalContextExt<'tcx> for super::MiriEvalContext<'mir, 'tcx> { let pointee_size = i64::try_from(self.layout_of(pointee_ty)?.size.bytes()).unwrap(); let offset = offset .checked_mul(pointee_size) - .ok_or_else(|| err_panic!(Overflow(mir::BinOp::Mul)))?; + .ok_or_else(|| err_ub_format!("overflow during offset comutation for inbounds pointer arithmetic"))?; // We do this first, to rule out overflows. let offset_ptr = ptr.ptr_signed_offset(offset, self)?; // What we need to check is that starting at `min(ptr, offset_ptr)`, diff --git a/src/shims/foreign_items.rs b/src/shims/foreign_items.rs index 5b40f3c6906..4a1d62d3567 100644 --- a/src/shims/foreign_items.rs +++ b/src/shims/foreign_items.rs @@ -177,7 +177,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx let items = this.read_scalar(args[0])?.to_machine_usize(this)?; let len = this.read_scalar(args[1])?.to_machine_usize(this)?; let size = - items.checked_mul(len).ok_or_else(|| err_panic!(Overflow(mir::BinOp::Mul)))?; + items.checked_mul(len).ok_or_else(|| err_ub_format!("overflow during calloc size computation"))?; let res = this.malloc(size, /*zero_init:*/ true, MiriMemoryKind::C); this.write_scalar(res, dest)?; } diff --git a/src/shims/panic.rs b/src/shims/panic.rs index d676f046465..880932ae047 100644 --- a/src/shims/panic.rs +++ b/src/shims/panic.rs @@ -153,10 +153,10 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx fn assert_panic( &mut self, span: Span, - msg: &AssertMessage<'tcx>, + msg: &mir::AssertMessage<'tcx>, unwind: Option, ) -> InterpResult<'tcx> { - use rustc::mir::interpret::PanicInfo::*; + use rustc::mir::AssertKind::*; let this = self.eval_context_mut(); match msg { From a61596d3332c9b2103404d6ee4f0b47fd6d569a5 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Fri, 14 Feb 2020 08:59:42 +0100 Subject: [PATCH 2/2] rustup --- rust-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-version b/rust-version index 89a8a40f1b2..a0f512a7270 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -2d2be570970d784db5539a1d309cd22b85be910a +21ed50522ddb998f5367229984a4510af578899f