Adriaan van Os wrote:
Waldek Hebisch wrote:
I guess that the constant 1.0 is internally long double. In any case with the code below (which I belive is accurate translation of your functon) I got the same error from C compiler:
void R(double * r1, double *r2, long double * c) { if (*r1 != *r2) { *r1 = *r2 - *c; } }
Yes, it's a backend bug.
Fixed in gcc mainline for the powerpc-apple-darwin target, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11848. Geoff Keating wrote:
Note that even when this is fixed, -mlong-double-128 (and especially this testcase) won't work on Darwin because the library support for it is not there. That's not a GCC problem.
Regards,
Adriaan van Os