//@ 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; | |
} |