summaryrefslogtreecommitdiff
path: root/libgfortran/intrinsics
diff options
context:
space:
mode:
authorfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2007-09-21 10:54:20 +0000
committerfxcoudert <fxcoudert@138bc75d-0d04-0410-961f-82ee72b054a4>2007-09-21 10:54:20 +0000
commit47b5bfdc0b426bc0b7e55dd97001afcd542640a5 (patch)
tree07cfac505fe19191eabf9ada0f742ec7d27503a8 /libgfortran/intrinsics
parent5657a2638ee8cf406aa844a3e0b506ffb63d850e (diff)
downloadgcc-47b5bfdc0b426bc0b7e55dd97001afcd542640a5.tar.gz
PR libfortran/26253
* intrinsics/c99_functions.c (scalbn): Use ldexp if appopriate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128648 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/intrinsics')
-rw-r--r--libgfortran/intrinsics/c99_functions.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libgfortran/intrinsics/c99_functions.c b/libgfortran/intrinsics/c99_functions.c
index 65c284e9b8c..c9c47965da2 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