diff --git a/src/librustc_mir/interpret/traits.rs b/src/librustc_mir/interpret/traits.rs index bbf063a18b69545be62812d992554c00d41b9914..5d2f268d2663915efb2ce318e6a9b97ded635ea4 100644 --- a/src/librustc_mir/interpret/traits.rs +++ b/src/librustc_mir/interpret/traits.rs @@ -128,15 +128,17 @@ pub fn read_size_and_align_from_vtable( ) -> InterpResult<'tcx, (Size, Align)> { let pointer_size = self.pointer_size(); // We check for size = 3*ptr_size, that covers the drop fn (unused here), - // the size, and the align. + // the size, and the align (which we read below). let vtable = self.memory.check_ptr_access( vtable, 3*pointer_size, self.tcx.data_layout.pointer_align.abi, )?.expect("cannot be a ZST"); let alloc = self.memory.get(vtable.alloc_id)?; - let size = alloc.read_ptr_sized(self, vtable.offset(pointer_size, self)?)? - .to_bits(pointer_size)? as u64; + let size = alloc.read_ptr_sized( + self, + vtable.offset(pointer_size, self)? + )?.to_bits(pointer_size)? as u64; let align = alloc.read_ptr_sized( self, vtable.offset(pointer_size * 2, self)?,