mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-28 03:07:24 +03:00
61 lines
1.0 KiB
Rust
61 lines
1.0 KiB
Rust
#![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!()
|
|
}
|
|
}
|