//@ check-pass fn main() { f32(); f64(); } const TEST: bool = 5f32 == f32::NAN; //~^ WARN incorrect NaN comparison fn f32() { macro_rules! number { () => { 5f32 }; } let x = number!(); x == f32::NAN; //~^ WARN incorrect NaN comparison x != f32::NAN; //~^ WARN incorrect NaN comparison x < f32::NAN; //~^ WARN incorrect NaN comparison x > f32::NAN; //~^ WARN incorrect NaN comparison x <= f32::NAN; //~^ WARN incorrect NaN comparison x >= f32::NAN; //~^ WARN incorrect NaN comparison number!() == f32::NAN; //~^ WARN incorrect NaN comparison f32::NAN != number!(); //~^ WARN incorrect NaN comparison } fn f64() { macro_rules! number { () => { 5f64 }; } let x = number!(); x == f64::NAN; //~^ WARN incorrect NaN comparison x != f64::NAN; //~^ WARN incorrect NaN comparison x < f64::NAN; //~^ WARN incorrect NaN comparison x > f64::NAN; //~^ WARN incorrect NaN comparison x <= f64::NAN; //~^ WARN incorrect NaN comparison x >= f64::NAN; //~^ WARN incorrect NaN comparison number!() == f64::NAN; //~^ WARN incorrect NaN comparison f64::NAN != number!(); //~^ WARN incorrect NaN comparison }