diff options
author | Jan Hubicka <jh@suse.cz> | 2009-11-23 23:27:15 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2009-11-23 22:27:15 +0000 |
commit | cefdbe2fe99d5b05ed416214b9e229f31f86223b (patch) | |
tree | ee247b1cb7ba23f92c45ff518b52807f2dc03f79 | |
parent | 83a4e6e9928c2ddaf715f05cc729104200bf17c9 (diff) | |
download | gcc-cefdbe2fe99d5b05ed416214b9e229f31f86223b.zip gcc-cefdbe2fe99d5b05ed416214b9e229f31f86223b.tar.gz gcc-cefdbe2fe99d5b05ed416214b9e229f31f86223b.tar.bz2 |
re PR middle-end/42151 (verify_cgraph_node failed with -O3 -Winline)
PR middle-end/42151
* ipa-inline.c (inline_transform): Avoid ICE when transform is called
twice.
From-SVN: r154475
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ipa-inline.c | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b8378a5..791dbe1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 786c21c..495d885 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)) |