[Issue 20451] comparing identical floating points does not work on Win32 and FreeBSD32.

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Dec 15 19:39:44 UTC 2019


https://issues.dlang.org/show_bug.cgi?id=20451

--- Comment #2 from jacob <look.at.me.pee.please at gmail.com> ---
As for why it works on 64-bit and Linux, they don't use the FPU there. So
essentially the pow() function is returning a double in a XMM register.

So if you run the above code I posted with -m64, it does a check using the FPU.
Which causes the assert to fail, cause of course it is now testing a double
(from pow()) and a real.

The whole situation is really messed up and it seems that it is flip flopping
between double and real cause in new hardware nothing actually supports 80-bit
floats it's dead. 

Really real should mean 128-bit float, it is the next logical step over 80-bit
floats.

--


More information about the Digitalmars-d-bugs mailing list