http://d.puremagic.com/issues/show_bug.cgi?id=4155

           Summary: return of NaN to temporary fails equality test
           Product: D
           Version: unspecified
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nob...@puremagic.com
        ReportedBy: melvin.cur...@googlemail.com


--- Comment #0 from melvin.cur...@googlemail.com 2010-05-03 09:06:03 PDT ---
The problem is found in both DMD 1.059 and 2.044 and is demonstrated by the
following program - every answer should be false, but that is not the case.

import std.stdio;

T getnan(T)() { return T.nan; }

void main()
{
    float  f = 0.0;
    double d = 0.0;
    real   r = 0.0;

    writefln("before assigning NaN, float:%s, double:%s, real:%s", f, d, r);

    f = getnan!(float)();
    d = getnan!(double)();
    r = getnan!(real)();

    writefln(" float test, literal:%s, assign:%s, temporary:%s", (float.nan ==
0), (f == 0), (getnan!(float)() == 0));
    writefln("double test, literal:%s, assign:%s, temporary:%s", (double.nan ==
0), (d == 0), (getnan!(double)() == 0));
    writefln("  real test, literal:%s, assign:%s, temporary:%s", (real.nan ==
0), (r == 0), (getnan!(real)() == 0));
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to