| //@ run-rustfix | |
| // Suggest providing a std::ptr::null{,_mut}() to a function that takes in a raw | |
| // pointer if a literal 0 was provided by the user. | |
| extern "C" { | |
| fn foo(ptr: *const u8); | |
| fn foo_mut(ptr: *mut u8); | |
| fn usize(ptr: *const usize); | |
| fn usize_mut(ptr: *mut usize); | |
| } | |
| fn main() { | |
| unsafe { | |
| foo(std::ptr::null()); | |
| //~^ ERROR mismatched types [E0308] | |
| //~| HELP if you meant to create a null pointer, use `std::ptr::null()` | |
| foo_mut(std::ptr::null_mut()); | |
| //~^ ERROR mismatched types [E0308] | |
| //~| HELP if you meant to create a null pointer, use `std::ptr::null_mut()` | |
| usize(std::ptr::null()); | |
| //~^ ERROR mismatched types [E0308] | |
| //~| HELP if you meant to create a null pointer, use `std::ptr::null()` | |
| usize_mut(std::ptr::null_mut()); | |
| //~^ ERROR mismatched types [E0308] | |
| //~| HELP if you meant to create a null pointer, use `std::ptr::null_mut()` | |
| } | |
| } |