1/* PR tree-optimization/51466 */ 2 3extern void abort (void); 4 5__attribute__((noinline, noclone)) int 6foo (int i) 7{ 8 volatile int v[4]; 9 int *p; 10 v[i] = 6; 11 p = (int *) &v[i]; 12 return *p; 13} 14 15__attribute__((noinline, noclone)) int 16bar (int i) 17{ 18 volatile int v[4]; 19 int *p; 20 v[i] = 6; 21 p = (int *) &v[i]; 22 *p = 8; 23 return v[i]; 24} 25 26__attribute__((noinline, noclone)) int 27baz (int i) 28{ 29 volatile int v[4]; 30 int *p; 31 v[i] = 6; 32 p = (int *) &v[0]; 33 *p = 8; 34 return v[i]; 35} 36 37int 38main () 39{ 40 if (foo (3) != 6 || bar (2) != 8 || baz (0) != 8 || baz (1) != 6) 41 abort (); 42 return 0; 43} 44