diff options
Diffstat (limited to 'gcc/ada/raise-gcc.c')
-rw-r--r-- | gcc/ada/raise-gcc.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ada/raise-gcc.c b/gcc/ada/raise-gcc.c index 1ba8af1..3b6c21f 100644 --- a/gcc/ada/raise-gcc.c +++ b/gcc/ada/raise-gcc.c @@ -1211,6 +1211,16 @@ personality_body (_Unwind_Action uw_phases, } else { +#ifdef __ARM_EABI_UNWINDER__ + /* Though we do not use this field ourselves, initializing + it is required by the ARM EH ABI before a personality + function in phase1 returns _URC_HANDLER_FOUND, so that + any personality function can use it in phase2 to test + whether the handler frame was reached. */ + uw_exception->barrier_cache.sp + = _Unwind_GetGR (uw_context, UNWIND_STACK_REG); +#endif + #ifndef CERT /* Trigger the appropriate notification routines before the second phase starts, when the stack is still intact. First install what |