diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 2ada2632c36..422475bd16e 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2008-03-12 Francois-Xavier Coudert + + PR libfortran/35524 + * intrinsics/erfc_scaled_inc.c: Only define the long double + variant of erfc_scaled if expl is available. + 2008-03-11 Francois-Xavier Coudert PR libfortran/32812 diff --git a/libgfortran/intrinsics/erfc_scaled_inc.c b/libgfortran/intrinsics/erfc_scaled_inc.c index fab815584ca..cabdb34847b 100644 --- a/libgfortran/intrinsics/erfc_scaled_inc.c +++ b/libgfortran/intrinsics/erfc_scaled_inc.c @@ -35,16 +35,28 @@ Boston, MA 02110-1301, USA. */ #define KIND_SUFFIX(x,y) CONCAT(x,y) #if (KIND == 4) + # define EXP(x) expf(x) # define TRUNC(x) truncf(x) + #elif (KIND == 8) + # define EXP(x) exp(x) # define TRUNC(x) trunc(x) + #else -# define EXP(x) expl(x) -# define TRUNC(x) truncl(x) + +# ifdef HAVE_EXPL +# define EXP(x) expl(x) +# endif +# ifdef HAVE_TRUNCL +# define TRUNC(x) truncl(x) +# endif + #endif +#if defined(EXP) && defined(TRUNC) + extern TYPE KIND_SUFFIX(erfc_scaled_r,KIND) (TYPE); export_proto(KIND_SUFFIX(erfc_scaled_r,KIND)); @@ -167,6 +179,8 @@ finish: return res; } +#endif + #undef EXP #undef TRUNC