Skip to content

Wrong output when comparing NaN value #418

@hyh

Description

@hyh

GreaterThanOrEqual/LessThanOrEqual generates wrong result when parameter is NaN.

        var p1 = Expression.Parameter(typeof(double));
        var e1 = Expression.GreaterThanOrEqual(p1, Expression.Constant(0.0));
        var e2 = Expression.Lambda<Func<double, bool>>(e1, p1);
        var cmp1 = e2.Compile();
        var cmp2 = e2.CompileFast();
        Console.WriteLine("{0} {1} {2}", double.NaN >= 0.0, cmp1(double.NaN), cmp2(double.NaN));

resulting:

False False True

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions