/* { dg-do run } */ | |
/* We do not want to treat int[3] as an object that cannot overlap | |
itself but treat it as arbitrary sub-array of a larger array object. */ | |
int ar1(int (*p)[3], int (*q)[3]) | |
{ | |
(*p)[0] = 1; | |
(*q)[1] = 2; | |
return (*p)[0]; | |
} | |
int main() | |
{ | |
int a[4]; | |
if (ar1 ((int (*)[3])&a[1], (int (*)[3])&a[0]) != 2) | |
__builtin_abort (); | |
return 0; | |
} |