1 /* { dg-do run } */
2 
3 /* We do not want to treat int[3] as an object that cannot overlap
4    itself but treat it as arbitrary sub-array of a larger array object.  */
ar1(int (* p)[3],int (* q)[3])5 int ar1(int (*p)[3], int (*q)[3])
6 {
7   (*p)[0] = 1;
8   (*q)[1] = 2;
9   return (*p)[0];
10 }
main()11 int main()
12 {
13   int a[4];
14   if (ar1 ((int (*)[3])&a[1], (int (*)[3])&a[0]) != 2)
15     __builtin_abort ();
16   return 0;
17 }
18