[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-janitors] #1278: Assertion failure on Debian/macppc with cl
From: |
Chicken Trac |
Subject: |
Re: [Chicken-janitors] #1278: Assertion failure on Debian/macppc with clang |
Date: |
Wed, 20 Apr 2016 21:36:40 -0000 |
#1278: Assertion failure on Debian/macppc with clang
-----------------------+--------------------
Reporter: sjamaan | Owner:
Type: defect | Status: new
Priority: critical | Milestone: 4.11.0
Component: unknown | Version: 4.10.x
Resolution: | Keywords:
-----------------------+--------------------
Comment (by sjamaan):
Stepping through the code with gdb (after upgrading to a recent version of
clang) seems to indicate that everything goes well, up until the very
moment {{{CHICKEN_run}}} calls {{{return C_restore;}}} when it wants to
return to the host.
I've checked, but if I put a breakpoint on the return line itself, the
backtrace/stack frames look fine, but then if I step instruction-wise, the
moment it tries to retrieve the return address from the stack, it takes it
from the wrong place. Then it returns to the address which is in the
temporary stack, instead of the address which it should return to. This
is only 3 instructions or so from the actual jump instruction which gets
us out of the function.
So I'm not sure yet (a bit more investigation is required), but it looks
like Clang is mixing up its registers here.
--
Ticket URL: <http://bugs.call-cc.org/ticket/1278#comment:1>
CHICKEN Scheme <http://www.call-cc.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.