Skip to content

Commit 3677c5b

Browse files
committed
the alignment checks on access can no longer fail now
1 parent 5800bec commit 3677c5b

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/librustc_mir/interpret/operand.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,9 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
238238
return Ok(None);
239239
}
240240

241-
let ptr = match self.check_mplace_access(mplace, None)? {
241+
let ptr = match self.check_mplace_access(mplace, None)
242+
.expect("places should be checked on creation")
243+
{
242244
Some(ptr) => ptr,
243245
None => return Ok(Some(ImmTy { // zero-sized type
244246
imm: Immediate::Scalar(Scalar::zst().into()),

src/librustc_mir/interpret/place.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,9 @@ where
763763
// to handle padding properly, which is only correct if we never look at this data with the
764764
// wrong type.
765765

766-
let ptr = match self.check_mplace_access(dest, None)? {
766+
let ptr = match self.check_mplace_access(dest, None)
767+
.expect("places should be checked on creation")
768+
{
767769
Some(ptr) => ptr,
768770
None => return Ok(()), // zero-sized access
769771
};
@@ -866,8 +868,10 @@ where
866868
});
867869
assert_eq!(src.meta, dest.meta, "Can only copy between equally-sized instances");
868870

869-
let src = self.check_mplace_access(src, Some(size))?;
870-
let dest = self.check_mplace_access(dest, Some(size))?;
871+
let src = self.check_mplace_access(src, Some(size))
872+
.expect("places should be checked on creation");
873+
let dest = self.check_mplace_access(dest, Some(size))
874+
.expect("places should be checked on creation");
871875
let (src_ptr, dest_ptr) = match (src, dest) {
872876
(Some(src_ptr), Some(dest_ptr)) => (src_ptr, dest_ptr),
873877
(None, None) => return Ok(()), // zero-sized copy

0 commit comments

Comments
 (0)