------- Comment #87 from bruno at clisp dot org 2006-12-21 15:08 ------- The option -ffloat-store, recommended by Richard Henderson, has the effect of decreasing the performance of floating-point operations for the entire compilation unit. If you want a minimal fix that does not affect other functions in the same compilation unit, you can use 'volatile double' instead of 'double'. It's like a one-shot -ffloat-store. Example:
#include <stdio.h> void test(double x, double y) { const volatile double y2 = x + 1.0; if (y != y2) printf("error\n"); } void main() { const double x = .012; const double y = x + 1.0; test(x, y); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=323