eh_globals.cc (__cxxabiv1::__cxa_get_globals): Initialize propagatingExceptions if __ARM_EABI_UNWINDER__.

* libsupc++/eh_globals.cc (__cxxabiv1::__cxa_get_globals):
	Initialize propagatingExceptions if __ARM_EABI_UNWINDER__.
	* libsupc++/eh_personality.cc (empty_exception_spec): Define
	separately in __ARM_EABI_UNWINDER__ case.

From-SVN: r118757
This commit is contained in:
Joseph Myers 2006-11-13 13:28:28 +00:00 committed by Joseph Myers
parent b54c93b7b8
commit 46fb6400ee
3 changed files with 23 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2006-11-13 Joseph Myers <joseph@codesourcery.com>
* libsupc++/eh_globals.cc (__cxxabiv1::__cxa_get_globals):
Initialize propagatingExceptions if __ARM_EABI_UNWINDER__.
* libsupc++/eh_personality.cc (empty_exception_spec): Define
separately in __ARM_EABI_UNWINDER__ case.
2006-11-13 Joseph Myers <joseph@codesourcery.com>
* libsupc++/typeinfo (__GXX_TYPEINFO_EQUALITY_INLINE): Define.

View File

@ -140,6 +140,9 @@ __cxxabiv1::__cxa_get_globals() throw()
g = static_cast<__cxa_eh_globals*>(v);
g->caughtExceptions = 0;
g->uncaughtExceptions = 0;
#ifdef __ARM_EABI_UNWINDER__
g->propagatingExceptions = 0;
#endif
}
}
else

View File

@ -192,6 +192,17 @@ restore_caught_exception(struct _Unwind_Exception* ue_header,
} \
while (0)
// Return true if the filter spec is empty, ie throw().
static bool
empty_exception_spec (lsda_header_info *info, _Unwind_Sword filter_value)
{
const _Unwind_Word* e = ((const _Unwind_Word*) info->TType)
- filter_value - 1;
return *e == 0;
}
#else
typedef const std::type_info _throw_typet;
@ -312,8 +323,6 @@ restore_caught_exception(struct _Unwind_Exception* ue_header,
#define CONTINUE_UNWINDING return _URC_CONTINUE_UNWIND
#endif // !__ARM_EABI_UNWINDER__
// Return true if the filter spec is empty, ie throw().
static bool
@ -326,6 +335,8 @@ empty_exception_spec (lsda_header_info *info, _Unwind_Sword filter_value)
return tmp == 0;
}
#endif // !__ARM_EABI_UNWINDER__
namespace __cxxabiv1
{