Rollup merge of #123967 - RalfJung:static_mut_refs, r=Nilstrieb

static_mut_refs: use raw pointers to remove the remaining FIXME

Using `SyncUnsafeCell` would not make a lot of sense IMO.
This commit is contained in:
许杰友 Jieyou Xu (Joe) 2024-04-20 21:45:35 +01:00 committed by GitHub
commit be9d7ca977

View File

@ -1,4 +1,13 @@
#![feature(no_core, lang_items, never_type, linkage, extern_types, thread_local, repr_simd)] #![feature(
no_core,
lang_items,
never_type,
linkage,
extern_types,
thread_local,
repr_simd,
raw_ref_op
)]
#![no_core] #![no_core]
#![allow(dead_code, non_camel_case_types, internal_features)] #![allow(dead_code, non_camel_case_types, internal_features)]
@ -112,9 +121,7 @@ fn start<T: Termination + 'static>(
static mut NUM: u8 = 6 * 7; static mut NUM: u8 = 6 * 7;
// FIXME: Use `SyncUnsafeCell` instead of allowing `static_mut_refs` lint static NUM_REF: &'static u8 = unsafe { &*&raw const NUM };
#[allow(static_mut_refs)]
static NUM_REF: &'static u8 = unsafe { &NUM };
unsafe fn zeroed<T>() -> T { unsafe fn zeroed<T>() -> T {
let mut uninit = MaybeUninit { uninit: () }; let mut uninit = MaybeUninit { uninit: () };