summaryrefslogtreecommitdiffstats
path: root/lib/libc/gen/isnan.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove __isnanl() to avoid conflicting with the same function in libm.das2004-09-241-10/+0
| | | | | | | | | | | __isnan() and __isnanf() must remain in libc for hysterical raisins. On the other hand, __isnanl() must live in libm because libm uses it internally and can't depend on older versions of libc to provide it. Fortunately, we don't need __isnanl() in both libraries. Prodded by: ale PR: 71698 MT5 candidate
* Implement the classification macros isfinite(), isinf(), isnan(), anddas2004-07-091-0/+67
isnormal() the hard way, rather than relying on fpclassify(). This is a lose in the sense that we need a total of 12 functions, but it is necessary for binary compatibility because we have never bumped libm's major version number. In particular, isinf(), isnan(), and isnanf() were BSD libc functions before they were C99 macros, so we can't reimplement them in terms of fpclassify() without adding a dependency on libc.so.5. I have tried to arrange things so that programs that could be compiled in FreeBSD 4.X will generate the same external references when compiled in 5.X. At the same time, the new macros should remain C99-compliant. The isinf() and isnan() functions remain in libc for historical reasons; however, I have moved the functions that implement the macros isfinite() and isnormal() to libm where they belong. Moreover, half a dozen MD versions of isinf() and isnan() have been replaced with MI versions that work equally well. Prodded by: kris
OpenPOWER on IntegriCloud