Align: add bytes_usize and bits_usize

This commit is contained in:
Ralf Jung 2024-05-01 15:57:33 +02:00
parent 20aa2d81e3
commit 65d74785d7
2 changed files with 11 additions and 1 deletions

View File

@ -742,11 +742,21 @@ impl Align {
1 << self.pow2
}
#[inline]
pub fn bytes_usize(self) -> usize {
self.bytes().try_into().unwrap()
}
#[inline]
pub fn bits(self) -> u64 {
self.bytes() * 8
}
#[inline]
pub fn bits_usize(self) -> usize {
self.bits().try_into().unwrap()
}
/// Computes the best alignment possible for the given offset
/// (the largest power of two that the offset is a multiple of).
///

View File

@ -266,7 +266,7 @@ pub(crate) mod rustc {
ty::Ref(lifetime, ty, mutability) => {
let ty_and_layout = cx.layout_of(*ty)?;
let align = ty_and_layout.align.abi.bytes() as usize;
let align = ty_and_layout.align.abi.bytes_usize();
let size = ty_and_layout.size.bytes_usize();
Ok(Tree::Ref(Ref {
lifetime: *lifetime,