------- Additional Comments From Thomas dot Koenig at online dot de  2004-12-25 
14:32 -------
I find strange that the C equivalent does not
compare an NaN equal to itself, even with
-O3 -ffast-math :
$ cat nan-check.c
#include <stdio.h>
#include <math.h>

int equality(double a, double b);

int main()
{
    double a, b, c;
    a = 0.0;
    b = 0.0;
    c = a/b;
    if (equality(c,c)) {
        printf("%f compares equal to itself\n",c);
    }
    else {
        printf("%f compares unequal to itself\n",c);
    }
    return 0;
}

int equality(double a, double b)
{
    return a==b;
}
$ gcc -O3 -ffast-math nan-check.c
$ ./a.out
nan compares unequal to itself
$ gcc -v
Using built-in specs.
Configured with: ../gcc/configure --prefix=/home/ig25 
--enable-languages=c,c++,f95
Thread model: posix
gcc version 4.0.0 20041224 (experimental)

... with i686-pc-linux-gnu.

Maybe the Fortran frontend does something different with FP
comparisons.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19116

Reply via email to