]> git.lizzy.rs Git - rust.git/commitdiff
fix for Panic InterpError refactoring
authorRalf Jung <post@ralfj.de>
Thu, 13 Feb 2020 13:01:35 +0000 (14:01 +0100)
committerRalf Jung <post@ralfj.de>
Thu, 13 Feb 2020 13:01:35 +0000 (14:01 +0100)
src/machine.rs
src/operator.rs
src/shims/foreign_items.rs
src/shims/panic.rs

index f8c7168a5847c2637a76ddfccaae79b04e9ed438..5d933fe8a7f607657b001a7da76340b91b5e819b 100644 (file)
@@ -219,7 +219,7 @@ fn call_intrinsic(
     fn assert_panic(
         ecx: &mut InterpCx<'mir, 'tcx, Self>,
         span: Span,
-        msg: &AssertMessage<'tcx>,
+        msg: &mir::AssertMessage<'tcx>,
         unwind: Option<mir::BasicBlock>,
     ) -> InterpResult<'tcx> {
         ecx.assert_panic(span, msg, unwind)
index 7c932a907e725ed40c465cbc8b75681c9dd16a65..8860b949fe94246c861c294d0b908e925b227041 100644 (file)
@@ -105,7 +105,7 @@ fn pointer_offset_inbounds(
         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)`,
index 5b40f3c690631a7b8cc4dbe0e199a800e5362252..4a1d62d3567e89ed452ad70bfd46ab42b2a23cc8 100644 (file)
@@ -177,7 +177,7 @@ fn emulate_foreign_item(
                 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)?;
             }
index d676f046465741caca179b502867375044925305..880932ae0472256c0046e2abe70ab475a8ef28a2 100644 (file)
@@ -153,10 +153,10 @@ fn handle_stack_pop(
     fn assert_panic(
         &mut self,
         span: Span,
-        msg: &AssertMessage<'tcx>,
+        msg: &mir::AssertMessage<'tcx>,
         unwind: Option<mir::BasicBlock>,
     ) -> InterpResult<'tcx> {
-        use rustc::mir::interpret::PanicInfo::*;
+        use rustc::mir::AssertKind::*;
         let this = self.eval_context_mut();
 
         match msg {