When comparing structs that contain a NaN for equality, the results differ between 32- and 64-bit binaries on DMD 2.057 beta: // test2.d: import std.stdio; struct S { double d; // NaN } void main() { S s; writeln(s == S.init); } $ dmd test2.d -m32 $ ./test2 true $ dmd test2.d -m64 $ ./test2 false
According to Kenji *** This issue has been marked as a duplicate of issue 3789 ***
Umm. Yes, issue 3789 is not yet fixed, but it is front-end issue. Then -m32 and -m64 should output same wrong result 'true', but it doesn't. It seems to me that there is a back-end or a optimizer bug. (Not only issue 3789)
As of v2.064, this returns 'true' on a 64-bit system with -m64. Can anybody test -m32? (I don't have 32-bit phobos.)
Returns false for both 32 and 64 bit on windows with DMD 2.078.0.