diff options
author | Jakub Jelinek <jakub@redhat.com> | 2015-02-18 12:37:02 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2015-02-18 12:37:02 +0100 |
commit | 4ab26ee0222cc447455f32ef755a7c17da3b001f (patch) | |
tree | 6301936495bc984c30778148808de04d76ab7225 /gcc | |
parent | 6f423f4c894fe9dada8ad862b237001c99aa6150 (diff) | |
download | gcc-4ab26ee0222cc447455f32ef755a7c17da3b001f.zip gcc-4ab26ee0222cc447455f32ef755a7c17da3b001f.tar.gz gcc-4ab26ee0222cc447455f32ef755a7c17da3b001f.tar.bz2 |
re PR ipa/65087 (r220742 causes: ICE: in ipcp_verify_propagated_values, at ipa-cp.c:1057)
PR ipa/65087
* cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
section if !implicit_section.
(cgraph_node::create_version_clone_with_body): Likewise.
* trans-mem.c (ipa_tm_create_version): Likewise.
From-SVN: r220786
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/cgraphclones.c | 5 | ||||
-rw-r--r-- | gcc/trans-mem.c | 3 |
3 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6ede457..cbc68b3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2015-02-18 Jakub Jelinek <jakub@redhat.com> + + PR ipa/65087 + * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy + section if !implicit_section. + (cgraph_node::create_version_clone_with_body): Likewise. + * trans-mem.c (ipa_tm_create_version): Likewise. + 2015-02-18 Richard Biener <rguenther@suse.de> PR tree-optimization/62217 diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c index 863081e..655b0ab 100644 --- a/gcc/cgraphclones.c +++ b/gcc/cgraphclones.c @@ -617,7 +617,7 @@ cgraph_node::create_virtual_clone (vec<cgraph_edge *> redirect_callers, ABI support for this. */ set_new_clone_decl_and_node_flags (new_node); new_node->clone.tree_map = tree_map; - if (!DECL_ONE_ONLY (old_decl)) + if (!implicit_section) new_node->set_section (get_section ()); /* Clones of global symbols or symbols with unique names are unique. */ @@ -1011,7 +1011,8 @@ cgraph_node::create_version_clone_with_body new_version_node->externally_visible = 0; new_version_node->local.local = 1; new_version_node->lowered = true; - new_version_node->set_section (get_section ()); + if (!implicit_section) + new_version_node->set_section (get_section ()); /* Clones of global symbols or symbols with unique names are unique. */ if ((TREE_PUBLIC (old_decl) && !DECL_EXTERNAL (old_decl) diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c index 146a975..078c2da 100644 --- a/gcc/trans-mem.c +++ b/gcc/trans-mem.c @@ -4967,7 +4967,8 @@ ipa_tm_create_version (struct cgraph_node *old_node) new_node->externally_visible = old_node->externally_visible; new_node->lowered = true; new_node->tm_clone = 1; - new_node->set_section (old_node->get_section ()); + if (!old_node->implicit_section) + new_node->set_section (old_node->get_section ()); get_cg_data (&old_node, true)->clone = new_node; if (old_node->get_availability () >= AVAIL_INTERPOSABLE) |