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])5int ar1(int (*p)[3], int (*q)[3]) 6 { 7 (*p)[0] = 1; 8 (*q)[1] = 2; 9 return (*p)[0]; 10 } main()11int 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