aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2009-07-30 18:26:09 +0200
committerMartin Jambor <jamborm@gcc.gnu.org>2009-07-30 18:26:09 +0200
commit2d4b90b1832bba12ababda73ce8110c94a5adf78 (patch)
treef6460af39d2f4f54a9cf53ee18228403a092a227 /gcc/ipa-inline.c
parent4380ae3548817d753ca153c7bfbf1d77c9469e9b (diff)
downloadgcc-2d4b90b1832bba12ababda73ce8110c94a5adf78.zip
gcc-2d4b90b1832bba12ababda73ce8110c94a5adf78.tar.gz
gcc-2d4b90b1832bba12ababda73ce8110c94a5adf78.tar.bz2
re PR tree-optimization/40570 (ICE with recursion at -O3)
2009-07-30 Martin Jambor <mjambor@suse.cz> PR tree-optimization/40570 * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single use inlining loops. * testsuite/gcc.c-torture/compile/pr40570.c: New test. From-SVN: r150263
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r--gcc/ipa-inline.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 040096f..dde8181 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -1227,6 +1227,8 @@ cgraph_decide_inlining (void)
&& !node->needed
&& node->local.inlinable
&& node->callers->inline_failed
+ && node->callers->caller != node
+ && node->callers->caller->global.inlined_to != node
&& !gimple_call_cannot_inline_p (node->callers->call_stmt)
&& !DECL_EXTERNAL (node->decl)
&& !DECL_COMDAT (node->decl))