summaryrefslogtreecommitdiff
path: root/mpfr/BUGS
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2003-10-15 02:35:26 +0200
committerKevin Ryde <user42@zip.com.au>2003-10-15 02:35:26 +0200
commit134d3b44a483ff6b3e31b7e83fe1641e803563b7 (patch)
tree3a2c9e68c721e0d38ed7c372500a75ef5fe08433 /mpfr/BUGS
parent767baa14d7b1783499e3d6b961207b13040bd9c2 (diff)
downloadgmp-134d3b44a483ff6b3e31b7e83fe1641e803563b7.tar.gz
* mpfr/*: Update to mpfr cvs 2003-10-15.
Diffstat (limited to 'mpfr/BUGS')
-rw-r--r--mpfr/BUGS23
1 files changed, 23 insertions, 0 deletions
diff --git a/mpfr/BUGS b/mpfr/BUGS
index 94bdfaf68..5295f380a 100644
--- a/mpfr/BUGS
+++ b/mpfr/BUGS
@@ -52,3 +52,26 @@ Potential bugs:
* mpfr_hypot may fail for x very large, y very small and a very large
target precision. Other functions may be affected by similar problems.
+
+Problems due to compiler bugs:
+
+* on some architectures (for example alpha-dec-osf), gcc 3.3 wrongly
+ compares "long double" floating-point numbers, with optimization level
+ 1 or higher. This bug can be detected by the following program:
+
+ #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;
+ if (d == (long double) 0.0)
+ printf ("d equals 0.0\n");
+ }
+
+ This results in a problem in the mpfr_set_ld function. A workaround is
+ to compile set_ld.c with -O0 (no optimization).
+
+