| //@ignore-target: windows # File handling is not implemented yet |
| //@compile-flags: -Zmiri-disable-isolation |
| use std::ffi::{CString, OsStr, c_char, c_int}; |
| use std::os::unix::ffi::OsStrExt; |
| |
| extern "C" { |
| fn open(path: *const c_char, oflag: c_int, ...) -> c_int; |
| // correct fd type is i32 |
| fn close(fd: u32) -> c_int; |
| } |
| |
| fn main() { |
| let c_path = CString::new(OsStr::new("./text").as_bytes()).expect("CString::new failed"); |
| let fd = unsafe { |
| open(c_path.as_ptr(), /* value does not matter */ 0) |
| } as u32; |
| let _ = unsafe { |
| close(fd); |
| //~^ ERROR: type i32 passing argument of type u32 |
| }; |
| } |