From b65d72ab8642181fb7ed9ed337e3aeff7c25007f Mon Sep 17 00:00:00 2001 From: Francois-Xavier Coudert Date: Fri, 21 Sep 2007 10:54:20 +0000 Subject: [PATCH] re PR libfortran/26253 (fallback scalbn doesn't handle denormals correctly) PR libfortran/26253 * intrinsics/c99_functions.c (scalbn): Use ldexp if appopriate. From-SVN: r128648 --- libgfortran/ChangeLog | 5 +++++ libgfortran/intrinsics/c99_functions.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 337d2e17555e..79c7e137ba1b 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2007-09-21 Francois-Xavier Coudert + + PR libfortran/26253 + * intrinsics/c99_functions.c (scalbn): Use ldexp if appopriate. + 2007-09-21 Francois-Xavier Coudert PR libfortran/23272 diff --git a/libgfortran/intrinsics/c99_functions.c b/libgfortran/intrinsics/c99_functions.c index 65c284e9b8c4..c9c47965da2e 100644 --- a/libgfortran/intrinsics/c99_functions.c +++ b/libgfortran/intrinsics/c99_functions.c @@ -341,7 +341,11 @@ log10f(float x) double scalbn(double x, int y) { +#if (FLT_RADIX == 2) && defined(HAVE_LDEXP) + return ldexp (x, y); +#else return x * pow(FLT_RADIX, y); +#endif } #endif -- 2.47.2