This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/40082] [4.5 Regression] Power bootstrap is broken in building libstdc++
- From: "hubicka at ucw dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 May 2009 14:44:29 -0000
- Subject: [Bug bootstrap/40082] [4.5 Regression] Power bootstrap is broken in building libstdc++
- References: <bug-40082-17357@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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