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-inline-analysis.c | |
parent | 7b34a284cab5d533552c1df995a88f7167d243bd (diff) | |
download | gcc-b914768c1968d924d77bbe3f4e707c6105f3682c.zip gcc-b914768c1968d924d77bbe3f4e707c6105f3682c.tar.gz gcc-b914768c1968d924d77bbe3f4e707c6105f3682c.tar.bz2 |
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-inline-analysis.c')
-rw-r--r-- | gcc/ipa-inline-analysis.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index 2acb2be..b45063b 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -210,6 +210,19 @@ do_estimate_edge_time (struct cgraph_edge *edge) time = e->entry.time; nonspec_time = e->entry.nonspec_time; hints = e->entry.hints; + if (flag_checking) + { + sreal chk_time, chk_nonspec_time; + int chk_size, chk_min_size; + + ipa_hints chk_hints; + ctx.estimate_size_and_time (&chk_size, &chk_min_size, + &chk_time, &chk_nonspec_time, + &chk_hints); + gcc_assert (chk_size == size && chk_time == time + && chk_nonspec_time == nonspec_time + && chk_hints == hints); + } } else { |