| // Compiler: | |
| // | |
| // Run-time: | |
| // status: 0 | |
| use std::mem::MaybeUninit; | |
| #[allow(dead_code)] | |
| #[derive(Debug)] | |
| struct Struct { | |
| pointer: *const (), | |
| func: unsafe fn(*const ()), | |
| } | |
| fn func(_ptr: *const ()) { | |
| } | |
| fn main() { | |
| let mut x = MaybeUninit::<&Struct>::uninit(); | |
| x.write(&Struct { | |
| pointer: std::ptr::null(), | |
| func, | |
| }); | |
| let x = unsafe { x.assume_init() }; | |
| let value = unsafe { (x as *const Struct).read_volatile() }; | |
| println!("{:?}", value); | |
| } |