[Patch ARM] Fix PR target/56846

Jonathan Wakely jwakely@redhat.com
Tue Sep 9 09:16:00 GMT 2014


On 09/09/14 09:33 +0100, Ramana Radhakrishnan wrote:
>I'd like another review here however it looks sane to me. You need to
>CC libstdc++@gcc.gnu.org for libstdc++ patches. Your email doesn't say
>how you tested this patch. Can you make sure you've run this through a
>bootstrap and regression test on GNU/Linux and a cross regression test
>on arm-none-eabi with no regressions ?

Thanks for forwarding this, Ramana.

I don't know the EABI unwinder code so if Ramana is OK with it and no
other ARM maintainers have any comments then the patch is OK with me
too, with a couple of small tweaks ...

>>
>> gcc/libstdc++-v3/ChangeLog:
>> 2014-8-25   Tony Wang <tony.wang@arm.com>
>>
>>                  PR target/56846
>>                  * libsupc++/eh_personality.cc: Return with CONTINUE_UNWINDING
>>                  when meet with the unwind state pattern: _US_VIRTUAL_UNWIND_FRAME |
>>                  _US_FORCE_UNWIND

The changelog should say which function is being changed:

	* libsupc++/eh_personality.cc (__gxx_personality_v0): ...

Or maybe:

	* libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): ...

Instead of "when meet with the unwind state pattern" please say "when the state
pattern contains"

>> diff --git a/libstdc++-v3/libsupc++/eh_personality.cc b/libstdc++-v3/libsupc++/eh_personality.cc
>> index f315a83..c2b30e9 100644
>> --- a/libstdc++-v3/libsupc++/eh_personality.cc
>> +++ b/libstdc++-v3/libsupc++/eh_personality.cc
>> @@ -378,6 +378,11 @@ PERSONALITY_FUNCTION (int version,
>>    switch (state & _US_ACTION_MASK)
>>      {
>>      case _US_VIRTUAL_UNWIND_FRAME:
>> +      // If the unwind state pattern is _US_VIRTUAL_UNWIND_FRAME |
>> +      // _US_FORCE_UNWIND, we don't need to search for any handler
>> +      // as it is not a real exception. Just unwind the stack.

I think this comment would be easier to read if the expression with the two
constants was all on one line:

      // If the unwind state pattern is
      // _US_VIRTUAL_UNWIND_FRAME | _US_FORCE_UNWIND
      // then we don't need to search for any handler as it is not a real
      // exception. Just unwind the stack.

>> +      if (state & _US_FORCE_UNWIND)
>> +        CONTINUE_UNWINDING;
>>        actions = _UA_SEARCH_PHASE;
>>        break;
>>
>>



More information about the Gcc-patches mailing list