27 lines
471 B
Rust
27 lines
471 B
Rust
|
// 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);
|
||
|
}
|