| #![warn(clippy::cmp_null)] | |
| use std::ptr; | |
| fn main() { | |
| let x = 0; | |
| let p: *const usize = &x; | |
| if p == ptr::null() { | |
| //~^ cmp_null | |
| println!("This is surprising!"); | |
| } | |
| if ptr::null() == p { | |
| //~^ cmp_null | |
| println!("This is surprising!"); | |
| } | |
| let mut y = 0; | |
| let m: *mut usize = &mut y; | |
| if m == ptr::null_mut() { | |
| //~^ cmp_null | |
| println!("This is surprising, too!"); | |
| } | |
| if ptr::null_mut() == m { | |
| //~^ cmp_null | |
| println!("This is surprising, too!"); | |
| } | |
| let _ = x as *const () == ptr::null(); | |
| //~^ cmp_null | |
| } | |
| fn issue15010() { | |
| let f: *mut i32 = std::ptr::null_mut(); | |
| debug_assert!(f != std::ptr::null_mut()); | |
| //~^ cmp_null | |
| } | |
| fn issue16281() { | |
| use std::ptr; | |
| struct Container { | |
| value: *const i32, | |
| } | |
| let x = Container { value: ptr::null() }; | |
| macro_rules! dot_value { | |
| ($obj:expr) => { | |
| $obj.value | |
| }; | |
| } | |
| if dot_value!(x) == ptr::null() { | |
| //~^ cmp_null | |
| todo!() | |
| } | |
| } |