gm2
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]