about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2019-11-04 13:07:36 +0100
committerRalf Jung <post@ralfj.de>2019-11-04 13:32:38 +0100
commitda0c7c664ba19339c606b3384ef6eebb6c0e4105 (patch)
tree79ddec1dd24ed3f05eaf01a25ab4dd84721856bd
parentf49f38871389041671cc710a044e8360091840a3 (diff)
downloadrust-da0c7c664ba19339c606b3384ef6eebb6c0e4105.tar.gz
rust-da0c7c664ba19339c606b3384ef6eebb6c0e4105.zip
Miri: offset_from: do int-to-ptr casts when needed
-rw-r--r--src/librustc_mir/interpret/intrinsics.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/librustc_mir/interpret/intrinsics.rs b/src/librustc_mir/interpret/intrinsics.rs
index c08e4c89609..0b8e3ff6736 100644
--- a/src/librustc_mir/interpret/intrinsics.rs
+++ b/src/librustc_mir/interpret/intrinsics.rs
@@ -251,8 +251,8 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
             }
 
             "ptr_offset_from" => {
-                let a = self.read_immediate(args[0])?.to_scalar()?.to_ptr()?;
-                let b = self.read_immediate(args[1])?.to_scalar()?.to_ptr()?;
+                let a = self.force_ptr(self.read_immediate(args[0])?.to_scalar()?)?;
+                let b = self.force_ptr(self.read_immediate(args[1])?.to_scalar()?)?;
                 if a.alloc_id != b.alloc_id {
                     throw_ub_format!(
                         "ptr_offset_from cannot compute offset of pointers into different \