//@ check-pass use std::ptr; // see https://github.com/rust-lang/rust/issues/125833 // notionally, taking the address of a static mut is a safe operation, // as we only point at it instead of generating a true reference to it static mut NOWHERE: usize = 0; fn main() { let p2nowhere = ptr::addr_of!(NOWHERE); let p2nowhere = ptr::addr_of_mut!(NOWHERE); // testing both addr_of and the expression it directly expands to let raw2nowhere = &raw const NOWHERE; let raw2nowhere = &raw mut NOWHERE; }