/* { dg-do run } */ | |
struct X { | |
int i; | |
int a[4]; | |
} m; | |
int a[4]; | |
int __attribute__((noinline)) foo(int b) | |
{ | |
int (*p)[4] = b ? &a : &m.a; | |
a[3] = 0; | |
(*p)[3] = 1; | |
return (*p)[3] + (*p)[2] + (*p)[1] + a[0] + a[3]; | |
} | |
extern void abort (void); | |
int main() | |
{ | |
int i; | |
for (i = 0; i < 4; ++i) | |
a[i] = 0; | |
if (foo(1) != 2) | |
abort (); | |
return 0; | |
} | |