11 lines
463 B
Rust
11 lines
463 B
Rust
|
fn main() {
|
||
|
// Cast a function pointer such that when returning, the return value gets transmuted
|
||
|
// from raw ptr to reference. This is ABI-compatible, so it's not the call that
|
||
|
// should fail, but validation should.
|
||
|
fn f() -> *const i32 { 0usize as *const i32 }
|
||
|
|
||
|
let g: fn() -> &'static i32 = unsafe { std::mem::transmute(f as fn() -> *const i32) };
|
||
|
|
||
|
let _x = g(); //~ ERROR encountered 0, but expected something greater or equal to 1
|
||
|
}
|