Rollup merge of #91824 - woppopo:const_ptr_write_bytes, r=oli-obk
Make `(*mut T)::write_bytes` `const` Tracking issue: #86302
This commit is contained in:
commit
9e662d0c03
2 changed files with 17 additions and 1 deletions
|
@ -1069,8 +1069,9 @@ impl<T: ?Sized> *mut T {
|
|||
///
|
||||
/// [`ptr::write_bytes`]: crate::ptr::write_bytes()
|
||||
#[stable(feature = "pointer_methods", since = "1.26.0")]
|
||||
#[rustc_const_unstable(feature = "const_ptr_write", issue = "86302")]
|
||||
#[inline(always)]
|
||||
pub unsafe fn write_bytes(self, val: u8, count: usize)
|
||||
pub const unsafe fn write_bytes(self, val: u8, count: usize)
|
||||
where
|
||||
T: Sized,
|
||||
{
|
||||
|
|
|
@ -250,6 +250,21 @@ fn test_set_memory() {
|
|||
assert!(xs == [5u8; 20]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(not(bootstrap))]
|
||||
fn test_set_memory_const() {
|
||||
const XS: [u8; 20] = {
|
||||
let mut xs = [0u8; 20];
|
||||
let ptr = xs.as_mut_ptr();
|
||||
unsafe {
|
||||
ptr.write_bytes(5u8, xs.len());
|
||||
}
|
||||
xs
|
||||
};
|
||||
|
||||
assert!(XS == [5u8; 20]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_unsized_nonnull() {
|
||||
let xs: &[i32] = &[1, 2, 3];
|
||||
|
|
Loading…
Add table
Reference in a new issue