aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2015-02-18 12:37:02 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2015-02-18 12:37:02 +0100
commit4ab26ee0222cc447455f32ef755a7c17da3b001f (patch)
tree6301936495bc984c30778148808de04d76ab7225 /gcc
parent6f423f4c894fe9dada8ad862b237001c99aa6150 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/cgraphclones.c5
-rw-r--r--gcc/trans-mem.c3
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)