This is the mail archive of the
`newlib@sourceware.org`
mailing list for the newlib project.

Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|

Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |

Other format: | [Raw text] |

*From*: Yaakov Selkowitz <yselkowi at redhat dot com>*To*: newlib at sourceware dot org*Date*: Mon, 4 Apr 2016 15:51:15 -0500*Subject*: [PATCH] math: update isinf/isnan function comments after move to math.h*Authentication-results*: sourceware.org; auth=none*References*: <5702CBB1 dot 10507 at cygwin dot com>

Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com> --- newlib/libc/include/math.h | 2 +- newlib/libm/common/s_isinf.c | 5 ++--- newlib/libm/common/s_isnan.c | 14 ++++++++------ newlib/libm/common/s_isnand.c | 8 ++++---- newlib/libm/common/sf_isinf.c | 5 ++--- newlib/libm/common/sf_isnan.c | 2 +- newlib/libm/machine/spu/sf_isinf.c | 2 +- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/newlib/libc/include/math.h b/newlib/libc/include/math.h index 798fc6d..80a8048 100644 --- a/newlib/libc/include/math.h +++ b/newlib/libc/include/math.h @@ -228,7 +228,7 @@ extern int __signbitd (double x); * supporting multiple floating point types. Thus, they are * now defined as macros. Implementations of the old functions * taking double arguments still exist for compatibility purposes - * (prototypes for them are in <ieeefp.h>). */ + * (prototypes for them are earlier in this header). */ #if __GNUC_PREREQ (4, 4) #define fpclassify(__x) (__builtin_fpclassify (FP_NAN, FP_INFINITE, \ diff --git a/newlib/libm/common/s_isinf.c b/newlib/libm/common/s_isinf.c index db8e8f8..f22acb7 100644 --- a/newlib/libm/common/s_isinf.c +++ b/newlib/libm/common/s_isinf.c @@ -4,9 +4,8 @@ * * isinf is a <math.h> macro in the C99 standard. It was previously * implemented as a function by newlib and is declared as such in - * <ieeefp.h>. Newlib supplies it here as a function if the user - * chooses to use <ieeefp.h> or needs to link older code compiled with the - * previous <math.h> declaration. + * <math.h>. Newlib supplies it here as a function if the user + * chooses to use it instead of the C99 macro. */ #include "fdlibm.h" diff --git a/newlib/libm/common/s_isnan.c b/newlib/libm/common/s_isnan.c index 3ce5aa6..64deacd 100644 --- a/newlib/libm/common/s_isnan.c +++ b/newlib/libm/common/s_isnan.c @@ -53,7 +53,7 @@ ANSI_SYNOPSIS int isnormal(real-floating <[x]>); [Archaic SUSv2 functions:] - #include <ieeefp.h> + #include <math.h> int isnan(double <[arg]>); int isinf(double <[arg]>); int finite(double <[arg]>); @@ -142,7 +142,7 @@ o- and <<isinf>> are macros that operate on multiple types of floating-point. The SUSv2 standard declares <<isnan>> as a function taking double. Newlib has decided to declare - them both as macros in math.h and as functions in ieeefp.h to + them both as functions and as macros in math.h to maintain backward compatibility. RETURNS @@ -154,9 +154,11 @@ The isnan macro returns nonzero if <[x]> is an NaN, else 0.@* The isnormal macro returns nonzero if <[x]> has a normal value, else 0. PORTABILITY -math.h macros are C99, POSIX. +math.h macros are C99, POSIX.1-2001. -ieeefp.h funtions are outdated and should be avoided. +The functions originate from BSD; isnan was listed in the X/Open +Portability Guide and Single Unix Specification, but was dropped when +the macro was standardized in POSIX.1-2001. QUICKREF isnan - pure @@ -179,8 +181,8 @@ QUICKREF * The C99 standard dictates that isnan is a macro taking * multiple floating-point types while the SUSv2 standard * notes it is a function taking a double argument. Newlib - * has chosen to implement it as a macro in <math.h> and - * declare it as a function in <ieeefp.h>. + * has chosen to declare it both as a function and as a macro in + * <math.h> for compatibility. */ #include "fdlibm.h" diff --git a/newlib/libm/common/s_isnand.c b/newlib/libm/common/s_isnand.c index 75538d9..0ac8c59 100644 --- a/newlib/libm/common/s_isnand.c +++ b/newlib/libm/common/s_isnand.c @@ -28,7 +28,7 @@ INDEX finitef ANSI_SYNOPSIS - #include <ieeefp.h> + #include <math.h> int isnan(double <[arg]>); int isinf(double <[arg]>); int finite(double <[arg]>); @@ -37,7 +37,7 @@ ANSI_SYNOPSIS int finitef(float <[arg]>); TRAD_SYNOPSIS - #include <ieeefp.h> + #include <math.h> int isnan(<[arg]>) double <[arg]>; int isinf(<[arg]>) @@ -77,8 +77,8 @@ DESCRIPTION Note that by the C99 standard, <<isnan>> and <<isinf>> are macros taking any type of floating-point and are declared in - <<math.h>>. Newlib has chosen to declare these as macros in - <<math.h>> and as functions in <<ieeefp.h>>. + <<math.h>>. Newlib has chosen to declare these both as functions + and as macros in <<math.h>>. The <<isnanf>>, <<isinff>> and <<finitef>> functions perform the same operations as their <<isnan>>, <<isinf>> and <<finite>> diff --git a/newlib/libm/common/sf_isinf.c b/newlib/libm/common/sf_isinf.c index 6595a68..5b57a34 100644 --- a/newlib/libm/common/sf_isinf.c +++ b/newlib/libm/common/sf_isinf.c @@ -3,9 +3,8 @@ * * isinf is a <math.h> macro in the C99 standard. It was previously * implemented as isinf and isinff functions by newlib and are still declared - * as such in <ieeefp.h>. Newlib supplies it here as a function if the user - * chooses to use <ieeefp.h> or needs to link older code compiled with the - * previous <math.h> declaration. + * as such in <math.h>. Newlib supplies it here as a function if the user + * chooses to use it instead of the C99 macro. */ #include "fdlibm.h" diff --git a/newlib/libm/common/sf_isnan.c b/newlib/libm/common/sf_isnan.c index ddda6b3..9c813fc 100644 --- a/newlib/libm/common/sf_isnan.c +++ b/newlib/libm/common/sf_isnan.c @@ -15,7 +15,7 @@ /* * isnanf(x) returns 1 is x is nan, else 0; * - * isnanf is an extension declared in <ieeefp.h>. + * isnanf is an extension declared in <math.h>. */ #include "fdlibm.h" diff --git a/newlib/libm/machine/spu/sf_isinf.c b/newlib/libm/machine/spu/sf_isinf.c index 3c5f8d8..6460ec1 100644 --- a/newlib/libm/machine/spu/sf_isinf.c +++ b/newlib/libm/machine/spu/sf_isinf.c @@ -34,7 +34,7 @@ /* * On the SPU isinff(x) always returns 0. * - * isinff is an extension declared in <ieeefp.h>. + * isinff is an extension declared in <math.h>. */ int isinff (float x) -- 2.7.4

**Follow-Ups**:**Re: [PATCH] math: update isinf/isnan function comments after move to math.h***From:*Corinna Vinschen

**References**:**Re: [PATCH v2] math: guard BSD finite/isinf/isnan functions properly in math.h***From:*Yaakov Selkowitz

Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|

Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |