_Unwind_GetLanguageSpecificData is supposed to return a _Unwind_Ptr.
This makes a difference on M68K as it uses a different register for integer vs pointer values.
This commit is contained in:
parent
0378fc4757
commit
47a96e3a4d
|
@ -183,7 +183,7 @@ extern "C" {
|
|||
#define _Unwind_Exception _Unwind_Control_Block
|
||||
typedef char _Unwind_Exception_Class[8];
|
||||
|
||||
void * _Unwind_GetLanguageSpecificData (_Unwind_Context *);
|
||||
_Unwind_Ptr _Unwind_GetLanguageSpecificData (_Unwind_Context *);
|
||||
_Unwind_Ptr _Unwind_GetRegionStart (_Unwind_Context *);
|
||||
|
||||
_Unwind_Ptr _Unwind_GetDataRelBase (_Unwind_Context *);
|
||||
|
@ -234,7 +234,7 @@ extern "C" {
|
|||
}
|
||||
|
||||
_Unwind_Ptr _Unwind_GetRegionStart (_Unwind_Context *);
|
||||
void * _Unwind_GetLanguageSpecificData (_Unwind_Context *);
|
||||
_Unwind_Ptr _Unwind_GetLanguageSpecificData (_Unwind_Context *);
|
||||
|
||||
/* leb128 type numbers have a potentially unlimited size.
|
||||
The target of the following definitions of _sleb128_t and _uleb128_t
|
||||
|
|
|
@ -352,7 +352,7 @@ _Unwind_GetRegionStart (_Unwind_Context * context)
|
|||
|
||||
/* Find the Language specific exception data. */
|
||||
|
||||
void *
|
||||
_Unwind_Ptr
|
||||
_Unwind_GetLanguageSpecificData (_Unwind_Context * context)
|
||||
{
|
||||
_Unwind_Control_Block *ucbp;
|
||||
|
|
|
@ -518,7 +518,7 @@ _Unwind_GetRegionStart (_Unwind_Context *context)
|
|||
return (_Unwind_Ptr) ucbp->pr_cache.fnstart;
|
||||
}
|
||||
|
||||
void *
|
||||
_Unwind_Ptr
|
||||
_Unwind_GetLanguageSpecificData (_Unwind_Context *context)
|
||||
{
|
||||
_Unwind_Control_Block *ucbp;
|
||||
|
|
|
@ -347,7 +347,7 @@ _Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val)
|
|||
context->ra = (void *) val;
|
||||
}
|
||||
|
||||
void *
|
||||
_Unwind_Ptr
|
||||
_Unwind_GetLanguageSpecificData (struct _Unwind_Context *context)
|
||||
{
|
||||
return context->lsda;
|
||||
|
|
|
@ -1715,7 +1715,7 @@ _Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val)
|
|||
context->rp = val;
|
||||
}
|
||||
|
||||
void *
|
||||
_Unwind_Ptr
|
||||
_Unwind_GetLanguageSpecificData (struct _Unwind_Context *context)
|
||||
{
|
||||
return context->lsda;
|
||||
|
|
|
@ -172,7 +172,7 @@ _Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val)
|
|||
context->ra = (void *) val;
|
||||
}
|
||||
|
||||
void *
|
||||
_Unwind_Ptr
|
||||
_Unwind_GetLanguageSpecificData (struct _Unwind_Context *context)
|
||||
{
|
||||
return context->lsda;
|
||||
|
|
|
@ -137,10 +137,10 @@ _Unwind_GetIPInfo (struct _Unwind_Context *context, int *ip_before_insn)
|
|||
return __libunwind_Unwind_GetIP (context);
|
||||
}
|
||||
|
||||
extern void *__libunwind_Unwind_GetLanguageSpecificData
|
||||
extern _Unwind_Ptr __libunwind_Unwind_GetLanguageSpecificData
|
||||
(struct _Unwind_Context *);
|
||||
|
||||
void *
|
||||
_Unwind_Ptr
|
||||
_Unwind_GetLanguageSpecificData (struct _Unwind_Context *context)
|
||||
{
|
||||
return __libunwind_Unwind_GetLanguageSpecificData (context);
|
||||
|
|
|
@ -365,7 +365,7 @@ _Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val)
|
|||
context->ra = (void *) val;
|
||||
}
|
||||
|
||||
void *
|
||||
_Unwind_Ptr
|
||||
_Unwind_GetLanguageSpecificData (struct _Unwind_Context *context)
|
||||
{
|
||||
return context->lsda;
|
||||
|
|
|
@ -177,7 +177,7 @@ extern void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr);
|
|||
/* @@@ Retrieve the CFA of the given context. */
|
||||
extern _Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *);
|
||||
|
||||
extern void *_Unwind_GetLanguageSpecificData (struct _Unwind_Context *);
|
||||
extern _Unwind_Ptr _Unwind_GetLanguageSpecificData (struct _Unwind_Context *);
|
||||
|
||||
extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *);
|
||||
|
||||
|
|
|
@ -131,8 +131,8 @@ _Unwind_SetIP (struct _Unwind_Context *c, _Unwind_Ptr val)
|
|||
c->ra = val;
|
||||
}
|
||||
|
||||
void *
|
||||
_Unwind_GetLanguageSpecificData (struct _Unwind_Context *c)
|
||||
_Unwind_Ptr
|
||||
_Unwind_GetLanguageSpecificData (struct _Unwind_Context *c
|
||||
{
|
||||
return c->disp->HandlerData;
|
||||
}
|
||||
|
|
|
@ -231,7 +231,7 @@ _Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val)
|
|||
context->fc->call_site = val - 1;
|
||||
}
|
||||
|
||||
void *
|
||||
_Unwind_Ptr
|
||||
_Unwind_GetLanguageSpecificData (struct _Unwind_Context *context)
|
||||
{
|
||||
return context->fc->lsda;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: unwind.c,v 1.1 2012/05/26 22:02:29 christos Exp $ */
|
||||
/* $NetBSD: unwind.c,v 1.2 2014/03/24 21:26:01 joerg Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2012 The NetBSD Foundation, Inc.
|
||||
|
@ -51,7 +51,7 @@ tracer(struct _Unwind_Context *ctx, void *arg)
|
|||
return 0;
|
||||
}
|
||||
if (t->n < t->len)
|
||||
t->arr[t->n++] = _Unwind_GetIP(ctx);
|
||||
t->arr[t->n++] = (void *)_Unwind_GetIP(ctx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: unwind.h,v 1.1 2012/05/26 22:02:29 christos Exp $ */
|
||||
/* $NetBSD: unwind.h,v 1.2 2014/03/24 21:26:01 joerg Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2012 The NetBSD Foundation, Inc.
|
||||
|
@ -54,7 +54,7 @@ _Unwind_Ptr _Unwind_GetDataRelBase(struct _Unwind_Context *);
|
|||
_Unwind_Word _Unwind_GetGR(struct _Unwind_Context *, int);
|
||||
_Unwind_Ptr _Unwind_GetIP(struct _Unwind_Context *);
|
||||
_Unwind_Ptr _Unwind_GetIPInfo(struct _Unwind_Context *, int *);
|
||||
void *_Unwind_GetLanguageSpecificData(
|
||||
_Unwind_Ptr _Unwind_GetLanguageSpecificData(
|
||||
struct _Unwind_Context *);
|
||||
_Unwind_Ptr _Unwind_GetRegionStart(struct _Unwind_Context *);
|
||||
_Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *);
|
||||
|
|
Loading…
Reference in New Issue