Adding isinfl() and isnanl()
Corinna Vinschen
vinschen@redhat.com
Thu Feb 5 15:28:02 GMT 2026
On Feb 5 09:09, Joel Sherrill wrote:
> Hi
>
> math.h:123 has isinfl () and isnanl() as this:
>
> 123
> <https://sourceware.org/git?p=newlib-cygwin.git;a=blob;f=newlib/libc/include/math.h;h=5e92d2662da145cabad51e5946051aa34e9092b6;hb=HEAD#l123>
> #ifdef __CYGWIN__ /* not implemented in newlib yet */
> 124
> <https://sourceware.org/git?p=newlib-cygwin.git;a=blob;f=newlib/libc/include/math.h;h=5e92d2662da145cabad51e5946051aa34e9092b6;hb=HEAD#l124>
> extern int isinfl (long double);
> 125
> <https://sourceware.org/git?p=newlib-cygwin.git;a=blob;f=newlib/libc/include/math.h;h=5e92d2662da145cabad51e5946051aa34e9092b6;hb=HEAD#l125>
> extern int isnanl (long double);
> 126
> <https://sourceware.org/git?p=newlib-cygwin.git;a=blob;f=newlib/libc/include/math.h;h=5e92d2662da145cabad51e5946051aa34e9092b6;hb=HEAD#l126>
> #endif
>
> The winsup implementation has them as simple wrappers for the
> corresponding built-in functions such as __builtin_isinf_sign().
>
> If I copied the winsup/ implementation and put each in a new file
> in newlib/libm so they are always available, is that OK?
Barring other problems, you should just move them out of winsup into
newlib.
> If so, any suggestions on location inside libm for simple wrappers
> for the corresponding builtin?
libm/common
> What would the conditional guard need to be? Just Cygwin and RTEMS?
> or more?
I think this would have to be target cpu dependent.
> Anything I am missing?
Is it a safe bet that these builtins are available as inline functions
on all supported target cpus and compilers? Unimplemented builtins just
point to their corresponding C lib function, isn't it?
Corinna
More information about the Newlib
mailing list