diff options
author | Ilya Enkovich <ilya.enkovich@intel.com> | 2015-06-03 11:31:08 +0000 |
---|---|---|
committer | Ilya Enkovich <ienkovich@gcc.gnu.org> | 2015-06-03 11:31:08 +0000 |
commit | 67321dcf21659f2d12d278ce8ef6250bd0eca714 (patch) | |
tree | 159c20a41fd9ceadaaad8b776d8940570e672050 /gcc/ipa-chkp.c | |
parent | b2b43e33298fd62d7348696044e51086a02b0cb2 (diff) | |
download | gcc-67321dcf21659f2d12d278ce8ef6250bd0eca714.zip gcc-67321dcf21659f2d12d278ce8ef6250bd0eca714.tar.gz gcc-67321dcf21659f2d12d278ce8ef6250bd0eca714.tar.bz2 |
ipa-chkp.c (chkp_maybe_create_clone): Create alias reference when cloning alias node.
gcc/
* ipa-chkp.c (chkp_maybe_create_clone): Create alias
reference when cloning alias node.
gcc/testsuite/
* gcc.dg/lto/chkp-removed-alias_0.c: New.
From-SVN: r224074
Diffstat (limited to 'gcc/ipa-chkp.c')
-rw-r--r-- | gcc/ipa-chkp.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/gcc/ipa-chkp.c b/gcc/ipa-chkp.c index c710291..87e21ca 100644 --- a/gcc/ipa-chkp.c +++ b/gcc/ipa-chkp.c @@ -616,12 +616,7 @@ chkp_maybe_create_clone (tree fndecl) /* Clone all aliases. */ for (i = 0; node->iterate_direct_aliases (i, ref); i++) - { - struct cgraph_node *alias = dyn_cast <cgraph_node *> (ref->referring); - struct cgraph_node *chkp_alias - = chkp_maybe_create_clone (alias->decl); - chkp_alias->create_reference (clone, IPA_REF_ALIAS, NULL); - } + chkp_maybe_create_clone (ref->referring->decl); /* Clone all thunks. */ for (e = node->callers; e; e = e->next_caller) @@ -645,7 +640,10 @@ chkp_maybe_create_clone (tree fndecl) ref = node->ref_list.first_reference (); if (ref) - chkp_maybe_create_clone (ref->referred->decl); + { + target = chkp_maybe_create_clone (ref->referred->decl); + clone->create_reference (target, IPA_REF_ALIAS); + } if (node->alias_target) { |