diff --git a/library/alloc/src/collections/btree/node.rs b/library/alloc/src/collections/btree/node.rs index da766b67a328f..7325439c11a2f 100644 --- a/library/alloc/src/collections/btree/node.rs +++ b/library/alloc/src/collections/btree/node.rs @@ -1699,7 +1699,7 @@ unsafe fn slice_insert(slice: &mut [MaybeUninit], idx: usize, val: T) { if len > idx + 1 { ptr::copy(slice_ptr.add(idx), slice_ptr.add(idx + 1), len - idx - 1); } - (*slice_ptr.add(idx)).write(val); + slice_ptr.add(idx).cast::().write(val); } } @@ -1713,7 +1713,7 @@ unsafe fn slice_remove(slice: &mut [MaybeUninit], idx: usize) -> T { let len = slice.len(); debug_assert!(idx < len); let slice_ptr = slice.as_mut_ptr(); - let ret = (*slice_ptr.add(idx)).assume_init_read(); + let ret = slice_ptr.add(idx).cast::().read(); ptr::copy(slice_ptr.add(idx + 1), slice_ptr.add(idx), len - idx - 1); ret } diff --git a/library/alloc/src/string.rs b/library/alloc/src/string.rs index c436adf70067a..a6dec61957d2c 100644 --- a/library/alloc/src/string.rs +++ b/library/alloc/src/string.rs @@ -2909,7 +2909,7 @@ impl Drop for Drain<'_> { unsafe { // Use Vec::drain. "Reaffirm" the bounds checks to avoid // panic code being inserted again. - let self_vec = (*self.string).as_mut_vec(); + let self_vec = (&mut *self.string).as_mut_vec(); if self.start <= self.end && self.end <= self_vec.len() { self_vec.drain(self.start..self.end); } diff --git a/library/alloc/src/vec/mod.rs b/library/alloc/src/vec/mod.rs index bbbdc3aa2a2d3..1c543d5517a33 100644 --- a/library/alloc/src/vec/mod.rs +++ b/library/alloc/src/vec/mod.rs @@ -1942,7 +1942,7 @@ impl Vec { #[cfg(not(no_global_oom_handling))] #[inline] unsafe fn append_elements(&mut self, other: *const [T]) { - let count = unsafe { (*other).len() }; + let count = other.len(); self.reserve(count); let len = self.len(); unsafe { ptr::copy_nonoverlapping(other as *const T, self.as_mut_ptr().add(len), count) }; diff --git a/library/proc_macro/src/bridge/closure.rs b/library/proc_macro/src/bridge/closure.rs index d371ae3cea098..1255f35d417e4 100644 --- a/library/proc_macro/src/bridge/closure.rs +++ b/library/proc_macro/src/bridge/closure.rs @@ -19,7 +19,7 @@ struct Env; impl<'a, A, R, F: FnMut(A) -> R> From<&'a mut F> for Closure<'a, A, R> { fn from(f: &'a mut F) -> Self { unsafe extern "C" fn call R>(env: *mut Env, arg: A) -> R { - (*(env as *mut _ as *mut F))(arg) + (&mut *(env as *mut _ as *mut F))(arg) } Closure { call: call::, env: f as *mut _ as *mut Env, _marker: PhantomData } } diff --git a/library/std/src/sync/mpsc/oneshot.rs b/library/std/src/sync/mpsc/oneshot.rs index 0e259b8aecb9a..625b6c0bf8640 100644 --- a/library/std/src/sync/mpsc/oneshot.rs +++ b/library/std/src/sync/mpsc/oneshot.rs @@ -86,7 +86,7 @@ impl Packet { NothingSent => {} _ => panic!("sending on a oneshot that's already sent on "), } - assert!((*self.data.get()).is_none()); + assert!((&*self.data.get()).is_none()); ptr::write(self.data.get(), Some(t)); ptr::write(self.upgrade.get(), SendUsed); @@ -289,7 +289,7 @@ impl Packet { // We then need to check to see if there was an upgrade requested, // and if so, the upgraded port needs to have its selection aborted. DISCONNECTED => unsafe { - if (*self.data.get()).is_some() { + if (&*self.data.get()).is_some() { Ok(true) } else { match ptr::replace(self.upgrade.get(), SendUsed) { diff --git a/library/std/src/sys/unix/stack_overflow.rs b/library/std/src/sys/unix/stack_overflow.rs index 75a5c0f927982..7a26755c5f805 100644 --- a/library/std/src/sys/unix/stack_overflow.rs +++ b/library/std/src/sys/unix/stack_overflow.rs @@ -81,7 +81,7 @@ mod imp { _data: *mut libc::c_void, ) { let guard = thread_info::stack_guard().unwrap_or(0..0); - let addr = (*info).si_addr() as usize; + let addr = (&*info).si_addr() as usize; // If the faulting address is within the guard page, then we print a // message saying so and abort. diff --git a/library/std/src/thread/local.rs b/library/std/src/thread/local.rs index 5d267891bb0ed..4e6eae3e5aae5 100644 --- a/library/std/src/thread/local.rs +++ b/library/std/src/thread/local.rs @@ -799,7 +799,7 @@ mod lazy { // the inner cell nor mutable reference to the Option inside said // cell. This make it safe to hand a reference, though the lifetime // of 'static is itself unsafe, making the get method unsafe. - unsafe { (*self.inner.get()).as_ref() } + unsafe { (&*self.inner.get()).as_ref() } } /// The caller must ensure that no reference is active: this method @@ -853,7 +853,7 @@ mod lazy { #[allow(unused)] pub unsafe fn take(&mut self) -> Option { // SAFETY: See doc comment for this method. - unsafe { (*self.inner.get()).take() } + unsafe { (&mut *self.inner.get()).take() } } } }