building glibc-2.3.3 crashes gcc 3.

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

$ cat s_fmax.i
double
__fmax (double x, double y)
{
  return (__builtin_isgreaterequal(x, y) || (sizeof (y) == sizeof (float) ? 
__isnanf (y) : __isnan (y))) ? x : y;
}

crashes an arm-linux compiler when invoked as:

$ ./cc1 -O2 ~/s_fmax.i
 __fmax