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] |
> 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. Cheers, Jon
Attachment:
0001-nano-vfprintf_float.c-Fix-check-if-negative-for-nans.patch
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |