// Compiler: | |
// | |
// Run-time: | |
// status: 0 | |
use std::mem::MaybeUninit; | |
#[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); | |
} |