This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Divide_1 testsuite fail due to a problem in the unwinding code


On 27/01/2012 17:16, Andrew Haley wrote:
> On 01/27/2012 05:14 PM, Dave Korn wrote:
>> On 27/01/2012 17:01, Andrew Haley wrote:
>>> On 01/27/2012 04:46 PM, Andreas Krebbel wrote:
>>>> Starting with this IRA patch:
>>>> http://gcc.gnu.org/ml/gcc-patches/2011-10/msg00028.html
>>>> __divdi3 does *not* need a stack frame at all.
>>>>
>>>> So the CFAs of __divdi3 and probe_1 are the same!
>>> I'm confused.
>>>
>>> But __divdi3 should have been compiled with enough unwinder data
>>> that it can be found; it should not matter whether __divdi3 has
>>> a stack frame or not.
>>>
>>> So why doesn't __divdi3 have a CFA of its own?
>>   Unless I've misunderstood, it's because the CFA *is* the stack frame (base?)
>> pointer.
> 
> Ah, it's not that it has no stack frame, it's that it has no
> stack adjustment at all, not even a push?

  Well the return address might get pushed but if the CFA is the stack frame
base rather than current stack pointer, that won't change.

  So I expect this could happen with inline and nested functions too.  (Or do
nested functions set up a stack frame?  I don't know.)

    cheers,
      DaveK




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]