1 // PR81354 reported this test as crashing in a limited range of revisions.
2 // { dg-do compile }
3 
4 struct T { double a; double b; };
5 
foo(T Ad[],int As[2])6 void foo(T Ad[], int As[2])
7 {
8   int j;
9   int i;
10   int Bs[2] = {0,0};
11   T Bd[16];
12 
13   for (j = 0; j < 4; j++) {
14     for (i = 0; i + 1 <= j + 1; i++) {
15       Ad[i + As[0] * j] = Bd[i + Bs[0] * j];
16     }
17 
18     i = j + 1;  // <- comment out this line and it does not crash
19     for (; i + 1 < 5; i++) {
20       Ad[i + As[0] * j].a = 0.0;
21       Ad[i + As[0] * j].b = 0.0;
22     }
23   }
24 }
25