diff options
author | Jan Hubicka <jh@suse.cz> | 2011-06-09 23:39:54 +0000 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2011-06-09 23:39:54 +0000 |
commit | 0d9b51598463bc705a4fd4f15cf6b23bb6e2f0e0 (patch) | |
tree | 0334c2b97ed818d9f606fa86b5971a552a6905bf /gcc/cgraphbuild.c | |
parent | aed6902a3151826a30900c36667978c94f5a191b (diff) |
* cgraphbuild.c (record_eh_tables): Mark personality function as having
address taken.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@174869 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraphbuild.c')
-rw-r--r-- | gcc/cgraphbuild.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/cgraphbuild.c b/gcc/cgraphbuild.c index eb9da7fc16c..961804b415e 100644 --- a/gcc/cgraphbuild.c +++ b/gcc/cgraphbuild.c @@ -149,9 +149,13 @@ record_eh_tables (struct cgraph_node *node, struct function *fun) eh_region i; if (DECL_FUNCTION_PERSONALITY (node->decl)) - ipa_record_reference (node, NULL, - cgraph_get_create_node (DECL_FUNCTION_PERSONALITY (node->decl)), - NULL, IPA_REF_ADDR, NULL); + { + struct cgraph_node *per_node; + + per_node = cgraph_get_create_node (DECL_FUNCTION_PERSONALITY (node->decl)); + ipa_record_reference (node, NULL, per_node, NULL, IPA_REF_ADDR, NULL); + cgraph_mark_address_taken_node (per_node); + } i = fun->eh->region_tree; if (!i) |