diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-12-11 20:50:59 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-12-11 20:50:59 +0000 |
commit | be68937be28ad63bd6f7a75d0fa5c851ba4afc2b (patch) | |
tree | 98f59c62064bac4ce953a9287e059cbd3454ac3d /libgo/runtime/go-unwind.c | |
parent | 582d2481f7380441c345bf1dfe698f90f34dd6cf (diff) | |
download | gcc-be68937be28ad63bd6f7a75d0fa5c851ba4afc2b.zip gcc-be68937be28ad63bd6f7a75d0fa5c851ba4afc2b.tar.gz gcc-be68937be28ad63bd6f7a75d0fa5c851ba4afc2b.tar.bz2 |
runtime: use _URC_FAILURE on ARM32
ARM32 EABI unwinder does not define _URC_NORMAL_STOP. Instead,
it has _URC_FAILURE. Use _URC_FAILURE there.
Should fix ARM32 build.
Reviewed-on: https://go-review.googlesource.com/c/153417
From-SVN: r267033
Diffstat (limited to 'libgo/runtime/go-unwind.c')
-rw-r--r-- | libgo/runtime/go-unwind.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libgo/runtime/go-unwind.c b/libgo/runtime/go-unwind.c index a1a9558..c44755f 100644 --- a/libgo/runtime/go-unwind.c +++ b/libgo/runtime/go-unwind.c @@ -392,6 +392,12 @@ parse_lsda_header (struct _Unwind_Context *context, const unsigned char *p, #define CONTINUE_UNWINDING return _URC_CONTINUE_UNWIND #endif +#ifdef __ARM_EABI_UNWINDER__ +#define STOP_UNWINDING _URC_FAILURE +#else +#define STOP_UNWINDING _URC_NORMAL_STOP +#endif + #ifdef __USING_SJLJ_EXCEPTIONS__ #define PERSONALITY_FUNCTION __gccgo_personality_sj0 #define __builtin_eh_return_data_regno(x) x @@ -751,7 +757,7 @@ scanstackwithmap_callback (struct _Unwind_Context *context, void *arg) // TODO: print gp, pc, sp runtime_throw ("no stack map"); } - return _URC_NORMAL_STOP; + return STOP_UNWINDING; } case FOUND: break; @@ -799,7 +805,7 @@ probestackmaps_callback (struct _Unwind_Context *context, // Found a stack map. No need to keep unwinding. runtime_usestackmaps = true; - return _URC_NORMAL_STOP; + return STOP_UNWINDING; } // Try to find a stack map, store the result in global variable runtime_usestackmaps. |