This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Divide_1 testsuite fail due to a problem in the unwinding code
- From: Dave Korn <dave dot korn dot cygwin at gmail dot com>
- To: Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 27 Jan 2012 17:11:51 +0000
- Subject: Re: Divide_1 testsuite fail due to a problem in the unwinding code
- References: <20120127164616.GA8167@bart> <4F22D7D0.9020804@gmail.com>
On 27/01/2012 16:58, Dave Korn wrote:
> On 27/01/2012 16:46, Andreas Krebbel wrote:
>> So the CFAs of __divdi3 and probe_1 are the same!
>>
>> This triggers the assertion in _Unwind_RaiseException_Phase2 which
>> assumes that it is about to pass the frame with the handler without
>> actually finding one.
>
> Wouldn't it work to just let the unwind loop continue running if the next
> frame's CFA is the same as the current one's?
(Answering myself) No, it won't be enough; it would solve that particular
inlining case but not if there was a stack of recursive calls through one or
more intermediate functions. I think adopting the GDB convention of IP+CFA to
identify the context is probably necessary after all.
cheers,
DaveK