[PATCH] Print sign of NaN values to nano-vfprintf.

Corinna Vinschen vinschen@redhat.com
Thu Dec 13 12:56:00 GMT 2018


On Dec 11 21:13, jon@beniston.com wrote:
> > diff --git a/newlib/libc/stdio/nano-vfprintf_float.c
> b/newlib/libc/stdio/nano-vfprintf_float.c
> > index 98893e97b..071a09edc 100644
> > --- a/newlib/libc/stdio/nano-vfprintf_float.c
> > +++ b/newlib/libc/stdio/nano-vfprintf_float.c
> > @@ -213,6 +213,8 @@ _printf_float (struct _reent *data,
> >      }
> >    if (isnan (_fpvalue))
> >      {
> > +      if (_fpvalue < 0)
> > +	pdata->l_buf[0] = '-';
> >        if (code <= 'G')		/* 'A', 'E', 'F', or 'G'.  */
> >  	cp = "NAN";
> 
> This patch doesn't work, as a comparison of a NaN with anything should
> always return false. As per the main printf code, this can be done by
> checking the sign bit instead:
> 
> -      if (_fpvalue < 0)
> +      if (signbit (_fpvalue))
>  	pdata->l_buf[0] = '-';
> 
> Patch attached.

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/20181213/b217a836/attachment.sig>


More information about the Newlib mailing list