// test the deref_nullptr lint #![deny(deref_nullptr)] use std::ptr; struct Struct { field: u8, } fn f() { unsafe { let a = 1; let ub = *(a as *const i32); let ub = *(0 as *const i32); //~^ ERROR dereferencing a null pointer let ub = *ptr::null::(); //~^ ERROR dereferencing a null pointer let ub = *ptr::null_mut::(); //~^ ERROR dereferencing a null pointer let ub = *(ptr::null::() as *const i32); //~^ ERROR dereferencing a null pointer let ub = *(ptr::null::() as *mut i32 as *mut usize as *const u8); //~^ ERROR dereferencing a null pointer let ub = &*ptr::null::(); //~^ ERROR dereferencing a null pointer let ub = &*ptr::null_mut::(); //~^ ERROR dereferencing a null pointer ptr::addr_of!(*ptr::null::()); // ^^ OKAY ptr::addr_of_mut!(*ptr::null_mut::()); // ^^ OKAY let offset = ptr::addr_of!((*ptr::null::()).field); //~^ ERROR dereferencing a null pointer } } fn main() {}