http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51929
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-10 11:27:39 UTC --- What happens is that cgraph_materialize_clone on the _ZN1BIcEC2E1Ai.constprop.1 clone performs: 2451 if (!node->clone_of->analyzed && !node->clone_of->clones) 2452 { 2453 cgraph_release_function_body (node->clone_of); 2454 cgraph_node_remove_callees (node->clone_of); 2455 ipa_remove_all_references (&node->clone_of->ref_list); 2456 } 2457 node->clone_of = NULL; where node->clone_of is _ZN1BIcEC2E1Ai, i.e. the __base_ctor and so the verification fails. Even before this cgraph_remove_unreachable_nodes marks the _ZN1BIcEC1E1Ai (i.e. __comp_ctor to which the call_stmts still refer) as unreachable and calls ipa_remove_all_references on it, which means I don't see a way how we could get from the _ZN1BIcEC2E1Ai to _ZN1BIcEC1E1Ai node anymore. Honza?