// FIXME(static_mut_refs): Do not allow `static_mut_refs` lint | |
#![allow(static_mut_refs)] | |
use std::ptr::addr_of; | |
static mut FOO: i32 = 42; | |
static BAR: Foo = Foo(addr_of!(FOO)); | |
#[allow(dead_code)] | |
struct Foo(*const i32); | |
unsafe impl Sync for Foo {} | |
fn main() { | |
unsafe { | |
assert_eq!(*BAR.0, 42); | |
FOO = 5; | |
assert_eq!(FOO, 5); | |
assert_eq!(*BAR.0, 5); | |
} | |
} |