Date: Sun, 27 Sep 1998 20:22:41 -0400 (EDT) From: Simon Shapiro <shimon@simon-shapiro.org> To: freebsd-current@FreeBSD.ORG Subject: Compiler Problem in 64bit math? Message-ID: <XFMail.980927202241.shimon@simon-shapiro.org>
next in thread | raw e-mail | index | archive | help
The following fragment:
off_t top_size = QUAD_MAX,
bottom_size = 0,
half_size = 0;
do
{
half_size = bottom_size + (top_size - bottom_size) / 2;
switch ( seek_endpoint(device_fd, half_size) )
{
case -1:
perror("lseek(2) failed while searching file size!");
return( LSEEK_FAILED );
case -2:
case 1:
top_size = half_size;
break;
case 0:
bottom_size = half_size;
break;
}
ndx++ ;
}
while ( (top_size - bottom_size) > 1 );
works correctly. IF, however, I change the first line to be:
register off_t top_size = QUAD_MAX, ...
then the test at the bottom is always false. This is with large numbers,
such as QUAD_MAX...
Sincerely Yours, Shimon@Simon-Shapiro.ORG
770.265.7340
Simon Shapiro
Unwritten code has no bugs and executes at twice the speed of mouth
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.980927202241.shimon>
