PR sanitizer/65280
[official-gcc.git] / gcc / testsuite / gcc.dg / undefined-loop-2.c
blob7ab37f4e9e19d8de86b28b402f3fed9b4e6f2fe9
1 /* Check that loops whose final iteration is undefined are detected. */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -Waggressive-loop-optimizations" } */
5 void doSomething(char);
7 char array1[5];
8 char array2[5];
10 void
11 foo (int p)
13 int i;
14 for (i=0;
16 ? array1[i] /* { dg-message "note: possible undefined statement is here" } */
17 : array2[i]) /* { dg-message "note: possible undefined statement is here" } */
18 && i < 100; /* { dg-warning "loop exit may only be reached after undefined behavior" } */
19 i++)
21 if (i >= 5) /* { dg-warning "loop exit may only be reached after undefined behavior" } */
22 break;
23 doSomething(array1[i]);