//@ check-pass #![deny(dangling_pointers_from_temporaries)] // The original code example comes from bindgen-produced code for emacs. // Hence the name of the test. // https://github.com/rust-lang/rust/pull/128985#issuecomment-2338951363 use std::ffi::{c_char, CString}; fn read(ptr: *const c_char) -> c_char { unsafe { ptr.read() } } fn main() { let fnptr: Option c_char> = Some(read); let x = fnptr.unwrap()(CString::new("foo").unwrap().as_ptr()); assert_eq!(x as u8, b'f'); }