This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug bootstrap/40082] [4.5 Regression] Power bootstrap is broken in building libstdc++



------- Comment #3 from hubicka at ucw dot cz  2009-05-09 14:44 -------
Subject: Re:  [4.5 Regression] Power bootstrap is broken in building libstdc++

Hi,
I am testing the attached patch.  It makes testcase to compile, does it
solve bootstrap issues too?

Index: ipa.c
===================================================================
--- ipa.c       (revision 147317)
+++ ipa.c       (working copy)
@@ -92,6 +92,21 @@ cgraph_postorder (struct cgraph_node **o
   return order_pos;
 }

+/* Look for all functions inlined to NODE and update their inlined_to pointers
+   to INLINED_TO.  */
+
+static void
+update_inlined_to_pointer (struct cgraph_node *node, struct cgraph_node
*inlined_to)
+{
+  struct cgraph_edge *e;
+  for (e = node->callees; e; e = e->next_callee)
+    if (e->callee->global.inlined_to)
+      {
+        e->callee->global.inlined_to = inlined_to;
+       update_inlined_to_pointer (e->callee, inlined_to);
+      }
+}
+
 /* Perform reachability analysis and reclaim all unreachable nodes.
    If BEFORE_INLINING_P is true this function is called before inlining
    decisions has been made.  If BEFORE_INLINING_P is false this function also 
@@ -214,7 +229,8 @@ cgraph_remove_unreachable_nodes (bool be
          && !node->callers)
        {
          gcc_assert (node->clones);
-         node->global.inlined_to = false;
+         node->global.inlined_to = NULL;
+         update_inlined_to_pointer (node, node);
        }
       node->aux = NULL;
     }


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40082


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]