aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-06-28 17:12:11 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-06-28 15:12:11 +0000
commitf0cc75e07893d05abcfe0287dc2c1071680e0c6f (patch)
tree7b8a52cdd4f55b6dc7d70a1d71f3b2b05e29d5da /gcc/ipa-inline.c
parent1b9503a1f5769e6b09d7a054ad2260d0fa8474d2 (diff)
downloadgcc-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.c4
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);
}
}