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: nob...@puremagic.com ReportedBy: andrej.mitrov...@gmail.com --- Comment #0 from Andrej Mitrovic <andrej.mitrov...@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: -------