------- Additional Comments From Thomas dot Koenig at online dot de  2004-12-25 
22:17 -------
It is actually possible to reproduce the
Fortran behavior in C:

$ cat nan-check2.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 nan-check2.c
$ ./a.out
nan compares unequal to itself
$ gcc -ffast-math nan-check2.c
$ ./a.out
nan compares equal to itself
$ gcc -ffast-math -fno-finite-math-only nan-check2.c
$ ./a.out
nan compares equal 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)
 

-- 


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

Reply via email to