rust/tests/compile-fail/validity/cast_fn_ptr1.rs
2019-02-26 18:37:45 +00:00

12 lines
425 B
Rust

fn main() {
// Cast a function pointer such that on a call, the argument 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(_x: &i32) { }
let g: fn(*const i32) = unsafe { std::mem::transmute(f as fn(&i32)) };
g(0usize as *const i32)
//~^ ERROR encountered 0, but expected something greater or equal to 1
}