]>
Commit | Line | Data |
---|---|---|
6cfa417f JJ |
1 | /* PR debug/56510 */ |
2 | /* { dg-do compile } */ | |
3 | /* { dg-options "-O2 -g" } */ | |
4 | ||
69bb863a | 5 | __extension__ typedef __INTPTR_TYPE__ intptr_t; |
6cfa417f JJ |
6 | struct S { unsigned long s1; void **s2[0]; }; |
7 | void **a, **b, **c, **d, **e, **f; | |
8 | ||
9 | static void ** | |
69bb863a | 10 | baz (intptr_t x, intptr_t y) |
6cfa417f JJ |
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 | |
20 | foo (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 | } |