> -----Original Message----- > From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-ow...@gcc.gnu.org] On > Behalf Of Jonathan Wakely > Sent: Tuesday, September 09, 2014 5:16 PM > To: Ramana Radhakrishnan > Cc: Tony Wang; gcc-patches; d...@debian.org; aph-...@littlepinkcloud.com; > Richard Earnshaw; Ramana > Radhakrishnan; libstd...@gcc.gnu.org > Subject: Re: [Patch ARM] Fix PR target/56846 > > 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 libstd...@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 ...
Thanks for your comment, Jonathan. I will send a new patch to cover your comment. BR, Tony > > >> > >> gcc/libstdc++-v3/ChangeLog: > >> 2014-8-25 Tony Wang <tony.w...@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; > >> > >>