Commit f1410e7e by Ian Lance Taylor

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
parent 96051ee5
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, ...@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment