[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gm2] Regressions on Debian/Alpha
From: |
Gaius Mulley |
Subject: |
Re: [Gm2] Regressions on Debian/Alpha |
Date: |
Sun, 23 Aug 2009 02:02:47 +0100 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) |
Michael Lambert <address@hidden> writes:
> Hi Gaius,
>
> One Debian/Alpha I see
>
> === gm2 Summary ===
>
> # of expected passes 8106
> # of unexpected failures 102
> # of unresolved testcases 12
>
> The realconv test (pimlib/logitech/run/pass/realconv.mod) segfaults on
> Debian/Alpha. Running it under the debugger:
>
> $ gdb ./realconv.x0
> GNU gdb 6.8-debian
> Copyright (C) 2008 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html
>>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law. Type "show
> copying"
> and "show warranty" for details.
> This GDB was configured as "alpha-linux-gnu"...
> (gdb) run
> Starting program: /home/lambert/gnu/obj/gcc/testsuite/realconv.x0
> value returned was 100.000000
> successfully evaluated assertion (testing ok return BOOLEAN)
> value returned is '100.000000'
> successfully evaluated assertion (testing return value of "100.000000")
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00000200000883c8 in logl () from /lib/libm.so.6.1
> (gdb) where
> #0 0x00000200000883c8 in logl () from /lib/libm.so.6.1
> #1 0x0000000120024fb8 in logl10 (r=100)
> at ../../gcc-4.1.2/gcc/gm2/gm2-libs-pim/RealConversions.mod:42
> #2 0x00000001200241f0 in RealConversions_LongRealToString (r=100,
> digits=5,
> width=12, str={_m2_contents = 0x1200456b8 "100.000000",
> _m2_high_1 = 100},
> address@hidden)
> at ../../gcc-4.1.2/gcc/gm2/gm2-libs-pim/RealConversions.mod:179
> #3 0x00000001200240f4 in RealConversions_RealToString (r=100,
> digits=-5,
> width=12, str={_m2_contents = 0x1200456b8 "100.000000",
> _m2_high_1 = 100},
> address@hidden)
> at ../../gcc-4.1.2/gcc/gm2/gm2-libs-pim/RealConversions.mod:127
> #4 0x00000001200258a0 in _M2_realconv_init ()
> #5 0x00000001200025d0 in init ()
> #6 0x00000001200028f8 in main ()
> (gdb) up
> #1 0x0000000120024fb8 in logl10 (r=100)
> at ../../gcc-4.1.2/gcc/gm2/gm2-libs-pim/RealConversions.mod:42
> 42 RETURN logl(r)/logl(10.0)
> Current language: auto; currently modula-2
> (gdb) print r
> $1 = 100
> (gdb) print SIZE(r)
> $2 = 8
>
> Note the size of r. Now I run this little C program
>
> -----
> #include <math.h>
> #include <stdio.h>
>
> main()
> {
> long double d;
>
> d = logl(100);
>
> printf("The result is %Lf and its size is %u.\n", d, sizeof(d));
> }
> -----
>
> and get
>
> -----
> The result is 4.605170 and its size is 16.
> -----
>
> We have a definite size mismatch here and probably on a couple of
> other test cases.
>
> Michael
Hi Michael,
thanks for the analysis - very interesting. Just to kill any
ambiguity I wonder whether you could run gdb testing the value of, r
and s on your Alpha system by:
MODULE test ;
VAR
r: LONGREAL ;
s: CARDINAL ;
BEGIN
s := SIZE(r) ;
LOOP
END
END test.
and
(gdb) print SIZE(r)
(gdb) print s
regards,
Gaius