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 | |
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
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 | ||||
-rw-r--r-- | libgo/runtime/go-unwind.c | 10 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 062f9c7..ccdfb1c 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -f0266d382f8965b7bcaa380aa963498c1884505e +4db15776701a7cfc1abcef08f7a98c63343d17e6 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. 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. |