summaryrefslogtreecommitdiff
path: root/gcc/cp/except.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/except.c')
-rw-r--r--gcc/cp/except.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index de83bbaa841..be7208e2f0f 100644
--- a/gcc/cp/except.c
+++ b/gcc/cp/except.c
@@ -38,6 +38,7 @@ Boston, MA 02110-1301, USA. */
#include "toplev.h"
#include "tree-inline.h"
#include "tree-iterator.h"
+#include "target.h"
static void push_eh_cleanup (tree);
static tree prepare_eh_type (tree);
@@ -79,6 +80,10 @@ init_exception_processing (void)
eh_personality_libfunc = init_one_libfunc (USING_SJLJ_EXCEPTIONS
? "__gxx_personality_sj0"
: "__gxx_personality_v0");
+ if (targetm.arm_eabi_unwinder)
+ unwind_resume_libfunc = init_one_libfunc ("__cxa_end_cleanup");
+ else
+ default_init_unwind_resume_libfunc ();
lang_eh_runtime_type = build_eh_type_type;
lang_protect_cleanup_actions = &cp_protect_cleanup_actions;