Initialize propagatingExceptions if __ARM_EABI_UNWINDER__.
* libsupc++/eh_personality.cc (empty_exception_spec): Define
separately in __ARM_EABI_UNWINDER__ case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118757
138bc75d-0d04-0410-961f-
82ee72b054a4
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.
Use instead of __GXX_MERGED_TYPEINFO_NAMES to condition inline
definitions.
g = static_cast<__cxa_eh_globals*>(v);
g->caughtExceptions = 0;
g->uncaughtExceptions = 0;
+#ifdef __ARM_EABI_UNWINDER__
+ g->propagatingExceptions = 0;
+#endif
}
}
else
} \
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;
#define CONTINUE_UNWINDING return _URC_CONTINUE_UNWIND
-#endif // !__ARM_EABI_UNWINDER__
-
// Return true if the filter spec is empty, ie throw().
static bool
return tmp == 0;
}
+#endif // !__ARM_EABI_UNWINDER__
+
namespace __cxxabiv1
{