summaryrefslogtreecommitdiff
path: root/gcc/trans-mem.c
diff options
context:
space:
mode:
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-25 17:14:25 +0000
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-25 17:14:25 +0000
commit709ed3205e8b10140b52c08d5d1078182b4e7256 (patch)
tree40067ca7851e45199bb376f0d4309f06e96770ba /gcc/trans-mem.c
parentbc2775f5a218366df69fe01eea36e6f24eb6041b (diff)
downloadgcc-709ed3205e8b10140b52c08d5d1078182b4e7256.tar.gz
PR middle-end/53008
* trans-mem.c (ipa_tm_create_version_alias): Output new_node if accessed indirectly. (ipa_tm_create_version): Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187887 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/trans-mem.c')
-rw-r--r--gcc/trans-mem.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index 8887b9afee6..aa4d7c0a06d 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -4328,7 +4328,8 @@ ipa_tm_create_version_alias (struct cgraph_node *node, void *data)
record_tm_clone_pair (old_decl, new_decl);
- if (info->old_node->symbol.force_output)
+ if (info->old_node->symbol.force_output
+ || ipa_ref_list_first_referring (&info->old_node->symbol.ref_list))
ipa_tm_mark_force_output_node (new_node);
return false;
}
@@ -4381,7 +4382,8 @@ ipa_tm_create_version (struct cgraph_node *old_node)
record_tm_clone_pair (old_decl, new_decl);
cgraph_call_function_insertion_hooks (new_node);
- if (old_node->symbol.force_output)
+ if (old_node->symbol.force_output
+ || ipa_ref_list_first_referring (&old_node->symbol.ref_list))
ipa_tm_mark_force_output_node (new_node);
/* Do the same thing, but for any aliases of the original node. */