summaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2009-11-23 23:27:15 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2009-11-23 22:27:15 +0000
commitcefdbe2fe99d5b05ed416214b9e229f31f86223b (patch)
treeee247b1cb7ba23f92c45ff518b52807f2dc03f79 /gcc/ipa-inline.c
parent83a4e6e9928c2ddaf715f05cc729104200bf17c9 (diff)
downloadgcc-cefdbe2fe99d5b05ed416214b9e229f31f86223b.tar.gz
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
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r--gcc/ipa-inline.c5
1 files changed, 5 insertions, 0 deletions
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))