standards/130067: Wrong numeric limits in system headers?

Václav Haisman v.haisman at sh.cvut.cz
Thu Jan 8 22:00:11 UTC 2009


The following reply was made to PR standards/130067; it has been noted by GNATS.

From: =?UTF-8?B?VsOhY2xhdiBIYWlzbWFu?= <v.haisman at sh.cvut.cz>
To: Bruce Evans <brde at optusnet.com.au>, 
 Vaclav Haisman <v.haisman at sh.cvut.cz>,
 imp at FreeBSD.ORG, freebsd-gnats-submit at FreeBSD.ORG, 
 freebsd-standards at FreeBSD.ORG
Cc:  
Subject: Re: standards/130067: Wrong numeric limits in system headers?
Date: Thu, 08 Jan 2009 22:56:59 +0100

 David Schultz wrote, On 6.1.2009 20:03:
 > On FreeBSD/i386, long doubles are represented with 64 bits of
 > precision, but computations are performed with 53 bits of
 > precision. In a sane world, this discrepancy wouldn't exist, but
 > for reasons I won't get into, they do, and probably always will.
 > 
 > C99 defines the LDBL constants based on what can be represented,
 > not what can be computed as the result of arithmetic operations,
 > so my interpretation is that the values in float.h are correct,
 > though confusing.
 I am not language lawyer but even if it were true that the constants are
 right, there is still the problem that they (especially the LDBL_MAX value)
 are useless with the provided GCC. Either GCC or the headers should be
 changed. Otherwise the constants are rather useless and unusable.
 
 --
 VH
 


More information about the freebsd-standards mailing list