From: Richard Guenther Date: Fri, 21 Sep 2012 10:09:04 +0000 (+0000) Subject: re PR middle-end/54638 (bootstraping 4.7.2 with 4.8 broken: cc1: malloc(): memory... X-Git-Tag: releases/gcc-4.6.4~355 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=86a1d95f6c6020dec97ee310a1cd51485bdca958;p=thirdparty%2Fgcc.git re PR middle-end/54638 (bootstraping 4.7.2 with 4.8 broken: cc1: malloc(): memory corruption) 2012-09-21 Richard Guenther PR middle-end/54638 Backport from mainline 2012-04-19 Richard Guenther * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound array access. From-SVN: r191606 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f77a5c860204..29065b818b1b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2012-09-21 Richard Guenther + + PR middle-end/54638 + Backport from mainline + 2012-04-19 Richard Guenther + + * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound + array access. + 2012-09-15 Joseph Myers PR c/54552 diff --git a/gcc/ira-int.h b/gcc/ira-int.h index 049a07f89d5b..a58f0ca0c904 100644 --- a/gcc/ira-int.h +++ b/gcc/ira-int.h @@ -1123,8 +1123,13 @@ static inline bool ira_allocno_object_iter_cond (ira_allocno_object_iterator *i, ira_allocno_t a, ira_object_t *o) { - *o = ALLOCNO_OBJECT (a, i->n); - return i->n++ < ALLOCNO_NUM_OBJECTS (a); + int n = i->n++; + if (n < ALLOCNO_NUM_OBJECTS (a)) + { + *o = ALLOCNO_OBJECT (a, n); + return true; + } + return false; } /* Loop over all objects associated with allocno A. In each