Hi, the following one-liner fixes LTO build of SPEC 2006 483.xalancbmk. The problem is that code that adds new call graph edges for newly-direct calls is triggered for "zombie clones," clones which exist only to facilitate materialization of their descendant clones and will be thrown away afterwards, and which do not have and should not have any outgoing edges.
I have successfully bootstrapped and tested this patch on x86-64-linux. I have also verified that 483.xalancbmk builds (with -g0) with it. It was approved by Honza in bugzilla and it just looks so safe that I'm going to commit it now even though it's Friday :-) Thanks, Martin 2011-04-22 Martin Jambor <mjam...@suse.cz> PR middle-end/48585 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes. Index: src/gcc/tree-inline.c =================================================================== --- src.orig/gcc/tree-inline.c +++ src/gcc/tree-inline.c @@ -1725,6 +1725,7 @@ copy_bb (copy_body_data *id, basic_block if ((!edge || (edge->indirect_inlining_edge && id->transform_call_graph_edges == CB_CGE_MOVE_CLONES)) + && id->dst_node->analyzed && (fn = gimple_call_fndecl (stmt)) != NULL) { struct cgraph_node *dest = cgraph_get_node (fn);