On 26 September 2011 08:13, Jiangning Liu wrote: > PING... > >> -----Original Message----- >> From: Jiangning Liu [mailto:jiangning....@arm.com] >> Sent: Thursday, September 22, 2011 10:19 AM >> To: gcc@gcc.gnu.org >> Cc: 'ja...@gcc.gnu.org'; 'muel...@gcc.gnu.org'; 'rgue...@gcc.gnu.org'; >> Matthew Gretton-Dann >> Subject: A question about detecting array bounds for case Warray- >> bounds-3.c >> >> Hi, >> >> For case gcc/testsuite/gcc.dg/Warray-bounds-3.c, obviously it is an >> invalid C program, because the last iterations of all the loops cause >> the access of arrays is beyond the max size of corresponding array >> declarations. The condition of checking upper bound should be "<" >> rather than "<=".
Which loops are you referring to? struct iovec iov[43]; ... for (; cnt <= 40; ++cnt) { iov[2 + cnt].iov_base = (void *) (time->am_pm[cnt - 38] ?: ""); iov[2 + cnt].iov_len = strlen (iov[2 + cnt].iov_base) + 1; } What's wrong with that? The last element accessed is iov[42] which is ok.