Constify ptr::read and ptr::read_unaligned
This commit is contained in:
parent
1b77f8e6ea
commit
7594d2a084
@ -73,6 +73,7 @@
|
||||
#![feature(const_assert_type)]
|
||||
#![feature(const_discriminant)]
|
||||
#![feature(const_cell_into_inner)]
|
||||
#![feature(const_intrinsic_copy)]
|
||||
#![feature(const_checked_int_methods)]
|
||||
#![feature(const_euclidean_int_methods)]
|
||||
#![feature(const_float_classify)]
|
||||
|
@ -685,7 +685,8 @@ pub unsafe fn replace<T>(dst: *mut T, mut src: T) -> T {
|
||||
/// [valid]: self#safety
|
||||
#[inline]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub unsafe fn read<T>(src: *const T) -> T {
|
||||
#[rustc_const_unstable(feature = "const_ptr_read", issue = "none")]
|
||||
pub const unsafe fn read<T>(src: *const T) -> T {
|
||||
// `copy_nonoverlapping` takes care of debug_assert.
|
||||
let mut tmp = MaybeUninit::<T>::uninit();
|
||||
// SAFETY: the caller must guarantee that `src` is valid for reads.
|
||||
@ -784,7 +785,8 @@ pub unsafe fn read<T>(src: *const T) -> T {
|
||||
/// ```
|
||||
#[inline]
|
||||
#[stable(feature = "ptr_unaligned", since = "1.17.0")]
|
||||
pub unsafe fn read_unaligned<T>(src: *const T) -> T {
|
||||
#[rustc_const_unstable(feature = "const_ptr_read", issue = "none")]
|
||||
pub const unsafe fn read_unaligned<T>(src: *const T) -> T {
|
||||
// `copy_nonoverlapping` takes care of debug_assert.
|
||||
let mut tmp = MaybeUninit::<T>::uninit();
|
||||
// SAFETY: the caller must guarantee that `src` is valid for reads.
|
||||
|
Loading…
Reference in New Issue
Block a user