2024-02-16 20:02:50 +00:00
|
|
|
//@ run-rustfix
|
2023-02-05 04:13:16 +00:00
|
|
|
|
|
|
|
// 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());
|
|
|
|
//~^ mismatched types [E0308]
|
|
|
|
//~| if you meant to create a null pointer, use `std::ptr::null()`
|
|
|
|
foo_mut(std::ptr::null_mut());
|
|
|
|
//~^ mismatched types [E0308]
|
|
|
|
//~| if you meant to create a null pointer, use `std::ptr::null_mut()`
|
|
|
|
usize(std::ptr::null());
|
|
|
|
//~^ mismatched types [E0308]
|
|
|
|
//~| if you meant to create a null pointer, use `std::ptr::null()`
|
|
|
|
usize_mut(std::ptr::null_mut());
|
|
|
|
//~^ mismatched types [E0308]
|
|
|
|
//~| if you meant to create a null pointer, use `std::ptr::null_mut()`
|
|
|
|
}
|
|
|
|
}
|