option -ffloat-store has no effect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear gcc-help,

the option -ffloat-store has no effect on the following program.

If the program
   #include <stdio.h>
   double a,i,x;
   int main(int argc, char *argv[])
   {
       a = 1;
       for (i=1; i<100; i++) {
           x = i*(a/i);
           if (x != (i*(a/i))) printf("%f\n",i);
       }
   }
is compiled with gcc -O0 -ffloat-store
or with gcc -O0 -fno-float-store,
then the obtained binary executable program is the same (verified by diff)
and produces the output
   41.000000
   45.000000
   55.000000
   61.000000
   82.000000
   90.000000
   99.000000

So, there are two questions:
1. Why -ffloat-store has no effect?
2. Is there some other option needed to guarantee that after
   double a,i,x;
   ...
   x = i*(a/i);
the test 
   (x == i*(a/i))
is satisfied?

I use Fedora Core release 2 on Xeon processor.
gcc (GCC) 3.3.3 20040412 (Red Hat Linux 3.3.3-7)

Thank you in advance for any help.

Petr


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux