diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2007-06-13 19:31:58 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2007-06-13 19:31:58 +0000 |
commit | ddb4f387ee60618b1cb04d2143b47f808f9c9e02 (patch) | |
tree | 192108f6e223cc6ce0e5ddafcb6dd72d42e86d70 /libstdc++-v3/libsupc++/eh_personality.cc | |
parent | 29dc9e20114a1b70e01fe6fec5d329c06b75718d (diff) | |
download | gcc-ddb4f387ee60618b1cb04d2143b47f808f9c9e02.zip gcc-ddb4f387ee60618b1cb04d2143b47f808f9c9e02.tar.gz gcc-ddb4f387ee60618b1cb04d2143b47f808f9c9e02.tar.bz2 |
eh_arm.cc (__cxa_type_match): Handle foreign exceptions.
* libsupc++/eh_arm.cc (__cxa_type_match): Handle foreign
exceptions.
* libsubpc++/eh_personality.cc: Don't try to set up foreign or
forced unwind types here when using the ARM EABI unwinder.
From-SVN: r125683
Diffstat (limited to 'libstdc++-v3/libsupc++/eh_personality.cc')
-rw-r--r-- | libstdc++-v3/libsupc++/eh_personality.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libstdc++-v3/libsupc++/eh_personality.cc b/libstdc++-v3/libsupc++/eh_personality.cc index bbcc007..f1cda0c 100644 --- a/libstdc++-v3/libsupc++/eh_personality.cc +++ b/libstdc++-v3/libsupc++/eh_personality.cc @@ -542,6 +542,12 @@ PERSONALITY_FUNCTION (int version, bool saw_cleanup = false; bool saw_handler = false; +#ifdef __ARM_EABI_UNWINDER__ + throw_type = ue_header; + if ((actions & _UA_FORCE_UNWIND) + || foreign_exception) + thrown_ptr = 0; +#else // During forced unwinding, match a magic exception type. if (actions & _UA_FORCE_UNWIND) { @@ -556,9 +562,6 @@ PERSONALITY_FUNCTION (int version, thrown_ptr = 0; } else -#ifdef __ARM_EABI_UNWINDER__ - throw_type = ue_header; -#else throw_type = xh->exceptionType; #endif |