From ac844986d8f5646b686e2a5619e5a90372953b38 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sun, 6 Mar 2022 19:11:31 -0500 Subject: [PATCH] use singed_int_max/min helper methods --- compiler/rustc_const_eval/src/interpret/intrinsics.rs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/compiler/rustc_const_eval/src/interpret/intrinsics.rs b/compiler/rustc_const_eval/src/interpret/intrinsics.rs index 6578db04c07eb..63c0248993f6c 100644 --- a/compiler/rustc_const_eval/src/interpret/intrinsics.rs +++ b/compiler/rustc_const_eval/src/interpret/intrinsics.rs @@ -493,23 +493,20 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> { // Negative overflow not possible since the positive first term // can only increase an (in range) negative term for addition // or corresponding negated positive term for subtraction - Scalar::from_uint( - (1u128 << (num_bits - 1)) - 1, // max positive - Size::from_bits(num_bits), - ) + Scalar::from_int(size.signed_int_max(), size) } else { // Positive overflow not possible for similar reason // max negative - Scalar::from_uint(1u128 << (num_bits - 1), Size::from_bits(num_bits)) + Scalar::from_int(size.signed_int_min(), size) } } else { // unsigned if matches!(mir_op, BinOp::Add) { // max unsigned - Scalar::from_uint(size.unsigned_int_max(), Size::from_bits(num_bits)) + Scalar::from_uint(size.unsigned_int_max(), size) } else { // underflow to 0 - Scalar::from_uint(0u128, Size::from_bits(num_bits)) + Scalar::from_uint(0u128, size) } } } else {