diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b8378a58b12..791dbe17f10 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-11-23 Jan Hubicka + + PR middle-end/42151 + * ipa-inline.c (inline_transform): Avoid ICE when transform is called + twice. + 2009-11-23 Jan Hubicka * ipa-cp.c (ipcp_compute_node_scale): Work around completely diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 786c21c0ca3..495d8851247 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -1974,6 +1974,11 @@ inline_transform (struct cgraph_node *node) unsigned int todo = 0; struct cgraph_edge *e; + /* FIXME: Currently the passmanager is adding inline transform more than once to some + clones. This needs revisiting after WPA cleanups. */ + if (cfun->after_inlining) + return 0; + /* We might need the body of this function so that we can expand it inline somewhere else. */ if (cgraph_preserve_function_body_p (node->decl))