about summary refs log tree commit diff
path: root/tests/ui/static/raw-ref-static-mut.rs
blob: d4159fc65caa2507a44229ac1c5b08b82dda3e43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//@ 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;
}