X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=compiler%2Frustc_mir%2Fsrc%2Finterpret%2Foperator.rs;h=79b493d74e19b47006653f8bbd6fb0ccad7012e0;hb=d4f7dd670226a4235ea4cf900c14eb9c6a536843;hp=3737f8781c7ae2a333dc02cfd9405717f4eeabaa;hpb=5aff6dd07a562a2cba3c57fc3460a72acb6bef46;p=rust.git diff --git a/compiler/rustc_mir/src/interpret/operator.rs b/compiler/rustc_mir/src/interpret/operator.rs index 3737f8781c7..79b493d74e1 100644 --- a/compiler/rustc_mir/src/interpret/operator.rs +++ b/compiler/rustc_mir/src/interpret/operator.rs @@ -318,8 +318,8 @@ pub fn overflowing_binary_op( right.layout.ty ); - let l = self.force_bits(left.to_scalar()?, left.layout.size)?; - let r = self.force_bits(right.to_scalar()?, right.layout.size)?; + let l = left.to_scalar()?.to_bits(left.layout.size)?; + let r = right.to_scalar()?.to_bits(right.layout.size)?; self.binary_int_op(bin_op, l, left.layout, r, right.layout) } _ if left.layout.ty.is_any_ptr() => { @@ -386,7 +386,7 @@ pub fn overflowing_unary_op( } _ => { assert!(layout.ty.is_integral()); - let val = self.force_bits(val, layout.size)?; + let val = val.to_bits(layout.size)?; let (res, overflow) = match un_op { Not => (self.truncate(!val, layout), false), // bitwise negation, then truncate Neg => {