July 13, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6303

           Summary: Order of float declaration changes NaN throwing
                    behavior
           Product: D
           Version: D2
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: andrej.mitrovich@gmail.com


--- Comment #0 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2011-07-12 17:23:32 PDT ---
import std.math;
void main()
{
   float foo;
   FloatingPointControl fpc;
   fpc.enableExceptions(FloatingPointControl.allExceptions);

   //~ float foo;
   auto x = foo / 0;
}

This won't throw unless you replace the first foo declaration with the second one. This only happens with NaNs. If you initialize the float and do an invalid operation then it throws:

import std.math;
void main()
{
   float foo = 0.0f;  // initialize it first
   FloatingPointControl fpc;
   fpc.enableExceptions(FloatingPointControl.allExceptions);

   auto x = foo / 0;  // throws, as it should
}

So this odd behavior only happens with NaNs.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
July 26, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=6303


Don <clugdbug@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |DUPLICATE


--- Comment #1 from Don <clugdbug@yahoo.com.au> 2013-07-26 07:47:40 PDT ---
This is a symptom of bug 9813.

*** This issue has been marked as a duplicate of issue 9813 ***

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