Taken from:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=323
---
import std.stdio;
void test(double x, double y)
{
double y2 = x + 1.0;
if (y != y2)
writeln("error");
}
void main()
{
immutable double x = .012; // Remove 'immutable', and 'error' is not
printed.
double y = x + 1.0;
test(x, y);
}
---
This is a GCC bug with a front-end fix. It may be a good idea to conform to
this behaviour in D (GDC) too. If not at least because the reference compiler
doesn't appear to optimise aggressively enough to get this problem.