On 13 September 2015 at 19:46, <cinap_lenrek@felloff.net> wrote:
so we really want to have n->type == double/float

no, it happens to be wrong for ordinary integers too:


int
x(int a, double d)
{
a += (a += d);
return a;
}

should have the outer += done as int using the result of a += d as stored back into `a' and read back,
but instead it incorrectly does two floating-point adds. it evidently isn't that common to feed the result
of += etc back into a computation, at least with mixed modes, or this would have been more troublesome.