diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2019-11-13 22:02:11 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2019-11-13 21:02:11 +0000 |
commit | b914768c1968d924d77bbe3f4e707c6105f3682c (patch) | |
tree | 8f86df5d2117969032167f987ff195a4f553fe26 /gcc/ipa-prop.c | |
parent | 7b34a284cab5d533552c1df995a88f7167d243bd (diff) |
re PR ipa/92421 (ICE in inline_small_functions, at ipa-inline.c:2001 since r277759)
PR c++/92421
* ipa-prop.c (update_indirect_edges_after_inlining):
Mark parameter as used.
* ipa-inline.c (recursive_inlining): Reset node cache
after inlining.
(inline_small_functions): Remove checking ifdef.
* ipa-inline-analysis.c (do_estimate_edge_time): Verify
cache consistency.
* g++.dg/torture/pr92421.C: New testcase.
From-SVN: r278159
Diffstat (limited to 'gcc/ipa-prop.c')
-rw-r--r-- | gcc/ipa-prop.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index 312b2108f84..2cb8c585c24 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -3537,6 +3537,11 @@ update_indirect_edges_after_inlining (struct cgraph_edge *cs, if (ici->polymorphic && !ipa_get_jf_ancestor_type_preserved (jfunc)) ici->vptr_changed = true; + ipa_set_param_used_by_indirect_call (new_root_info, + ici->param_index, true); + if (ici->polymorphic) + ipa_set_param_used_by_polymorphic_call (new_root_info, + ici->param_index, true); } } else |