aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2008-03-12 10:24:29 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2008-03-12 10:24:29 +0000
commitcb31c4bcc5e8ef33ba4364453f02f3e1ddb557e9 (patch)
tree64e6147ed11736145fc51d92097a25b23f6523f6
parent7c8f7639c5512799bed5c441e06964bd4ca32961 (diff)
downloadgcc-cb31c4bcc5e8ef33ba4364453f02f3e1ddb557e9.zip
gcc-cb31c4bcc5e8ef33ba4364453f02f3e1ddb557e9.tar.gz
gcc-cb31c4bcc5e8ef33ba4364453f02f3e1ddb557e9.tar.bz2
re PR libfortran/35524 (Unconditional use of expl() in libgfortran)
PR libfortran/35524 * intrinsics/erfc_scaled_inc.c: Only define the long double variant of erfc_scaled if expl is available. From-SVN: r133138
-rw-r--r--libgfortran/ChangeLog6
-rw-r--r--libgfortran/intrinsics/erfc_scaled_inc.c18
2 files changed, 22 insertions, 2 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 2ada263..422475b 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,9 @@
+2008-03-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ 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 <fxcoudert@gcc.gnu.org>
PR libfortran/32812
diff --git a/libgfortran/intrinsics/erfc_scaled_inc.c b/libgfortran/intrinsics/erfc_scaled_inc.c
index fab81558..cabdb34 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