This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/12639] long double comparison is broken
- From: "gcc-bugzilla at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Oct 2005 01:24:01 -0000
- Subject: [Bug c/12639] long double comparison is broken
- References: <bug-12639-0@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The comparison between 0 and the largest power of 2 that fits in a long double
gives a non-zero result!!!
Environment:
System: OSF1 spe171.testdrive.hp.com V5.1 2650 alpha
Architecture: alphaev56-dec-osf5.1
host: alphaev56-dec-osf5.1
build: alphaev56-dec-osf5.1
target: alphaev56-dec-osf5.1
configured with: ../configure
How-To-Repeat:
spe171.testdrive.hp.com> cat bug.c
#include <stdio.h>
#include <stdlib.h>
#include <float.h>
int
main ()
{
long double d;
d = 1.0; while (d < LDBL_MAX / 2.0) d += d;
printf ("d=%1.30Le\n", d);
if (d == (long double) 0.0)
printf ("d equals 0.0\n");
}
spe171.testdrive.hp.com> gcc -O1 bug.c
spe171.testdrive.hp.com> ./a.out
d=5.948657476786158825428796633140e+4931
d equals 0.0
------- Comment #1 from ehrhardt at mathematik dot uni-ulm dot de 2003-10-16 14:04 -------
Please read http://gcc.gnu.org/bugs.html. Also have a look at
bug 323 and its duplicates.
--
ehrhardt at mathematik dot uni-ulm dot de changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12639