aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/generated
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2010-08-28 22:10:52 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2010-08-28 22:10:52 +0000
commit08fd13d44702391da6e367876b74ce8ed71c0bab (patch)
tree0834fa07275fef77737822694da3a4ad8215b389 /libgfortran/generated
parentbf321310b19598f6151b217e160f1c05ba18f994 (diff)
downloadgcc-08fd13d44702391da6e367876b74ce8ed71c0bab.zip
gcc-08fd13d44702391da6e367876b74ce8ed71c0bab.tar.gz
gcc-08fd13d44702391da6e367876b74ce8ed71c0bab.tar.bz2
mtype.m4 (upcase, [...]): New macros.
* m4/mtype.m4 (upcase, hasmathfunc, mathfunc_macro): New macros. * m4/fraction.m4: Use new macros to support quad-float types. * m4/set_exponent.m4: Likewise. * m4/spacing.m4: Likewise. * m4/exponent.m4: Likewise. * m4/nearest.m4: Likewise. * m4/norm2.m4: Likewise. * m4/bessel.m4: Likewise. * m4/rrspacing.m4: Likewise. * generated/bessel_r4.c:Regenerated. * generated/bessel_r8.c: Regenerated. * generated/bessel_r10.c: Regenerated. * generated/bessel_r16.c: Regenerated. * generated/exponent_r4.c: Regenerated. * generated/exponent_r8.c: Regenerated. * generated/exponent_r10.c: Regenerated. * generated/exponent_r16.c: Regenerated. * generated/fraction_r4.c: Regenerated. * generated/fraction_r8.c: Regenerated. * generated/fraction_r10.c: Regenerated. * generated/fraction_r16.c: Regenerated. * generated/nearest_r4.c: Regenerated. * generated/nearest_r8.c: Regenerated. * generated/nearest_r10.c: Regenerated. * generated/nearest_r16.c: Regenerated. * generated/norm2_r4.c: Regenerated. * generated/norm2_r8.c: Regenerated. * generated/norm2_r10.c: Regenerated. * generated/norm2_r16.c: Regenerated. * generated/rrspacing_r4.c: Regenerated. * generated/rrspacing_r8.c: Regenerated. * generated/rrspacing_r10.c: Regenerated. * generated/rrspacing_r16.c: Regenerated. * generated/set_exponent_r4.c: Regenerated. * generated/set_exponent_r8.c: Regenerated. * generated/set_exponent_r10.c: Regenerated. * generated/set_exponent_r16.c: Regenerated. * generated/spacing_r4.c: Regenerated. * generated/spacing_r8.c: Regenerated. * generated/spacing_r10.c: Regenerated. * generated/spacing_r16.c: Regenerated. From-SVN: r163620
Diffstat (limited to 'libgfortran/generated')
-rw-r--r--libgfortran/generated/bessel_r10.c23
-rw-r--r--libgfortran/generated/bessel_r16.c31
-rw-r--r--libgfortran/generated/bessel_r4.c23
-rw-r--r--libgfortran/generated/bessel_r8.c23
-rw-r--r--libgfortran/generated/exponent_r10.c5
-rw-r--r--libgfortran/generated/exponent_r16.c11
-rw-r--r--libgfortran/generated/exponent_r4.c5
-rw-r--r--libgfortran/generated/exponent_r8.c5
-rw-r--r--libgfortran/generated/fraction_r10.c5
-rw-r--r--libgfortran/generated/fraction_r16.c11
-rw-r--r--libgfortran/generated/fraction_r4.c5
-rw-r--r--libgfortran/generated/fraction_r8.c5
-rw-r--r--libgfortran/generated/nearest_r10.c9
-rw-r--r--libgfortran/generated/nearest_r16.c15
-rw-r--r--libgfortran/generated/nearest_r4.c9
-rw-r--r--libgfortran/generated/nearest_r8.c9
-rw-r--r--libgfortran/generated/norm2_r10.c19
-rw-r--r--libgfortran/generated/norm2_r16.c23
-rw-r--r--libgfortran/generated/norm2_r4.c19
-rw-r--r--libgfortran/generated/norm2_r8.c19
-rw-r--r--libgfortran/generated/rrspacing_r10.c11
-rw-r--r--libgfortran/generated/rrspacing_r16.c19
-rw-r--r--libgfortran/generated/rrspacing_r4.c11
-rw-r--r--libgfortran/generated/rrspacing_r8.c11
-rw-r--r--libgfortran/generated/set_exponent_r10.c5
-rw-r--r--libgfortran/generated/set_exponent_r16.c11
-rw-r--r--libgfortran/generated/set_exponent_r4.c5
-rw-r--r--libgfortran/generated/set_exponent_r8.c5
-rw-r--r--libgfortran/generated/spacing_r10.c9
-rw-r--r--libgfortran/generated/spacing_r16.c17
-rw-r--r--libgfortran/generated/spacing_r4.c9
-rw-r--r--libgfortran/generated/spacing_r8.c9
32 files changed, 262 insertions, 134 deletions
diff --git a/libgfortran/generated/bessel_r10.c b/libgfortran/generated/bessel_r10.c
index 579de84..efef450 100644
--- a/libgfortran/generated/bessel_r10.c
+++ b/libgfortran/generated/bessel_r10.c
@@ -29,6 +29,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <assert.h>
+
+#define MATHFUNC(funcname) funcname ## l
+
#if defined (HAVE_GFC_REAL_10)
@@ -67,28 +70,28 @@ bessel_jn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2, GFC_REAL_10 x
stride = GFC_DESCRIPTOR_STRIDE(ret,0);
- if (unlikely (x == 0.0L))
+ if (unlikely (x == 0))
{
- ret->data[0] = 1.0L;
+ ret->data[0] = 1;
for (i = 1; i <= n2-n1; i++)
- ret->data[i*stride] = 0.0L;
+ ret->data[i*stride] = 0;
return;
}
ret->data = ret->data;
- last1 = jnl (n2, x);
+ last1 = MATHFUNC(jn) (n2, x);
ret->data[(n2-n1)*stride] = last1;
if (n1 == n2)
return;
- last2 = jnl (n2 - 1, x);
+ last2 = MATHFUNC(jn) (n2 - 1, x);
ret->data[(n2-n1-1)*stride] = last2;
if (n1 + 1 == n2)
return;
- x2rev = 2.0L/x;
+ x2rev = GFC_REAL_10_LITERAL(2.)/x;
for (i = n2-n1-2; i >= 0; i--)
{
@@ -135,7 +138,7 @@ bessel_yn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2,
stride = GFC_DESCRIPTOR_STRIDE(ret,0);
- if (unlikely (x == 0.0L))
+ if (unlikely (x == 0))
{
for (i = 0; i <= n2-n1; i++)
#if defined(GFC_REAL_10_INFINITY)
@@ -147,19 +150,19 @@ bessel_yn_r10 (gfc_array_r10 * const restrict ret, int n1, int n2,
}
ret->data = ret->data;
- last1 = ynl (n1, x);
+ last1 = MATHFUNC(yn) (n1, x);
ret->data[0] = last1;
if (n1 == n2)
return;
- last2 = ynl (n1 + 1, x);
+ last2 = MATHFUNC(yn) (n1 + 1, x);
ret->data[1*stride] = last2;
if (n1 + 1 == n2)
return;
- x2rev = 2.0L/x;
+ x2rev = GFC_REAL_10_LITERAL(2.)/x;
for (i = 2; i <= n1+n2; i++)
{
diff --git a/libgfortran/generated/bessel_r16.c b/libgfortran/generated/bessel_r16.c
index a3ef181..d5ca883 100644
--- a/libgfortran/generated/bessel_r16.c
+++ b/libgfortran/generated/bessel_r16.c
@@ -29,11 +29,18 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <assert.h>
+
+#if defined(GFC_REAL_16_IS_FLOAT128)
+#define MATHFUNC(funcname) funcname ## q
+#else
+#define MATHFUNC(funcname) funcname ## l
+#endif
+
#if defined (HAVE_GFC_REAL_16)
-#if defined (HAVE_JNL)
+#if (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_JNL))
extern void bessel_jn_r16 (gfc_array_r16 * const restrict ret, int n1,
int n2, GFC_REAL_16 x);
export_proto(bessel_jn_r16);
@@ -67,28 +74,28 @@ bessel_jn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2, GFC_REAL_16 x
stride = GFC_DESCRIPTOR_STRIDE(ret,0);
- if (unlikely (x == 0.0L))
+ if (unlikely (x == 0))
{
- ret->data[0] = 1.0L;
+ ret->data[0] = 1;
for (i = 1; i <= n2-n1; i++)
- ret->data[i*stride] = 0.0L;
+ ret->data[i*stride] = 0;
return;
}
ret->data = ret->data;
- last1 = jnl (n2, x);
+ last1 = MATHFUNC(jn) (n2, x);
ret->data[(n2-n1)*stride] = last1;
if (n1 == n2)
return;
- last2 = jnl (n2 - 1, x);
+ last2 = MATHFUNC(jn) (n2 - 1, x);
ret->data[(n2-n1-1)*stride] = last2;
if (n1 + 1 == n2)
return;
- x2rev = 2.0L/x;
+ x2rev = GFC_REAL_16_LITERAL(2.)/x;
for (i = n2-n1-2; i >= 0; i--)
{
@@ -100,7 +107,7 @@ bessel_jn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2, GFC_REAL_16 x
#endif
-#if defined (HAVE_YNL)
+#if (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_YNL))
extern void bessel_yn_r16 (gfc_array_r16 * const restrict ret,
int n1, int n2, GFC_REAL_16 x);
export_proto(bessel_yn_r16);
@@ -135,7 +142,7 @@ bessel_yn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2,
stride = GFC_DESCRIPTOR_STRIDE(ret,0);
- if (unlikely (x == 0.0L))
+ if (unlikely (x == 0))
{
for (i = 0; i <= n2-n1; i++)
#if defined(GFC_REAL_16_INFINITY)
@@ -147,19 +154,19 @@ bessel_yn_r16 (gfc_array_r16 * const restrict ret, int n1, int n2,
}
ret->data = ret->data;
- last1 = ynl (n1, x);
+ last1 = MATHFUNC(yn) (n1, x);
ret->data[0] = last1;
if (n1 == n2)
return;
- last2 = ynl (n1 + 1, x);
+ last2 = MATHFUNC(yn) (n1 + 1, x);
ret->data[1*stride] = last2;
if (n1 + 1 == n2)
return;
- x2rev = 2.0L/x;
+ x2rev = GFC_REAL_16_LITERAL(2.)/x;
for (i = 2; i <= n1+n2; i++)
{
diff --git a/libgfortran/generated/bessel_r4.c b/libgfortran/generated/bessel_r4.c
index 961c67c..794a5f6 100644
--- a/libgfortran/generated/bessel_r4.c
+++ b/libgfortran/generated/bessel_r4.c
@@ -29,6 +29,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <assert.h>
+
+#define MATHFUNC(funcname) funcname ## f
+
#if defined (HAVE_GFC_REAL_4)
@@ -67,28 +70,28 @@ bessel_jn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2, GFC_REAL_4 x)
stride = GFC_DESCRIPTOR_STRIDE(ret,0);
- if (unlikely (x == 0.0F))
+ if (unlikely (x == 0))
{
- ret->data[0] = 1.0F;
+ ret->data[0] = 1;
for (i = 1; i <= n2-n1; i++)
- ret->data[i*stride] = 0.0F;
+ ret->data[i*stride] = 0;
return;
}
ret->data = ret->data;
- last1 = jnf (n2, x);
+ last1 = MATHFUNC(jn) (n2, x);
ret->data[(n2-n1)*stride] = last1;
if (n1 == n2)
return;
- last2 = jnf (n2 - 1, x);
+ last2 = MATHFUNC(jn) (n2 - 1, x);
ret->data[(n2-n1-1)*stride] = last2;
if (n1 + 1 == n2)
return;
- x2rev = 2.0F/x;
+ x2rev = GFC_REAL_4_LITERAL(2.)/x;
for (i = n2-n1-2; i >= 0; i--)
{
@@ -135,7 +138,7 @@ bessel_yn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2,
stride = GFC_DESCRIPTOR_STRIDE(ret,0);
- if (unlikely (x == 0.0F))
+ if (unlikely (x == 0))
{
for (i = 0; i <= n2-n1; i++)
#if defined(GFC_REAL_4_INFINITY)
@@ -147,19 +150,19 @@ bessel_yn_r4 (gfc_array_r4 * const restrict ret, int n1, int n2,
}
ret->data = ret->data;
- last1 = ynf (n1, x);
+ last1 = MATHFUNC(yn) (n1, x);
ret->data[0] = last1;
if (n1 == n2)
return;
- last2 = ynf (n1 + 1, x);
+ last2 = MATHFUNC(yn) (n1 + 1, x);
ret->data[1*stride] = last2;
if (n1 + 1 == n2)
return;
- x2rev = 2.0F/x;
+ x2rev = GFC_REAL_4_LITERAL(2.)/x;
for (i = 2; i <= n1+n2; i++)
{
diff --git a/libgfortran/generated/bessel_r8.c b/libgfortran/generated/bessel_r8.c
index c896ae4..e9f84b4 100644
--- a/libgfortran/generated/bessel_r8.c
+++ b/libgfortran/generated/bessel_r8.c
@@ -29,6 +29,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <assert.h>
+
+#define MATHFUNC(funcname) funcname
+
#if defined (HAVE_GFC_REAL_8)
@@ -67,28 +70,28 @@ bessel_jn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2, GFC_REAL_8 x)
stride = GFC_DESCRIPTOR_STRIDE(ret,0);
- if (unlikely (x == 0.0))
+ if (unlikely (x == 0))
{
- ret->data[0] = 1.0;
+ ret->data[0] = 1;
for (i = 1; i <= n2-n1; i++)
- ret->data[i*stride] = 0.0;
+ ret->data[i*stride] = 0;
return;
}
ret->data = ret->data;
- last1 = jn (n2, x);
+ last1 = MATHFUNC(jn) (n2, x);
ret->data[(n2-n1)*stride] = last1;
if (n1 == n2)
return;
- last2 = jn (n2 - 1, x);
+ last2 = MATHFUNC(jn) (n2 - 1, x);
ret->data[(n2-n1-1)*stride] = last2;
if (n1 + 1 == n2)
return;
- x2rev = 2.0/x;
+ x2rev = GFC_REAL_8_LITERAL(2.)/x;
for (i = n2-n1-2; i >= 0; i--)
{
@@ -135,7 +138,7 @@ bessel_yn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2,
stride = GFC_DESCRIPTOR_STRIDE(ret,0);
- if (unlikely (x == 0.0))
+ if (unlikely (x == 0))
{
for (i = 0; i <= n2-n1; i++)
#if defined(GFC_REAL_8_INFINITY)
@@ -147,19 +150,19 @@ bessel_yn_r8 (gfc_array_r8 * const restrict ret, int n1, int n2,
}
ret->data = ret->data;
- last1 = yn (n1, x);
+ last1 = MATHFUNC(yn) (n1, x);
ret->data[0] = last1;
if (n1 == n2)
return;
- last2 = yn (n1 + 1, x);
+ last2 = MATHFUNC(yn) (n1 + 1, x);
ret->data[1*stride] = last2;
if (n1 + 1 == n2)
return;
- x2rev = 2.0/x;
+ x2rev = GFC_REAL_8_LITERAL(2.)/x;
for (i = 2; i <= n1+n2; i++)
{
diff --git a/libgfortran/generated/exponent_r10.c b/libgfortran/generated/exponent_r10.c
index 1b56765..ceafda3 100644
--- a/libgfortran/generated/exponent_r10.c
+++ b/libgfortran/generated/exponent_r10.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## l
+
#if defined (HAVE_GFC_REAL_10) && defined (HAVE_FREXPL)
extern GFC_INTEGER_4 exponent_r10 (GFC_REAL_10 s);
@@ -35,7 +38,7 @@ GFC_INTEGER_4
exponent_r10 (GFC_REAL_10 s)
{
int ret;
- frexpl (s, &ret);
+ MATHFUNC(frexp) (s, &ret);
return ret;
}
diff --git a/libgfortran/generated/exponent_r16.c b/libgfortran/generated/exponent_r16.c
index 23f0415..899a2ae 100644
--- a/libgfortran/generated/exponent_r16.c
+++ b/libgfortran/generated/exponent_r16.c
@@ -26,7 +26,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
-#if defined (HAVE_GFC_REAL_16) && defined (HAVE_FREXPL)
+
+#if defined(GFC_REAL_16_IS_FLOAT128)
+#define MATHFUNC(funcname) funcname ## q
+#else
+#define MATHFUNC(funcname) funcname ## l
+#endif
+
+#if defined (HAVE_GFC_REAL_16) && (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_FREXPL))
extern GFC_INTEGER_4 exponent_r16 (GFC_REAL_16 s);
export_proto(exponent_r16);
@@ -35,7 +42,7 @@ GFC_INTEGER_4
exponent_r16 (GFC_REAL_16 s)
{
int ret;
- frexpl (s, &ret);
+ MATHFUNC(frexp) (s, &ret);
return ret;
}
diff --git a/libgfortran/generated/exponent_r4.c b/libgfortran/generated/exponent_r4.c
index b2df840..04aee1c 100644
--- a/libgfortran/generated/exponent_r4.c
+++ b/libgfortran/generated/exponent_r4.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## f
+
#if defined (HAVE_GFC_REAL_4) && defined (HAVE_FREXPF)
extern GFC_INTEGER_4 exponent_r4 (GFC_REAL_4 s);
@@ -35,7 +38,7 @@ GFC_INTEGER_4
exponent_r4 (GFC_REAL_4 s)
{
int ret;
- frexpf (s, &ret);
+ MATHFUNC(frexp) (s, &ret);
return ret;
}
diff --git a/libgfortran/generated/exponent_r8.c b/libgfortran/generated/exponent_r8.c
index ed4319f..5c35c5d 100644
--- a/libgfortran/generated/exponent_r8.c
+++ b/libgfortran/generated/exponent_r8.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname
+
#if defined (HAVE_GFC_REAL_8) && defined (HAVE_FREXP)
extern GFC_INTEGER_4 exponent_r8 (GFC_REAL_8 s);
@@ -35,7 +38,7 @@ GFC_INTEGER_4
exponent_r8 (GFC_REAL_8 s)
{
int ret;
- frexp (s, &ret);
+ MATHFUNC(frexp) (s, &ret);
return ret;
}
diff --git a/libgfortran/generated/fraction_r10.c b/libgfortran/generated/fraction_r10.c
index 46aa65d..38cbdf8 100644
--- a/libgfortran/generated/fraction_r10.c
+++ b/libgfortran/generated/fraction_r10.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## l
+
#if defined (HAVE_GFC_REAL_10) && defined (HAVE_FREXPL)
extern GFC_REAL_10 fraction_r10 (GFC_REAL_10 s);
@@ -35,7 +38,7 @@ GFC_REAL_10
fraction_r10 (GFC_REAL_10 s)
{
int dummy_exp;
- return frexpl (s, &dummy_exp);
+ return MATHFUNC(frexp) (s, &dummy_exp);
}
#endif
diff --git a/libgfortran/generated/fraction_r16.c b/libgfortran/generated/fraction_r16.c
index 1ae3262..97e283d 100644
--- a/libgfortran/generated/fraction_r16.c
+++ b/libgfortran/generated/fraction_r16.c
@@ -26,7 +26,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
-#if defined (HAVE_GFC_REAL_16) && defined (HAVE_FREXPL)
+
+#if defined(GFC_REAL_16_IS_FLOAT128)
+#define MATHFUNC(funcname) funcname ## q
+#else
+#define MATHFUNC(funcname) funcname ## l
+#endif
+
+#if defined (HAVE_GFC_REAL_16) && (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_FREXPL))
extern GFC_REAL_16 fraction_r16 (GFC_REAL_16 s);
export_proto(fraction_r16);
@@ -35,7 +42,7 @@ GFC_REAL_16
fraction_r16 (GFC_REAL_16 s)
{
int dummy_exp;
- return frexpl (s, &dummy_exp);
+ return MATHFUNC(frexp) (s, &dummy_exp);
}
#endif
diff --git a/libgfortran/generated/fraction_r4.c b/libgfortran/generated/fraction_r4.c
index f2ea9e2..a42e146 100644
--- a/libgfortran/generated/fraction_r4.c
+++ b/libgfortran/generated/fraction_r4.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## f
+
#if defined (HAVE_GFC_REAL_4) && defined (HAVE_FREXPF)
extern GFC_REAL_4 fraction_r4 (GFC_REAL_4 s);
@@ -35,7 +38,7 @@ GFC_REAL_4
fraction_r4 (GFC_REAL_4 s)
{
int dummy_exp;
- return frexpf (s, &dummy_exp);
+ return MATHFUNC(frexp) (s, &dummy_exp);
}
#endif
diff --git a/libgfortran/generated/fraction_r8.c b/libgfortran/generated/fraction_r8.c
index 1e0f936..1e26709 100644
--- a/libgfortran/generated/fraction_r8.c
+++ b/libgfortran/generated/fraction_r8.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname
+
#if defined (HAVE_GFC_REAL_8) && defined (HAVE_FREXP)
extern GFC_REAL_8 fraction_r8 (GFC_REAL_8 s);
@@ -35,7 +38,7 @@ GFC_REAL_8
fraction_r8 (GFC_REAL_8 s)
{
int dummy_exp;
- return frexp (s, &dummy_exp);
+ return MATHFUNC(frexp) (s, &dummy_exp);
}
#endif
diff --git a/libgfortran/generated/nearest_r10.c b/libgfortran/generated/nearest_r10.c
index 9601e32..eb7a3b1 100644
--- a/libgfortran/generated/nearest_r10.c
+++ b/libgfortran/generated/nearest_r10.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## l
+
#if defined (HAVE_GFC_REAL_10) && defined (HAVE_COPYSIGNL) && defined (HAVE_NEXTAFTERL)
extern GFC_REAL_10 nearest_r10 (GFC_REAL_10 s, GFC_REAL_10 dir);
@@ -34,15 +37,15 @@ export_proto(nearest_r10);
GFC_REAL_10
nearest_r10 (GFC_REAL_10 s, GFC_REAL_10 dir)
{
- dir = copysignl (__builtin_infl (), dir);
+ dir = MATHFUNC(copysign) (MATHFUNC(__builtin_inf) (), dir);
if (FLT_EVAL_METHOD != 0)
{
/* ??? Work around glibc bug on x86. */
- volatile GFC_REAL_10 r = nextafterl (s, dir);
+ volatile GFC_REAL_10 r = MATHFUNC(nextafter) (s, dir);
return r;
}
else
- return nextafterl (s, dir);
+ return MATHFUNC(nextafter) (s, dir);
}
#endif
diff --git a/libgfortran/generated/nearest_r16.c b/libgfortran/generated/nearest_r16.c
index 85499cb..474cf36 100644
--- a/libgfortran/generated/nearest_r16.c
+++ b/libgfortran/generated/nearest_r16.c
@@ -26,7 +26,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
-#if defined (HAVE_GFC_REAL_16) && defined (HAVE_COPYSIGNL) && defined (HAVE_NEXTAFTERL)
+
+#if defined(GFC_REAL_16_IS_FLOAT128)
+#define MATHFUNC(funcname) funcname ## q
+#else
+#define MATHFUNC(funcname) funcname ## l
+#endif
+
+#if defined (HAVE_GFC_REAL_16) && (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_COPYSIGNL)) && (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_NEXTAFTERL))
extern GFC_REAL_16 nearest_r16 (GFC_REAL_16 s, GFC_REAL_16 dir);
export_proto(nearest_r16);
@@ -34,15 +41,15 @@ export_proto(nearest_r16);
GFC_REAL_16
nearest_r16 (GFC_REAL_16 s, GFC_REAL_16 dir)
{
- dir = copysignl (__builtin_infl (), dir);
+ dir = MATHFUNC(copysign) (MATHFUNC(__builtin_inf) (), dir);
if (FLT_EVAL_METHOD != 0)
{
/* ??? Work around glibc bug on x86. */
- volatile GFC_REAL_16 r = nextafterl (s, dir);
+ volatile GFC_REAL_16 r = MATHFUNC(nextafter) (s, dir);
return r;
}
else
- return nextafterl (s, dir);
+ return MATHFUNC(nextafter) (s, dir);
}
#endif
diff --git a/libgfortran/generated/nearest_r4.c b/libgfortran/generated/nearest_r4.c
index 8ef4f31..076df4b 100644
--- a/libgfortran/generated/nearest_r4.c
+++ b/libgfortran/generated/nearest_r4.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## f
+
#if defined (HAVE_GFC_REAL_4) && defined (HAVE_COPYSIGNF) && defined (HAVE_NEXTAFTERF)
extern GFC_REAL_4 nearest_r4 (GFC_REAL_4 s, GFC_REAL_4 dir);
@@ -34,15 +37,15 @@ export_proto(nearest_r4);
GFC_REAL_4
nearest_r4 (GFC_REAL_4 s, GFC_REAL_4 dir)
{
- dir = copysignf (__builtin_inff (), dir);
+ dir = MATHFUNC(copysign) (MATHFUNC(__builtin_inf) (), dir);
if (FLT_EVAL_METHOD != 0)
{
/* ??? Work around glibc bug on x86. */
- volatile GFC_REAL_4 r = nextafterf (s, dir);
+ volatile GFC_REAL_4 r = MATHFUNC(nextafter) (s, dir);
return r;
}
else
- return nextafterf (s, dir);
+ return MATHFUNC(nextafter) (s, dir);
}
#endif
diff --git a/libgfortran/generated/nearest_r8.c b/libgfortran/generated/nearest_r8.c
index 40e6590..8ac00b1 100644
--- a/libgfortran/generated/nearest_r8.c
+++ b/libgfortran/generated/nearest_r8.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname
+
#if defined (HAVE_GFC_REAL_8) && defined (HAVE_COPYSIGN) && defined (HAVE_NEXTAFTER)
extern GFC_REAL_8 nearest_r8 (GFC_REAL_8 s, GFC_REAL_8 dir);
@@ -34,15 +37,15 @@ export_proto(nearest_r8);
GFC_REAL_8
nearest_r8 (GFC_REAL_8 s, GFC_REAL_8 dir)
{
- dir = copysign (__builtin_inf (), dir);
+ dir = MATHFUNC(copysign) (MATHFUNC(__builtin_inf) (), dir);
if (FLT_EVAL_METHOD != 0)
{
/* ??? Work around glibc bug on x86. */
- volatile GFC_REAL_8 r = nextafter (s, dir);
+ volatile GFC_REAL_8 r = MATHFUNC(nextafter) (s, dir);
return r;
}
else
- return nextafter (s, dir);
+ return MATHFUNC(nextafter) (s, dir);
}
#endif
diff --git a/libgfortran/generated/norm2_r10.c b/libgfortran/generated/norm2_r10.c
index 64cf404..475a8cf 100644
--- a/libgfortran/generated/norm2_r10.c
+++ b/libgfortran/generated/norm2_r10.c
@@ -29,7 +29,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <assert.h>
-#if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_REAL_10)
+
+#if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_REAL_10) && defined (HAVE_SQRTL) && defined (HAVE_FABSL)
+
+#define MATHFUNC(funcname) funcname ## l
extern void norm2_r10 (gfc_array_r10 * const restrict,
@@ -144,23 +147,23 @@ norm2_r10 (gfc_array_r10 * const restrict retarray,
{
GFC_REAL_10 scale;
- result = 0.0L;
- scale = 1.0L;
+ result = 0;
+ scale = 1;
if (len <= 0)
- *dest = 0.0L;
+ *dest = 0;
else
{
for (n = 0; n < len; n++, src += delta)
{
- if (*src != 0.0L)
+ if (*src != 0)
{
GFC_REAL_10 absX, val;
- absX = fabsl (*src);
+ absX = MATHFUNC(fabs) (*src);
if (scale < absX)
{
val = scale / absX;
- result = 1.0L + result * val * val;
+ result = 1 + result * val * val;
scale = absX;
}
else
@@ -170,7 +173,7 @@ norm2_r10 (gfc_array_r10 * const restrict retarray,
}
}
}
- result = scale * sqrtl (result);
+ result = scale * MATHFUNC(sqrt) (result);
*dest = result;
}
}
diff --git a/libgfortran/generated/norm2_r16.c b/libgfortran/generated/norm2_r16.c
index 1fc79ae..acd5779 100644
--- a/libgfortran/generated/norm2_r16.c
+++ b/libgfortran/generated/norm2_r16.c
@@ -29,7 +29,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <assert.h>
-#if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_REAL_16)
+
+#if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_REAL_16) && (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_SQRTL)) && (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_FABSL))
+
+#if defined(GFC_REAL_16_IS_FLOAT128)
+#define MATHFUNC(funcname) funcname ## q
+#else
+#define MATHFUNC(funcname) funcname ## l
+#endif
extern void norm2_r16 (gfc_array_r16 * const restrict,
@@ -144,23 +151,23 @@ norm2_r16 (gfc_array_r16 * const restrict retarray,
{
GFC_REAL_16 scale;
- result = 0.0L;
- scale = 1.0L;
+ result = 0;
+ scale = 1;
if (len <= 0)
- *dest = 0.0L;
+ *dest = 0;
else
{
for (n = 0; n < len; n++, src += delta)
{
- if (*src != 0.0L)
+ if (*src != 0)
{
GFC_REAL_16 absX, val;
- absX = fabsl (*src);
+ absX = MATHFUNC(fabs) (*src);
if (scale < absX)
{
val = scale / absX;
- result = 1.0L + result * val * val;
+ result = 1 + result * val * val;
scale = absX;
}
else
@@ -170,7 +177,7 @@ norm2_r16 (gfc_array_r16 * const restrict retarray,
}
}
}
- result = scale * sqrtl (result);
+ result = scale * MATHFUNC(sqrt) (result);
*dest = result;
}
}
diff --git a/libgfortran/generated/norm2_r4.c b/libgfortran/generated/norm2_r4.c
index 78f28dc..83e034f 100644
--- a/libgfortran/generated/norm2_r4.c
+++ b/libgfortran/generated/norm2_r4.c
@@ -29,7 +29,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <assert.h>
-#if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_REAL_4)
+
+#if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_REAL_4) && defined (HAVE_SQRTF) && defined (HAVE_FABSF)
+
+#define MATHFUNC(funcname) funcname ## f
extern void norm2_r4 (gfc_array_r4 * const restrict,
@@ -144,23 +147,23 @@ norm2_r4 (gfc_array_r4 * const restrict retarray,
{
GFC_REAL_4 scale;
- result = 0.0F;
- scale = 1.0F;
+ result = 0;
+ scale = 1;
if (len <= 0)
- *dest = 0.0F;
+ *dest = 0;
else
{
for (n = 0; n < len; n++, src += delta)
{
- if (*src != 0.0F)
+ if (*src != 0)
{
GFC_REAL_4 absX, val;
- absX = fabsf (*src);
+ absX = MATHFUNC(fabs) (*src);
if (scale < absX)
{
val = scale / absX;
- result = 1.0F + result * val * val;
+ result = 1 + result * val * val;
scale = absX;
}
else
@@ -170,7 +173,7 @@ norm2_r4 (gfc_array_r4 * const restrict retarray,
}
}
}
- result = scale * sqrtf (result);
+ result = scale * MATHFUNC(sqrt) (result);
*dest = result;
}
}
diff --git a/libgfortran/generated/norm2_r8.c b/libgfortran/generated/norm2_r8.c
index fd9aba7..88599e8 100644
--- a/libgfortran/generated/norm2_r8.c
+++ b/libgfortran/generated/norm2_r8.c
@@ -29,7 +29,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <assert.h>
-#if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_REAL_8)
+
+#if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_REAL_8) && defined (HAVE_SQRT) && defined (HAVE_FABS)
+
+#define MATHFUNC(funcname) funcname
extern void norm2_r8 (gfc_array_r8 * const restrict,
@@ -144,23 +147,23 @@ norm2_r8 (gfc_array_r8 * const restrict retarray,
{
GFC_REAL_8 scale;
- result = 0.0;
- scale = 1.0;
+ result = 0;
+ scale = 1;
if (len <= 0)
- *dest = 0.0;
+ *dest = 0;
else
{
for (n = 0; n < len; n++, src += delta)
{
- if (*src != 0.0)
+ if (*src != 0)
{
GFC_REAL_8 absX, val;
- absX = fabs (*src);
+ absX = MATHFUNC(fabs) (*src);
if (scale < absX)
{
val = scale / absX;
- result = 1.0 + result * val * val;
+ result = 1 + result * val * val;
scale = absX;
}
else
@@ -170,7 +173,7 @@ norm2_r8 (gfc_array_r8 * const restrict retarray,
}
}
}
- result = scale * sqrt (result);
+ result = scale * MATHFUNC(sqrt) (result);
*dest = result;
}
}
diff --git a/libgfortran/generated/rrspacing_r10.c b/libgfortran/generated/rrspacing_r10.c
index 1889d0f..298c9d1 100644
--- a/libgfortran/generated/rrspacing_r10.c
+++ b/libgfortran/generated/rrspacing_r10.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## l
+
#if defined (HAVE_GFC_REAL_10) && defined (HAVE_FABSL) && defined (HAVE_FREXPL)
extern GFC_REAL_10 rrspacing_r10 (GFC_REAL_10 s, int p);
@@ -36,14 +39,14 @@ rrspacing_r10 (GFC_REAL_10 s, int p)
{
int e;
GFC_REAL_10 x;
- x = fabsl (s);
+ x = MATHFUNC(fabs) (s);
if (x == 0.)
return 0.;
- frexpl (s, &e);
+ MATHFUNC(frexp) (s, &e);
#if defined (HAVE_LDEXPL)
- return ldexpl (x, p - e);
+ return MATHFUNC(ldexp) (x, p - e);
#else
- return scalbnl (x, p - e);
+ return MATHFUNC(scalbn) (x, p - e);
#endif
}
diff --git a/libgfortran/generated/rrspacing_r16.c b/libgfortran/generated/rrspacing_r16.c
index 10de244..3812435 100644
--- a/libgfortran/generated/rrspacing_r16.c
+++ b/libgfortran/generated/rrspacing_r16.c
@@ -26,7 +26,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
-#if defined (HAVE_GFC_REAL_16) && defined (HAVE_FABSL) && defined (HAVE_FREXPL)
+
+#if defined(GFC_REAL_16_IS_FLOAT128)
+#define MATHFUNC(funcname) funcname ## q
+#else
+#define MATHFUNC(funcname) funcname ## l
+#endif
+
+#if defined (HAVE_GFC_REAL_16) && (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_FABSL)) && (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_FREXPL))
extern GFC_REAL_16 rrspacing_r16 (GFC_REAL_16 s, int p);
export_proto(rrspacing_r16);
@@ -36,14 +43,14 @@ rrspacing_r16 (GFC_REAL_16 s, int p)
{
int e;
GFC_REAL_16 x;
- x = fabsl (s);
+ x = MATHFUNC(fabs) (s);
if (x == 0.)
return 0.;
- frexpl (s, &e);
-#if defined (HAVE_LDEXPL)
- return ldexpl (x, p - e);
+ MATHFUNC(frexp) (s, &e);
+#if (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_LDEXPL))
+ return MATHFUNC(ldexp) (x, p - e);
#else
- return scalbnl (x, p - e);
+ return MATHFUNC(scalbn) (x, p - e);
#endif
}
diff --git a/libgfortran/generated/rrspacing_r4.c b/libgfortran/generated/rrspacing_r4.c
index 48683db..74a2826 100644
--- a/libgfortran/generated/rrspacing_r4.c
+++ b/libgfortran/generated/rrspacing_r4.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## f
+
#if defined (HAVE_GFC_REAL_4) && defined (HAVE_FABSF) && defined (HAVE_FREXPF)
extern GFC_REAL_4 rrspacing_r4 (GFC_REAL_4 s, int p);
@@ -36,14 +39,14 @@ rrspacing_r4 (GFC_REAL_4 s, int p)
{
int e;
GFC_REAL_4 x;
- x = fabsf (s);
+ x = MATHFUNC(fabs) (s);
if (x == 0.)
return 0.;
- frexpf (s, &e);
+ MATHFUNC(frexp) (s, &e);
#if defined (HAVE_LDEXPF)
- return ldexpf (x, p - e);
+ return MATHFUNC(ldexp) (x, p - e);
#else
- return scalbnf (x, p - e);
+ return MATHFUNC(scalbn) (x, p - e);
#endif
}
diff --git a/libgfortran/generated/rrspacing_r8.c b/libgfortran/generated/rrspacing_r8.c
index 75f2244..cf36418 100644
--- a/libgfortran/generated/rrspacing_r8.c
+++ b/libgfortran/generated/rrspacing_r8.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname
+
#if defined (HAVE_GFC_REAL_8) && defined (HAVE_FABS) && defined (HAVE_FREXP)
extern GFC_REAL_8 rrspacing_r8 (GFC_REAL_8 s, int p);
@@ -36,14 +39,14 @@ rrspacing_r8 (GFC_REAL_8 s, int p)
{
int e;
GFC_REAL_8 x;
- x = fabs (s);
+ x = MATHFUNC(fabs) (s);
if (x == 0.)
return 0.;
- frexp (s, &e);
+ MATHFUNC(frexp) (s, &e);
#if defined (HAVE_LDEXP)
- return ldexp (x, p - e);
+ return MATHFUNC(ldexp) (x, p - e);
#else
- return scalbn (x, p - e);
+ return MATHFUNC(scalbn) (x, p - e);
#endif
}
diff --git a/libgfortran/generated/set_exponent_r10.c b/libgfortran/generated/set_exponent_r10.c
index 3f5238de..f6435f8 100644
--- a/libgfortran/generated/set_exponent_r10.c
+++ b/libgfortran/generated/set_exponent_r10.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## l
+
#if defined (HAVE_GFC_REAL_10) && defined (HAVE_SCALBNL) && defined (HAVE_FREXPL)
extern GFC_REAL_10 set_exponent_r10 (GFC_REAL_10 s, GFC_INTEGER_4 i);
@@ -35,7 +38,7 @@ GFC_REAL_10
set_exponent_r10 (GFC_REAL_10 s, GFC_INTEGER_4 i)
{
int dummy_exp;
- return scalbnl (frexpl (s, &dummy_exp), i);
+ return MATHFUNC(scalbn) (MATHFUNC(frexp) (s, &dummy_exp), i);
}
#endif
diff --git a/libgfortran/generated/set_exponent_r16.c b/libgfortran/generated/set_exponent_r16.c
index 4cd1ed5..8842dad 100644
--- a/libgfortran/generated/set_exponent_r16.c
+++ b/libgfortran/generated/set_exponent_r16.c
@@ -26,7 +26,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
-#if defined (HAVE_GFC_REAL_16) && defined (HAVE_SCALBNL) && defined (HAVE_FREXPL)
+
+#if defined(GFC_REAL_16_IS_FLOAT128)
+#define MATHFUNC(funcname) funcname ## q
+#else
+#define MATHFUNC(funcname) funcname ## l
+#endif
+
+#if defined (HAVE_GFC_REAL_16) && (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_SCALBNL)) && (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_FREXPL))
extern GFC_REAL_16 set_exponent_r16 (GFC_REAL_16 s, GFC_INTEGER_4 i);
export_proto(set_exponent_r16);
@@ -35,7 +42,7 @@ GFC_REAL_16
set_exponent_r16 (GFC_REAL_16 s, GFC_INTEGER_4 i)
{
int dummy_exp;
- return scalbnl (frexpl (s, &dummy_exp), i);
+ return MATHFUNC(scalbn) (MATHFUNC(frexp) (s, &dummy_exp), i);
}
#endif
diff --git a/libgfortran/generated/set_exponent_r4.c b/libgfortran/generated/set_exponent_r4.c
index 4d765c2..f880602 100644
--- a/libgfortran/generated/set_exponent_r4.c
+++ b/libgfortran/generated/set_exponent_r4.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## f
+
#if defined (HAVE_GFC_REAL_4) && defined (HAVE_SCALBNF) && defined (HAVE_FREXPF)
extern GFC_REAL_4 set_exponent_r4 (GFC_REAL_4 s, GFC_INTEGER_4 i);
@@ -35,7 +38,7 @@ GFC_REAL_4
set_exponent_r4 (GFC_REAL_4 s, GFC_INTEGER_4 i)
{
int dummy_exp;
- return scalbnf (frexpf (s, &dummy_exp), i);
+ return MATHFUNC(scalbn) (MATHFUNC(frexp) (s, &dummy_exp), i);
}
#endif
diff --git a/libgfortran/generated/set_exponent_r8.c b/libgfortran/generated/set_exponent_r8.c
index ad8c3af..9d6fd13 100644
--- a/libgfortran/generated/set_exponent_r8.c
+++ b/libgfortran/generated/set_exponent_r8.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname
+
#if defined (HAVE_GFC_REAL_8) && defined (HAVE_SCALBN) && defined (HAVE_FREXP)
extern GFC_REAL_8 set_exponent_r8 (GFC_REAL_8 s, GFC_INTEGER_4 i);
@@ -35,7 +38,7 @@ GFC_REAL_8
set_exponent_r8 (GFC_REAL_8 s, GFC_INTEGER_4 i)
{
int dummy_exp;
- return scalbn (frexp (s, &dummy_exp), i);
+ return MATHFUNC(scalbn) (MATHFUNC(frexp) (s, &dummy_exp), i);
}
#endif
diff --git a/libgfortran/generated/spacing_r10.c b/libgfortran/generated/spacing_r10.c
index 10a9073..abf6784 100644
--- a/libgfortran/generated/spacing_r10.c
+++ b/libgfortran/generated/spacing_r10.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## l
+
#if defined (HAVE_GFC_REAL_10) && defined (HAVE_FREXPL)
extern GFC_REAL_10 spacing_r10 (GFC_REAL_10 s, int p, int emin, GFC_REAL_10 tiny);
@@ -37,13 +40,13 @@ spacing_r10 (GFC_REAL_10 s, int p, int emin, GFC_REAL_10 tiny)
int e;
if (s == 0.)
return tiny;
- frexpl (s, &e);
+ MATHFUNC(frexp) (s, &e);
e = e - p;
e = e > emin ? e : emin;
#if defined (HAVE_LDEXPL)
- return ldexpl (1., e);
+ return MATHFUNC(ldexp) (1., e);
#else
- return scalbnl (1., e);
+ return MATHFUNC(scalbn) (1., e);
#endif
}
diff --git a/libgfortran/generated/spacing_r16.c b/libgfortran/generated/spacing_r16.c
index 82ef835..c95c0ba 100644
--- a/libgfortran/generated/spacing_r16.c
+++ b/libgfortran/generated/spacing_r16.c
@@ -26,7 +26,14 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
-#if defined (HAVE_GFC_REAL_16) && defined (HAVE_FREXPL)
+
+#if defined(GFC_REAL_16_IS_FLOAT128)
+#define MATHFUNC(funcname) funcname ## q
+#else
+#define MATHFUNC(funcname) funcname ## l
+#endif
+
+#if defined (HAVE_GFC_REAL_16) && (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_FREXPL))
extern GFC_REAL_16 spacing_r16 (GFC_REAL_16 s, int p, int emin, GFC_REAL_16 tiny);
export_proto(spacing_r16);
@@ -37,13 +44,13 @@ spacing_r16 (GFC_REAL_16 s, int p, int emin, GFC_REAL_16 tiny)
int e;
if (s == 0.)
return tiny;
- frexpl (s, &e);
+ MATHFUNC(frexp) (s, &e);
e = e - p;
e = e > emin ? e : emin;
-#if defined (HAVE_LDEXPL)
- return ldexpl (1., e);
+#if (defined(GFC_WITH_QUAD_LIB) || defined(HAVE_LDEXPL))
+ return MATHFUNC(ldexp) (1., e);
#else
- return scalbnl (1., e);
+ return MATHFUNC(scalbn) (1., e);
#endif
}
diff --git a/libgfortran/generated/spacing_r4.c b/libgfortran/generated/spacing_r4.c
index 7936ba9..2be2906 100644
--- a/libgfortran/generated/spacing_r4.c
+++ b/libgfortran/generated/spacing_r4.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname ## f
+
#if defined (HAVE_GFC_REAL_4) && defined (HAVE_FREXPF)
extern GFC_REAL_4 spacing_r4 (GFC_REAL_4 s, int p, int emin, GFC_REAL_4 tiny);
@@ -37,13 +40,13 @@ spacing_r4 (GFC_REAL_4 s, int p, int emin, GFC_REAL_4 tiny)
int e;
if (s == 0.)
return tiny;
- frexpf (s, &e);
+ MATHFUNC(frexp) (s, &e);
e = e - p;
e = e > emin ? e : emin;
#if defined (HAVE_LDEXPF)
- return ldexpf (1., e);
+ return MATHFUNC(ldexp) (1., e);
#else
- return scalbnf (1., e);
+ return MATHFUNC(scalbn) (1., e);
#endif
}
diff --git a/libgfortran/generated/spacing_r8.c b/libgfortran/generated/spacing_r8.c
index 3debe49..aa140b5 100644
--- a/libgfortran/generated/spacing_r8.c
+++ b/libgfortran/generated/spacing_r8.c
@@ -26,6 +26,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "libgfortran.h"
+
+#define MATHFUNC(funcname) funcname
+
#if defined (HAVE_GFC_REAL_8) && defined (HAVE_FREXP)
extern GFC_REAL_8 spacing_r8 (GFC_REAL_8 s, int p, int emin, GFC_REAL_8 tiny);
@@ -37,13 +40,13 @@ spacing_r8 (GFC_REAL_8 s, int p, int emin, GFC_REAL_8 tiny)
int e;
if (s == 0.)
return tiny;
- frexp (s, &e);
+ MATHFUNC(frexp) (s, &e);
e = e - p;
e = e > emin ? e : emin;
#if defined (HAVE_LDEXP)
- return ldexp (1., e);
+ return MATHFUNC(ldexp) (1., e);
#else
- return scalbn (1., e);
+ return MATHFUNC(scalbn) (1., e);
#endif
}