mirror of git://gcc.gnu.org/git/gcc.git
runtime: let ARM32 EABI personality function continue unwind when called from traceback
On ARM32 EABI, unlike other platforms, the personality function is
called during _Unwind_Backtrace (libgcc/unwind-arm-common.inc:581).
In this case, simply unwind the frame without returning any
handlers. Otherwise traceback will loop if there is a frame with
a defer on stack.
Reviewed-on: https://go-review.googlesource.com/c/155759
From-SVN: r267434
This commit is contained in:
parent
96051ee57b
commit
f1410e7e2e
|
|
@ -1,4 +1,4 @@
|
||||||
785414705628bf9d1279a8042e1886440424aade
|
5a9ff61d72c95a50cbbfb0e1bf57646197910363
|
||||||
|
|
||||||
The first line of this file holds the git revision number of the last
|
The first line of this file holds the git revision number of the last
|
||||||
merge done from the gofrontend repository.
|
merge done from the gofrontend repository.
|
||||||
|
|
|
||||||
|
|
@ -444,6 +444,9 @@ PERSONALITY_FUNCTION (int version,
|
||||||
switch (state & _US_ACTION_MASK)
|
switch (state & _US_ACTION_MASK)
|
||||||
{
|
{
|
||||||
case _US_VIRTUAL_UNWIND_FRAME:
|
case _US_VIRTUAL_UNWIND_FRAME:
|
||||||
|
if (state & _UA_FORCE_UNWIND)
|
||||||
|
/* We are called from _Unwind_Backtrace. No handler to run. */
|
||||||
|
CONTINUE_UNWINDING;
|
||||||
actions = _UA_SEARCH_PHASE;
|
actions = _UA_SEARCH_PHASE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue