http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58789
--- Comment #5 from Martin Jambor <jamborm at gcc dot gnu.org> --- Well, IPA-CP devirtualization is required to trigger the bug but it is a clone materialization problem. The following line (invoked as a consequence of fold_stmt devirtualization) in cgraph_update_edges_for_call_stmt_node causes the bug: ne = cgraph_create_edge (node, cgraph_get_create_node (new_call), new_stmt, count, frequency); cgraph_get_create_node returns an inlined clone and it gets an extra caller edge. Verifier then complains there is an un-inlined edge to an inlined node but the problem really is that there are two edges. Either we need to make sure that we keep an un-inlined node for devirtualization which cgraph_get_create_node can pick up until we are done with materializations, ore need to backport and use cgraph_get_create_real_symbol_node from http://gcc.gnu.org/ml/gcc-patches/2013-03/msg00621.html