diff options
author | Jan Hubicka <jh@suse.cz> | 2010-06-28 17:12:11 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2010-06-28 15:12:11 +0000 |
commit | f0cc75e07893d05abcfe0287dc2c1071680e0c6f (patch) | |
tree | 7b8a52cdd4f55b6dc7d70a1d71f3b2b05e29d5da /gcc/ipa-inline.c | |
parent | 1b9503a1f5769e6b09d7a054ad2260d0fa8474d2 (diff) | |
download | gcc-f0cc75e07893d05abcfe0287dc2c1071680e0c6f.zip gcc-f0cc75e07893d05abcfe0287dc2c1071680e0c6f.tar.gz gcc-f0cc75e07893d05abcfe0287dc2c1071680e0c6f.tar.bz2 |
re PR tree-optimization/44357 (internal compiler error: in cgraph_decide_inlining_of_small_functions)
PR tree-optimization/44357
* ipa-inline.c (add_new_edges_to_heap): Do not add edges to uninlinable
functions.
PR tree-optimization/44357
* g++.dg/torture/pr44357.C: New testcase.
From-SVN: r161495
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r-- | gcc/ipa-inline.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 266d481..f9e4cf3 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -968,7 +968,9 @@ add_new_edges_to_heap (fibheap_t heap, VEC (cgraph_edge_p, heap) *new_edges) struct cgraph_edge *edge = VEC_pop (cgraph_edge_p, new_edges); gcc_assert (!edge->aux); - edge->aux = fibheap_insert (heap, cgraph_edge_badness (edge, false), edge); + if (edge->callee->local.inlinable + && cgraph_default_inline_p (edge->callee, &edge->inline_failed)) + edge->aux = fibheap_insert (heap, cgraph_edge_badness (edge, false), edge); } } |