On ARM32 EABI, when the "compact" unwinding model is used, it
does not have standard LSDA and _Unwind_GetLanguageSpecificData
will not return data that is parseable by us. Check this
conditon before calling _Unwind_GetLanguageSpecificData.
Fix ARM32 build.
Reviewed-on: https://go-review.googlesource.com/c/155758
From-SVN: r267428
-16a48dbc1c69075321b388d235651b59abcb58ce
+785414705628bf9d1279a8042e1886440424aade
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
_sleb128_t index;
int size;
+#ifdef __ARM_EABI_UNWINDER__
+ {
+ _Unwind_Control_Block *ucbp;
+ ucbp = (_Unwind_Control_Block *) _Unwind_GetGR (context, 12);
+ if (*ucbp->pr_cache.ehtp & (1u << 31))
+ // The "compact" model is used, with one of the predefined
+ // personality functions. It doesn't have standard LSDA.
+ return NOTFOUND_OK;
+ }
+#endif
+
language_specific_data = (const unsigned char *)
_Unwind_GetLanguageSpecificData (context);