aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2011-10-02 17:06:11 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2011-10-02 15:06:11 +0000
commit4762f56169a78b4a15e8c7b6bb96ed3ceedfcc4c (patch)
treeed9d589b6d21c1f81cea594cb96a9d2447ef866b /gcc/cgraphunit.c
parent467a8db025e7513bca07688dc3eaf515bed0eb87 (diff)
downloadgcc-4762f56169a78b4a15e8c7b6bb96ed3ceedfcc4c.zip
gcc-4762f56169a78b4a15e8c7b6bb96ed3ceedfcc4c.tar.gz
gcc-4762f56169a78b4a15e8c7b6bb96ed3ceedfcc4c.tar.bz2
* cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
From-SVN: r179430
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 5964570..c75c130 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))))