1 /* { dg-do compile } */
2 /* { dg-require-effective-target int32plus } */
3 /* { dg-options "-O -fdump-tree-forwprop1" } */
4
f(int * p,int n)5 int f(int *p, int n)
6 {
7 int (*a)[n] = (int (*)[n])p;
8 int *q = &(*a)[0];
9 return q[1];
10 }
11
g(int * p,int n)12 int g(int *p, int n)
13 {
14 int (*a)[n] = (int (*)[n])p;
15 int *q = &(*a)[2];
16 return q[-1];
17 }
18
19 /* { dg-final { scan-tree-dump-times "= MEM\\\[\\\(int \\\*\\\)\[ap\]_\[0-9\]+(?:\\(D\\))? \\\+ 4B\\\];" 2 "forwprop1" } } */
20