The attached patch, submitted on behalf of Dan Jacobowitz, fixes an
unwind bug when using RealView and libgcc.
It's an old patch that has been in CodeSourcery and Linaro toolchains
for sometime, but somehow escaped being posted here.
OK? (For stage 1?)
Andrew
2008-09-08 Daniel Jacobowitz <d...@codesourcery.com>
gcc/
* config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
for barrier handlers.
--- a/gcc/config/arm/unwind-arm.c
+++ b/gcc/config/arm/unwind-arm.c
@@ -1196,8 +1196,6 @@ __gnu_unwind_pr_common (_Unwind_State state,
ucbp->barrier_cache.bitpattern[4] = (_uw) &data[1];
if (data[0] & uint32_highbit)
- phase2_call_unexpected_after_unwind = 1;
- else
{
data += rtti_count + 1;
/* Setup for entry to the handler. */
@@ -1207,6 +1205,8 @@ __gnu_unwind_pr_common (_Unwind_State state,
_Unwind_SetGR (context, 0, (_uw) ucbp);
return _URC_INSTALL_CONTEXT;
}
+ else
+ phase2_call_unexpected_after_unwind = 1;
}
if (data[0] & uint32_highbit)
data++;