[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Test results for m4-1.4.9b
From: |
Gary V. Vaughan |
Subject: |
Re: Test results for m4-1.4.9b |
Date: |
Sun, 3 Jun 2007 15:12:00 +0100 |
Hi Bruno,
On 3 Jun 2007, at 02:03, Bruno Haible wrote:
Gary V. Vaughan wrote:
powerpc-apple-darwin8.9.0: 2 failed gnulib tests
Cannot reproduce on powerpc-apple-darwin7.9.0. Which compiler and
optimization
flags did you use?
Gcc from Apple's Xcode package as shipped on my Tiger installation DVD:
$ gcc --version
powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc.
build 5250)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
Standard configure optimisation flags from m4's configure: '--
std=gnu99 -g -O2'
Inserting test-frexpl.c:163:
fprintf (stderr, "%lg == 0.505L\n", mantissa);
Still, this doesn't help much. Can you print 40 decimal places of
the number
(or the exact binary contents, via %LA)?
mantissa = 0X2.051EB851EB851EB851EB851EB8P-2
0.505 == 1.06581e-16 (my_ldexp (0.505, - -1135314207))
test-printf-frexpl.c:115: assertion failed
The numbers 1.06581e-16 and -1135314207 don't give any clue.
It smells either like a 'long double' returning function was being
called
without being properly declared, or like dangerous compiler
optimizations.
Not the latter in this case. It looks as though the compiler
optimised away
the correct values in the output above, so I recompiled with CFLAGS=-
ggdb3
and ran through gdb. Here's a (hopefully more useful) typescript
from what
seems like an appropriate point in the code:
Breakpoint 1, main () at test-printf-frexpl.c:114
114 ASSERT (mantissa == my_ldexp (x, - exp));
(gdb) p exp
$6 = -969
(gdb) s
my_ldexp (x=1.0121050218045312617883299999606451e-292, d=969) at test-
printf-frexpl.c:55
55 for (; d > 0; d--)
(gdb) n
56 x *= 2.0L;
(gdb) l
51
52 static long double
53 my_ldexp (long double x, int d)
54 {
55 for (; d > 0; d--)
56 x *= 2.0L;
57 for (; d < 0; d++)
58 x *= 0.5L;
59 return x;
60 }
(gdb) fin
Run till exit from #0 my_ldexp
(x=1.0121050218045312617883299999606451e-292, d=969) at test-printf-
frexpl.c:56
0x00003048 in main () at test-printf-frexpl.c:114
114 ASSERT (mantissa == my_ldexp (x, - exp));
Value returned is $7 = 0.50500000000000000444089209850062616
(gdb) p mantissa
$8 = 0.50499999999999989341858963598497212
(gdb) n
test-printf-frexpl.c:114: assertion failed
Program received signal SIGABRT, Aborted.
0x9004822c in kill ()
Rounding error?
Cheers,
Gary
--
())_. Email me: address@hidden
( '/ Read my blog: http://blog.azazil.net
/ )= ...and my book: http://sources.redhat.com/autobook
`(_~)_ Join my AGLOCO Network: http://www.agloco.com/r/BBBS7912
PGP.sig
Description: This is a digitally signed message part
- Test results for m4-1.4.9b, Gary V. Vaughan, 2007/06/01
- Re: Test results for m4-1.4.9b, Bruno Haible, 2007/06/02
- Re: Test results for m4-1.4.9b,
Gary V. Vaughan <=
- Test results for m4-1.4.9b, Bruno Haible, 2007/06/04
- Re: Test results for m4-1.4.9b, Gary V. Vaughan, 2007/06/04
- Re: Test results for m4-1.4.9b, Bruno Haible, 2007/06/04
- Re: Test results for m4-1.4.9b, Gary V. Vaughan, 2007/06/05
- Re: Test results for m4-1.4.9b, Bruno Haible, 2007/06/05
- Re: Test results for m4-1.4.9b, Bruno Haible, 2007/06/16
- Re: Test results for m4-1.4.9b, Gary V. Vaughan, 2007/06/17