Subject: strtod does not underflow
To: MacBSD <port-mac68k@NetBSD.org>
From: =?ISO-8859-1?Q?R=E9mi_Zara?= <remi_zara@mac.com>
List: port-mac68k
Date: 12/20/2004 23:19:27
--Apple-Mail-1-719916627
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=ISO-8859-1;
	delsp=yes;
	format=flowed

Hi,

Some postgresql regression tests fail on 2.0 mac68k because some double =20=

values do not undeflow.
(see for regression test log =20
http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=3Dosprey&dt=3D2004-12=20=

-20%2005:00:21)

Here is a test program:

test.c:

#include <stdlib.h>
#include <errno.h>

int main() {
         double res;
         double zero =3D 0.0;
         char *small =3D "10e-400";
         res =3D strtod(small,NULL);
         printf("%e, %d\n", res, errno);
         if (res =3D=3D zero) {
                 printf("res =3D=3D zero\n");
         }
}

the output is:
#test
0.000000e+00, 0
res =3D=3D zero

So strtod returned 0, but did not set errno to ERANGE (34)

testing shows that 10e400 overflows, but to underflow, one must go to =20=

as little as 10e-512 (10e-511 shows the same result as 10e-400).

So is there a bug in NetBSD's strtod ?
Is something wrong with the test program ?

Regards,

R=E9mi Zara
--
R=E9mi Zara
http://www.remi-zara.net/=

--Apple-Mail-1-719916627
Content-Transfer-Encoding: base64
Content-Type: application/pkcs7-signature;
	name=smime.p7s
Content-Disposition: attachment;
	filename=smime.p7s

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGFjCCAs8w
ggI4oAMCAQICAw2XNjANBgkqhkiG9w0BAQQFADBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhh
d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVt
YWlsIElzc3VpbmcgQ0EwHhcNMDQxMjA5MjAyODUzWhcNMDUxMjA5MjAyODUzWjBDMR8wHQYDVQQD
ExZUaGF3dGUgRnJlZW1haWwgTWVtYmVyMSAwHgYJKoZIhvcNAQkBFhFyZW1pX3phcmFAbWFjLmNv
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMIsZ+/0xA/dn0wrw+Tey2DOvgVPl+f7
DTUM5V0f70xGtI4dimfwE8rGeBPZRxRtNZGM9ohshySLPdKbH7Vps1pl1QjeOE5PG02CsmKRejFG
zD1Rl+rEYHRhkEov8av084KkLUwwBAmc3WSV0kKM4juQMEWyc0YhEegyU1LhvN+0nf/P632owxFs
Y3A2K8LStUPVM7KFU9LC8/Rq6xmtitBO1MBQBjJfPreFH42Hn4/g/sZKZlGCK7aM8lakIzI1Xrr5
wyLP+XcrhFPN3fWvYQWyWY7/rka5p7lteUBYN6C2mtZX+f0No6/K9sm7rm+w+e7Om1ECVMoplGjK
rMHCnr0CAwEAAaMuMCwwHAYDVR0RBBUwE4ERcmVtaV96YXJhQG1hYy5jb20wDAYDVR0TAQH/BAIw
ADANBgkqhkiG9w0BAQQFAAOBgQCnQ3aug7iiJshcOck8Po503ZBCqt3NXUgKQzuTsFyuzp3KQhUi
uvi5dAirsusKCRAaJAegYBWIq0Kpcou0PAdNpTpbapnLsOJ6Rk0sFbKNkAeNuSZ3bEFFIuk1lmXn
HoZZluw9AEh27bzWuwhKMGidMFhHgXyXTzwLd3u4IZt+AjCCAz8wggKooAMCAQICAQ0wDQYJKoZI
hvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcT
CUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmlj
YXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFp
bCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw0wMzA3
MTcwMDAwMDBaFw0xMzA3MTYyMzU5NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUg
Q29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwg
SXNzdWluZyBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRw
nd/p/6Me7L3N9VvyGna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688Cwfn8R+R
NiQqE88r1fOCdz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEEQB5kGXJgt/sCAwEA
AaOBlDCBkTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwu
dGhhd3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNV
HREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEFBQADgYEA
SIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFiw9k6GX6E
sZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpbNU1341YheILc
IRk13iSx0x1G/11fZU8xggLnMIIC4wIBATBpMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3
dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1h
aWwgSXNzdWluZyBDQQIDDZc2MAkGBSsOAwIaBQCgggFTMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0B
BwEwHAYJKoZIhvcNAQkFMQ8XDTA0MTIyMDIyMTkyOFowIwYJKoZIhvcNAQkEMRYEFHYZ72WlYDtk
q0ZvgWawVseceDWaMHgGCSsGAQQBgjcQBDFrMGkwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRo
YXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVl
bWFpbCBJc3N1aW5nIENBAgMNlzYwegYLKoZIhvcNAQkQAgsxa6BpMGIxCzAJBgNVBAYTAlpBMSUw
IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVy
c29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIDDZc2MA0GCSqGSIb3DQEBAQUABIIBABXRJ5iOYdEG
9Za6YdzagAtRKPsxWS5V7bBspGSF3OHdbA7+EP1tfH1mqnwVmdilAZhCBKS1IdrWAOiHt9Dqybos
Wsj6m2sHmuXJXqClkEkNuyozELdK+0L6XvYOUWn2AZDInYARJlj8q7zF4lC1uKEMXFmpIimP1otG
p8CZm3WhnI3sBiaC6bNrUFTDriWsoLp83xT6V+ZrIb9VppZdBzjsDqrfrMPNjH+J5rbtj11I4rhB
BKDBMAWpLud+/+68zUTyZLvU1r2FnrN1NsKGjLcKzKhfZ4sFQn5E0u25Bc5il9plJRpc2hrigZIq
OyFklfngvT9IITmTW2MR/QrHwbMAAAAAAAA=

--Apple-Mail-1-719916627--