Commit 75e479a8 by Ian Lance Taylor

runtime: on ARM32 EABI, don't get LSDA if compact model is used

    
    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
parent 257992db
16a48dbc1c69075321b388d235651b59abcb58ce
785414705628bf9d1279a8042e1886440424aade
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
......@@ -646,6 +646,17 @@ findstackmaps (struct _Unwind_Context *context, _Unwind_Ptr *ip, _Unwind_Ptr *sp
_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);
......
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