1 /* { dg-do compile } */
2 /* { dg-options "-O -fstrict-overflow" } */
3
4 struct S
5 {
6 int i;
7 };
8
9 char A[64];
10
11 void foo (char **dst, int i)
12 {
13 char *p = A + 16;
14 while (i--)
15 {
16 int b = ((struct S *) (&p[i * 16 + 4]))->i;
17 char *c = A + i * 16;
18 dst[i] = c + b;
19 }
20 }