aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-02 15:06:11 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2011-10-02 15:06:11 +0000
commit9ed50dd9c4eb6aa7c4e3b1873c3746fc6eb81529 (patch)
treeed9d589b6d21c1f81cea594cb96a9d2447ef866b /gcc/cgraphunit.c
parent941125aa76aa3bfc7cdac563a102881b1ba642e3 (diff)
* cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179430 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r--gcc/cgraphunit.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 5964570d882..c75c1300408 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -426,7 +426,9 @@ verify_edge_count_and_frequency (struct cgraph_edge *e)
Remove this once edges are actualy removed from the function at that time. */
&& (e->frequency
|| (inline_edge_summary_vec
- && !inline_edge_summary (e)->predicate))
+ && ((VEC_length(inline_edge_summary_t, inline_edge_summary_vec)
+ <= (unsigned) e->uid)
+ || !inline_edge_summary (e)->predicate)))
&& (e->frequency
!= compute_call_stmt_bb_frequency (e->caller->decl,
gimple_bb (e->call_stmt))))