www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15204] New: wrong code with -m32 -O -release (floating

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

          Issue ID: 15204
           Summary: wrong code with -m32 -O -release (floating points,
                    x86)
           Product: D
           Version: D2
          Hardware: x86
                OS: All
            Status: NEW
          Severity: blocker
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: ilyayaroshenko gmail.com

See debug code in https://github.com/D-Programming-Language/phobos/pull/3559 :

====
writeln("ttt ", [i, a, b, m, (a + b) / 2, (a + b) / 2.0, ], a <= m, m <= b);
====

produce text:
===
ttt [8, -5.50533e+307, 4.49423e+307, -8.08875e+307, -8.08875e+307,
-8.08875e+307]truetrue
===

So, (-5.50533e+307 + 4.49423e+307) / 2.0 = -8.08875e+307, but it is wrong.

32 code on FreeBSD/Linux fails, but on OSX works fine.

--
Oct 14 2015