From 35cbff9a4c977663e71a8d6a0c010a8a3faccdea Mon Sep 17 00:00:00 2001 From: Waffle Lapkin Date: Mon, 6 Jul 2026 17:18:27 +0200 Subject: [PATCH] rewrite `Align::max_for_target` in a more obvious way --- compiler/rustc_abi/src/lib.rs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/compiler/rustc_abi/src/lib.rs b/compiler/rustc_abi/src/lib.rs index e86c7f15e9679..c2069432e6f8e 100644 --- a/compiler/rustc_abi/src/lib.rs +++ b/compiler/rustc_abi/src/lib.rs @@ -36,6 +36,7 @@ even other Rust compilers, such as rust-analyzer! */ +use std::cmp::min; use std::fmt; #[cfg(feature = "nightly")] use std::iter::Step; @@ -1060,14 +1061,8 @@ impl Align { /// Either `1 << (pointer_bits - 1)` or [`Align::MAX`], whichever is smaller. #[inline] pub fn max_for_target(tdl: &TargetDataLayout) -> Align { - let pointer_bits = tdl.pointer_size().bits(); - if let Ok(pointer_bits) = u8::try_from(pointer_bits) - && pointer_bits <= Align::MAX.pow2 - { - Align { pow2: pointer_bits - 1 } - } else { - Align::MAX - } + let pointer_bits = u8::try_from(tdl.pointer_size().bits()).unwrap(); + min(Align { pow2: pointer_bits - 1 }, Align::MAX) } #[inline]