http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46823
Martin Jambor <jamborm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org --- Comment #8 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-01-07 13:04:53 UTC --- For the record, my current hypothesis is that in verify_cgraph_node, in condition else if (!e->callee->global.inlined_to && decl && cgraph_get_node (decl) && (e->callee->former_clone_of != cgraph_get_node (decl)->decl) && !clone_of_p (cgraph_node (decl), e->callee)) the (e->callee->former_clone_of != cgraph_get_node (decl)->decl) is insufficient in the sense that it should be accompanied with && (!e->callee->former_clone_of || (e->callee->former_clone_of != cgraph_get_node (decl)->former_clone_of)) Basically what happens that cgraph_node (decl) and e->callee have the same former_clone_of one is not clone of each other. I am now about to investigate how exactly this appears in the IL to be sure it can actually happen legitimately.