re PR ipa/65087 (r220742 causes: ICE: in ipcp_verify_propagated_values, at ipa-cp...
authorJakub Jelinek <jakub@redhat.com>
Wed, 18 Feb 2015 11:37:02 +0000 (12:37 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 18 Feb 2015 11:37:02 +0000 (12:37 +0100)
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

gcc/ChangeLog
gcc/cgraphclones.c
gcc/trans-mem.c

index 6ede457..cbc68b3 100644 (file)
@@ -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
index 863081e..655b0ab 100644 (file)
@@ -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)
index 146a975..078c2da 100644 (file)
@@ -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)