diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index cdd3f118216..e725012e0f5 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2005-08-03 Francois-Xavier Coudert + + * libgfortran.h: When isfinite is not provided by the system, + define it as a macro, so that it can accept any floating point + type. + 2005-08-01 Francois-Xavier Coudert PR libfortran/23178 diff --git a/libgfortran/libgfortran.h b/libgfortran/libgfortran.h index ccba2a764be..6db6ef927cf 100644 --- a/libgfortran/libgfortran.h +++ b/libgfortran/libgfortran.h @@ -179,17 +179,11 @@ typedef off_t gfc_offset; alternatives, or bail out. */ #if (!defined(isfinite) || defined(__CYGWIN__)) #undef isfinite -static inline int -isfinite (double x) -{ #if defined(fpclassify) - return (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE); -#elif defined(HAVE_FINITE) - return finite (x); +#define isfinite(x) (fpclassify(x) != FP_NAN && fpclassify(x) != FP_INFINITE) #else -#error "libgfortran needs isfinite, fpclassify, or finite" +#define isfinite(x) ((x) - (x) == 0) #endif -} #endif /* !defined(isfinite) */ /* TODO: find the C99 version of these an move into above ifdef. */