1/* PR target/39423 */
2
3typedef unsigned short uint16_t;
4
5typedef struct
6{
7  short x, y;
8} P;
9
10typedef struct
11{
12  uint16_t w, h;
13} D;
14
15typedef struct
16{
17  P p;
18  D s;
19} A;
20
21typedef struct
22{
23  uint16_t f;
24} W;
25
26typedef struct
27{
28  void* w;
29  D s;
30} T;
31
32extern void* foo00 (void*, void*);
33
34void foo01 (W* w)
35{
36  void* it;
37  uint16_t c, i;
38  T* cl;
39  T* rs;
40  T* t;
41  uint16_t rh = 0;
42  uint16_t v = !(w->f & 0x8000);
43  A a = { };
44
45  for (c = 0, it = foo00 (w, 0); it; it = foo00 (w, it), c++);
46
47  for (it = foo00 (w, 0), i = 0; i <= c; it = foo00 (w, it), i++, cl++)
48    {
49      if (i)
50 	for (t = rs; t < cl; t++)
51	  *((uint16_t*)&t->s + ((!v) ? 1 : 0)) = rh;
52
53      rh = (rh > ((*((uint16_t*)&a.s + ((!v) ? 1 : 0)))))
54	   ? rh
55	   : ((*((uint16_t*)&a.s + ((!v) ? 1 : 0))));
56    }
57}
58