On 26 September 2011 08:13, Jiangning Liu wrote:
> PING...
>
>> -----Original Message-----
>> From: Jiangning Liu [mailto:[email protected]]
>> Sent: Thursday, September 22, 2011 10:19 AM
>> To: [email protected]
>> Cc: '[email protected]'; '[email protected]'; '[email protected]';
>> 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.