------- Comment #3 from jvdelisle at gcc dot gnu dot org 2007-07-20 21:01 ------- Additional note: isfinite may be getting redefined in libgfortran.h
/* The isfinite macro is only available with C99, but some non-C99 systems still provide fpclassify, and there is a `finite' function in BSD. Also, isfinite is broken on Cygwin. When isfinite is not available, try to use one of the alternatives, or bail out. */ #if defined(HAVE_BROKEN_ISFINITE) || defined(__CYGWIN__) #undef isfinite #endif #if defined(HAVE_BROKEN_ISNAN) #undef isnan #endif #if defined(HAVE_BROKEN_FPCLASSIFY) #undef fpclassify #endif #if !defined(isfinite) #if !defined(fpclassify) #define isfinite(x) ((x) - (x) == 0) #else #define isfinite(x) (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE) #endif /* !defined(fpclassify) */ #endif /* !defined(isfinite) */ #if !defined(isnan) #if !defined(fpclassify) #define isnan(x) ((x) != (x)) #else #define isnan(x) (fpclassify(x) == FP_NAN) #endif /* !defined(fpclassify) */ #endif /* !defined(isfinite) */ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32841