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]

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


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

Attachment: signature.asc
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]