PR middle-end/42151
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Nov 2009 22:27:15 +0000 (22:27 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Nov 2009 22:27:15 +0000 (22:27 +0000)
* ipa-inline.c (inline_transform): Avoid ICE when transform is called
twice.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154475 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/ipa-inline.c

index b8378a5..791dbe1 100644 (file)
@@ -1,5 +1,11 @@
 2009-11-23  Jan Hubicka  <jh@suse.cz>
 
+       PR middle-end/42151
+       * ipa-inline.c (inline_transform): Avoid ICE when transform is called
+       twice.
+
+2009-11-23  Jan Hubicka  <jh@suse.cz>
+
        * ipa-cp.c (ipcp_compute_node_scale): Work around completely
        wrong profile updates.
        * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
index 786c21c..495d885 100644 (file)
@@ -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))