aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-eh.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r--gcc/tree-eh.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index d9baf71..ac87f42 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -1939,6 +1939,14 @@ lower_eh_constructs (void)
htab_delete (finally_tree);
collect_eh_region_array ();
+
+ /* If this function needs a language specific EH personality routine
+ and the frontend didn't already set one do so now. */
+ if (function_needs_eh_personality (cfun) == eh_personality_lang
+ && !DECL_FUNCTION_PERSONALITY (current_function_decl))
+ DECL_FUNCTION_PERSONALITY (current_function_decl)
+ = lang_hooks.eh_personality ();
+
return 0;
}