D-Programming-Language/dmd — pull request #3590 by donc (2014-05-26 12:57:56+00:00)
Title: Fix bug 9937 CTFE floats don't overflow correctly

This fixes the bug in comment 4 of bug 9937.
https://issues.dlang.org/show_bug.cgi?id=9937#c4

Although CTFE floats may use higher precision than is available on the target machine, it is impossible for that extra precision to survive to runtime.
This commit forces the extra bits to be discarded at the end of CTFE, rather than in the glue layer. This eliminates the bizarre anomalies in bug 9937 where a variable has two values at the same time (!) It also opens the way for CTFE to calculate with much higher precision than is available at runtime.

This pull request does not affect floating point overflow inside CTFE, which is what Walter found controversial in that big report. It's only the transition from CTFE to runtime which is affected.