#![feature(explicit_tail_calls)] #![allow(incomplete_features)] fn g(x: *const i32) { let _val = unsafe { *x }; //~ERROR: has been freed, so this pointer is dangling } fn f(_x: *const i32) { let local = 0; let ptr = &local as *const i32; become g(ptr) } fn main() { f(std::ptr::null()); }