http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55797
--- Comment #10 from Jan Hubicka <hubicka at gcc dot gnu.org> 2013-01-23
14:19:51 UTC ---
I am testing the following patch. It is a side case where we save function body
but the function we save the body of becomes unnecesary as a result of dead
block removal during inlining that is caused by ipa-pure-const proving function
nothorw.
We get it almost right by removing the unnecesary clone after saving, but we
forget about the edge.
Index: cgraphclones.c
===================================================================
--- cgraphclones.c (revision 195370)
+++ cgraphclones.c (working copy)
@@ -570,7 +570,10 @@ cgraph_remove_node_and_inline_clones (st
bool found = false;
if (node == forbidden_node)
- return true;
+ {
+ cgraph_remove_edge (node->callers);
+ return true;
+ }
for (e = node->callees; e; e = next)
{
next = e->next_callee;