Skip to content

Commit c195f7c

Browse files
committed
Optimize pointer::as_aligned_to
1 parent 1f5d8d4 commit c195f7c

File tree

2 files changed

+2
-8
lines changed

2 files changed

+2
-8
lines changed

library/core/src/ptr/const_ptr.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -1336,11 +1336,8 @@ impl<T: ?Sized> *const T {
13361336
panic!("is_aligned_to: align is not a power-of-two");
13371337
}
13381338

1339-
// SAFETY: `is_power_of_two()` will return `false` for zero.
1340-
unsafe { core::intrinsics::assume(align != 0) };
1341-
13421339
// Cast is needed for `T: !Sized`
1343-
self.cast::<u8>().addr() % align == 0
1340+
self.cast::<u8>().addr() & align - 1 == 0
13441341
}
13451342
}
13461343

library/core/src/ptr/mut_ptr.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -1614,11 +1614,8 @@ impl<T: ?Sized> *mut T {
16141614
panic!("is_aligned_to: align is not a power-of-two");
16151615
}
16161616

1617-
// SAFETY: `is_power_of_two()` will return `false` for zero.
1618-
unsafe { core::intrinsics::assume(align != 0) };
1619-
16201617
// Cast is needed for `T: !Sized`
1621-
self.cast::<u8>().addr() % align == 0
1618+
self.cast::<u8>().addr() & align - 1 == 0
16221619
}
16231620
}
16241621

0 commit comments

Comments
 (0)