Re: [PATCH] stdlib: Make strtod/strtof set ERANGE consistently for underflow.

Joseph Myers <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <alpine.DEB.2.22.394.2106222026400.1056881@digraph.polyomino.org.uk>
On Tue, 22 Jun 2021, Keith Packard wrote:

> This patch attempts to consistently set errno to ERANGE for all
> 'underflow' conditions, which is to say all values which are not
> exactly zero and which cannot be represented in normalized form.
> 
> This matches glibc behavior, as well as the Linux, Mac OS X, OpenBSD,
> FreeBSD and SunOS strtod man pages.

What glibc does is set it when the IEEE underflow exception flag is 
raised.  That is, when the result is tiny and inexact, where "tiny" 
follows each architecture's choice of before-rounding or after-rounding 
tininess detection (neither of which means "the rounded result is 
subnormal"; for both definitions of tiny results, there are values that 
round to the least-magnitude normal value of their sign but are still 
considered tiny, because after-rounding actually means "the result would 
have a subnormal exponent if rounded to the same precision as for normal 
values but with a wider exponent range").

-- 
Joseph S. Myers
[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.