guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

coredump in scm_ithrow


From: Dirk Herrmann
Subject: coredump in scm_ithrow
Date: Tue, 5 Sep 2000 16:50:38 +0200 (MEST)

Hi.

When running the test-suite with the recent CVS guile, I get a coredump
after the test-suite is finished.  The reason seems to be that the code
generated by the compiler is broken:

> uname -a
SunOS krantor 5.7 Generic sun4u sparc SUNW,UltraSPARC-IIi-Engine

The generated code for the scm_ithrow routine looks as follows:

  ...
  0xff2f31e0 <scm_ithrow+40>:     ld  [ %o0 + 0x3c ], %o3
  0xff2f31e4 <scm_ithrow+44>:     sethi  %hi(0x2800), %g2
  0xff2f31e8 <scm_ithrow+48>:     sethi  %hi(0x1800), %g3
  0xff2f31ec <scm_ithrow+52>:     sethi  %hi(0x2000), %l5
  0xff2f31f0 <scm_ithrow+56>:     andcc  %o3, 6, %o0
* 0xff2f31f4 <scm_ithrow+60>:     ld  [ %o3 ], %o2
  0xff2f31f8 <scm_ithrow+64>:     bne  0xff2f324c <scm_ithrow+148>
  ...

The line with * is the core dumping like.  What fails, is the following
code:

    for (winds = scm_dynwinds; SCM_NIMP (winds); winds = SCM_CDR (winds))
    {
      if (! SCM_CONSP (winds))
        abort ();
      ...
    }

the 'andcc' with 6 and the 'bne' correspond to the SCM_NIMP
test.  However, before the test is actually performed, the car of the
'winds' variable is accessed.

I assume this is the GCSE bug which was discussed recently on the
list.  After declaring 'winds' volatile, everything works fine.  However,
configure does not recognise the GCSE bug on this machine :-(

Best regards
Dirk





reply via email to

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