This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
RE: [COMMITTED] Use C99 math macros
- From: "Wilco Dijkstra" <wdijkstr at arm dot com>
- To: "'Joseph Myers'" <joseph at codesourcery dot com>
- Cc: "GNU C Library" <libc-alpha at sourceware dot org>
- Date: Wed, 3 Jun 2015 17:25:06 +0100
- Subject: RE: [COMMITTED] Use C99 math macros
- Authentication-results: sourceware.org; auth=none
- References: <000201d09e0d$fdbc6490$f9352db0$ at com> <alpine dot DEB dot 2 dot 10 dot 1506031502290 dot 25695 at digraph dot polyomino dot org dot uk> <000601d09e11$f6ca4c70$e45ee550$ at com> <alpine dot DEB dot 2 dot 10 dot 1506031536570 dot 25695 at digraph dot polyomino dot org dot uk>
> Joseph Myers wrote:
> On Wed, 3 Jun 2015, Wilco Dijkstra wrote:
>
> > > Joseph Myers wrote:
> > > On Wed, 3 Jun 2015, Wilco Dijkstra wrote:
> > >
> > > > diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-finite.c b/sysdeps/ieee754/ldbl-opt/nldbl-
> > > finite.c
> > >
> > > > - return __finite (x);
> > > > + return finite (x);
> > >
> > > Are you sure about this change? "finite", as opposed to isfinite, is a
> > > non-type-generic BSD function; I'd expect this to cause the "finite"
> > > function name to be used for the call instead of __finite. (Using
> > > isfinite here should be fine.)
> >
> > Good catch - that's a typo, I meant isfinite indeed. There are a few
> > other calls to finite so I don't think it causes namespace issues:
OK, committed as cbf3....9ed5:
diff --git a/ChangeLog b/ChangeLog
index 987e71f..33d9f66 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2015-06-03 Wilco Dijkstra <wdijkstr@arm.com>
+ * sysdeps/ieee754/ldbl-128ibm/s_fmal.c (__fmal): Replace finite with
+ isfinite.
+ * sysdeps/ieee754/ldbl-96/s_fma.c (__fma): Likewise.
+ * sysdeps/ieee754/ldbl-opt/nldbl-finite.c (__finitel): Likewise.
+
+2015-06-03 Wilco Dijkstra <wdijkstr@arm.com>
+
* math/e_exp10.c: Replace __isinf*, __isnan*, __finite* and
__signbit* with standard C99 macros.
* math/e_exp10l.c: Likewise.
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_fmal.c b/sysdeps/ieee754/ldbl-128ibm/s_fmal.c
index 1c15e7e..837444a 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_fmal.c
@@ -26,7 +26,7 @@ __fmal (long double x, long double y, long double z)
/* An IBM long double 128 is really just 2 IEEE64 doubles, and in
* the case of inf/nan only the first double counts. So we use the
* (double) cast to avoid any data movement. */
- if ((finite ((double)x) && finite ((double)y)) && isinf ((double)z))
+ if ((isfinite ((double)x) && isfinite ((double)y)) && isinf ((double)z))
return (z);
/* If z is zero and x are y are nonzero, compute the result
diff --git a/sysdeps/ieee754/ldbl-96/s_fma.c b/sysdeps/ieee754/ldbl-96/s_fma.c
index 19736ef..8fd238c 100644
--- a/sysdeps/ieee754/ldbl-96/s_fma.c
+++ b/sysdeps/ieee754/ldbl-96/s_fma.c
@@ -34,7 +34,7 @@ __fma (double x, double y, double z)
{
/* If z is Inf, but x and y are finite, the result should be
z rather than NaN. */
- if (finite (x) && finite (y))
+ if (isfinite (x) && isfinite (y))
return (z + x) + y;
return (x * y) + z;
}
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-finite.c b/sysdeps/ieee754/ldbl-opt/nldbl-finite.c
index af96238..fc51508 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-finite.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-finite.c
@@ -4,7 +4,7 @@ int
attribute_hidden
__finitel (double x)
{
- return finite (x);
+ return isfinite (x);
}
extern __typeof (__finitel) finitel attribute_hidden;
weak_alias (__finitel, finitel)