Skip to content

Commit 212f233

Browse files
committed
Replace to_bits by force_bits and move size as parameter
1 parent 666bebc commit 212f233

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

src/librustc_mir/interpret/eval_context.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -783,7 +783,11 @@ impl<'a, 'mir, 'tcx: 'mir, M: Machine<'a, 'mir, 'tcx>> InterpretCx<'a, 'mir, 'tc
783783
}
784784

785785
#[inline(always)]
786-
pub fn force_bits(&self, scalar: Scalar<M::PointerTag>) -> InterpResult<'tcx, u128> {
787-
self.memory.force_bits(scalar)
786+
pub fn force_bits(
787+
&self,
788+
scalar: Scalar<M::PointerTag>,
789+
size: Size
790+
) -> InterpResult<'tcx, u128> {
791+
self.memory.force_bits(scalar, size)
788792
}
789793
}

src/librustc_mir/interpret/memory.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -890,8 +890,12 @@ impl<'a, 'mir, 'tcx, M: Machine<'a, 'mir, 'tcx>> Memory<'a, 'mir, 'tcx, M> {
890890
}
891891
}
892892

893-
pub fn force_bits(&self, scalar: Scalar<M::PointerTag>) -> InterpResult<'tcx, u128> {
894-
match scalar.to_bits_or_ptr(self.pointer_size(), self) {
893+
pub fn force_bits(
894+
&self,
895+
scalar: Scalar<M::PointerTag>,
896+
size: Size
897+
) -> InterpResult<'tcx, u128> {
898+
match scalar.to_bits_or_ptr(size, self) {
895899
Ok(bits) => Ok(bits),
896900
Err(ptr) => Ok(M::ptr_to_int(ptr, &self.extra)? as u128)
897901
}

src/librustc_mir/interpret/operator.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ impl<'a, 'mir, 'tcx, M: Machine<'a, 'mir, 'tcx>> InterpretCx<'a, 'mir, 'tcx, M>
347347
}
348348
_ => {
349349
assert!(layout.ty.is_integral());
350-
let val = val.to_bits(layout.size)?;
350+
let val = self.force_bits(val, layout.size)?;
351351
let res = match un_op {
352352
Not => !val,
353353
Neg => {

src/librustc_mir/interpret/place.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ where
470470
let layout = self.layout_of(self.tcx.types.usize)?;
471471
let n = self.access_local(self.frame(), local, Some(layout))?;
472472
let n = self.read_scalar(n)?;
473-
let n = n.to_bits(self.tcx.data_layout.pointer_size)?;
473+
let n = self.force_bits(n.not_undef()?, self.tcx.data_layout.pointer_size)?;
474474
self.mplace_field(base, u64::try_from(n).unwrap())?
475475
}
476476

0 commit comments

Comments
 (0)