diff options
| -rw-r--r-- | library/core/src/ptr/const_ptr.rs | 3 | ||||
| -rw-r--r-- | library/core/src/ptr/mut_ptr.rs | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/library/core/src/ptr/const_ptr.rs b/library/core/src/ptr/const_ptr.rs index 9bbdfd1cbb5..824b3fad6c3 100644 --- a/library/core/src/ptr/const_ptr.rs +++ b/library/core/src/ptr/const_ptr.rs @@ -1320,6 +1320,9 @@ impl<T: ?Sized> *const T { panic!("is_aligned_to: align is not a power-of-two"); } + // SAFETY: `is_power_of_two()` will return `false` for zero. + unsafe { core::intrinsics::assume(align != 0) }; + // Cast is needed for `T: !Sized` self.cast::<u8>().addr() % align == 0 } diff --git a/library/core/src/ptr/mut_ptr.rs b/library/core/src/ptr/mut_ptr.rs index 21220e2a486..4613262dad9 100644 --- a/library/core/src/ptr/mut_ptr.rs +++ b/library/core/src/ptr/mut_ptr.rs @@ -1589,6 +1589,9 @@ impl<T: ?Sized> *mut T { panic!("is_aligned_to: align is not a power-of-two"); } + // SAFETY: `is_power_of_two()` will return `false` for zero. + unsafe { core::intrinsics::assume(align != 0) }; + // Cast is needed for `T: !Sized` self.cast::<u8>().addr() % align == 0 } |
