[PATCH] libm fixes for 16-bit targets
Corinna Vinschen
vinschen@redhat.com
Mon Sep 3 16:12:00 GMT 2018
On Aug 31 23:30, jon@beniston.com wrote:
> Hi,
>
> Attached are a couple of patches to libm to fix warnings when compiling for
> 16-bit targets.
>
> The first in e_scalb.c calls scalbln instead of scalbn, as 65000 is out of
> range for an 'int'.
>
> +#if INT_MAX == 32767
> + if ( fn > 65000.0) return scalbln(x, 65000);
> + if (-fn > 65000.0) return scalbln(x,-65000);
> +#else
> if ( fn > 65000.0) return scalbn(x, 65000);
> if (-fn > 65000.0) return scalbn(x,-65000);
> +#endif
>
> The second in math_config.h (issignalingf_inline) fixes the signed overflow
> warning that occurs.
>
> - return 2 * (ix ^ 0x00400000) > 2u * 0x7fc00000;
> + return 2 * (ix ^ 0x00400000) > 0xFF800000u;
>
> Although I hope I'm not missing something subtle with the mixing of the
> types there.
>
> Cheers,
> Jon
>
Pushed.
Thanks,
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20180903/f33ad746/attachment.sig>
More information about the Newlib
mailing list