Bug?

H. S. Teoh via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Oct 23 11:51:09 PDT 2014


On Thu, Oct 23, 2014 at 02:26:52PM -0400, Steven Schveighoffer via Digitalmars-d-learn wrote:
> On 10/23/14 2:18 PM, deed wrote:
[...]
> >Now, if fun's body is { return sin(a); }, the behaviour changes to:
> >
> >auto c = fun(100);
> >auto d = fun(100);
> >
> >assert (c == d);              // Ok
> >assert (fun(100) != fun(100)) // I have a hard time understanding
> >                               // this is correct behaviour
> 
> Tried that out, it does not fail on my machine. Can you be more
> specific on your testing? What compiler/platform? Stock compiler, or
> did you build it yourself?
[...]

A similar problem was recently (about 2-3 weeks ago IIRC) seen in one of
the Phobos PR's. It appears to be related to the autoextension of float
to double (or double to real, I forget which) in certain contexts on
Windows.  @deed Could you please try to reduce the failing test to a
minimal code example, and post a disassembly of the concerned
function(s)? This could either be a subtle codegen bug, or something
more fundamentally broken with 80-bit real support.


T

-- 
Making non-nullable pointers is just plugging one hole in a cheese grater. -- Walter Bright


More information about the Digitalmars-d-learn mailing list