1 /* PR debug/56510 */ 2 /* { dg-do compile } */ 3 /* { dg-options "-O2 -g" } */ 4 5 __extension__ typedef __INTPTR_TYPE__ intptr_t; 6 struct S { unsigned long s1; void **s2[0]; }; 7 void **a, **b, **c, **d, **e, **f; 8 9 static void ** baz(intptr_t x,intptr_t y)10baz (intptr_t x, intptr_t y) 11 { 12 void **s = f; 13 *f = (void **) (y << 8 | (x & 0xff)); 14 f += y + 1; 15 return s; 16 } 17 18 void bar (void); 19 void foo(void)20foo (void) 21 { 22 void **g = b[4]; 23 a = b[2]; 24 b = b[1]; 25 g[2] = e; 26 void **h 27 = ((void **************************) 28 a)[1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][66]; 29 void **i = ((struct S *) h)->s2[4]; 30 d = baz (4, 3); 31 d[1] = b; 32 d[2] = a; 33 d[3] = bar; 34 b = d; 35 g[1] = i[2]; 36 a = g; 37 ((void (*) (void)) (i[1])) (); 38 } 39