fn foo() -> i32 { let a = 15; let p_a = &a as *const i32; unsafe { *p_a } } unsafe fn bar() -> i32 { let a = 15; let p_a = &a as *const i32; *p_a } fn baz() -> i32 { let a = 15; let p_a = &a as *const i32; *p_a // { dg-error "dereference of raw pointer" } } unsafe fn qux() -> i32 { let a = 15; let p_a = &a as *const i32; unsafe {} *p_a }