blob: 7ab37f4e9e19d8de86b28b402f3fed9b4e6f2fe9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
/* Check that loops whose final iteration is undefined are detected. */
/* { dg-do compile } */
/* { dg-options "-O2 -Waggressive-loop-optimizations" } */
void doSomething(char);
char array1[5];
char array2[5];
void
foo (int p)
{
int i;
for (i=0;
(p
? array1[i] /* { dg-message "note: possible undefined statement is here" } */
: array2[i]) /* { dg-message "note: possible undefined statement is here" } */
&& i < 100; /* { dg-warning "loop exit may only be reached after undefined behavior" } */
i++)
{
if (i >= 5) /* { dg-warning "loop exit may only be reached after undefined behavior" } */
break;
doSomething(array1[i]);
}
}
|