111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2 -g -funroll-loops -std=gnu99" } */
|
|
3
|
|
4 struct S
|
|
5 {
|
|
6 unsigned long s1;
|
|
7 int **s2;
|
|
8 };
|
|
9 struct T
|
|
10 {
|
|
11 unsigned long t1, t2;
|
|
12 };
|
|
13 struct U
|
|
14 {
|
|
15 int u1, u2;
|
|
16 unsigned long u3;
|
|
17 };
|
|
18 struct V
|
|
19 {
|
|
20 int v1, v3;
|
|
21 struct T *v2;
|
|
22 struct U *v4;
|
|
23 };
|
|
24 struct W
|
|
25 {
|
|
26 int w1;
|
|
27 struct V **w2;
|
|
28 };
|
|
29 struct S *foo1 (void);
|
|
30 int *foo2 (void);
|
|
31
|
|
32 void
|
|
33 test (struct W *w)
|
|
34 {
|
|
35 for (int i = 0; i < w->w1; i++)
|
|
36 {
|
|
37 struct V *v = w->w2[i];
|
|
38 struct S *t = foo1 ();
|
|
39 if (!t)
|
|
40 for (int j; j < v->v1;)
|
|
41 {
|
|
42 struct T *q = &v->v2[j];
|
|
43 t += (q->t2 - q->t1) * 45000L;
|
|
44 }
|
|
45 for (; v->v3;)
|
|
46 {
|
|
47 struct U *v4 = (struct U *) &v->v4;
|
|
48 if (v4->u1 && v4->u2 >= 0 && v4->u2)
|
|
49 {
|
|
50 int *s = foo2 ();
|
|
51 if (!s)
|
|
52 for (int k = 0; k <= v4->u2; k++)
|
|
53 {
|
|
54 struct T *q = &v->v2[k];
|
|
55 if (k == v4->u2)
|
|
56 v4->u3 += (q->t1) * 1000000;
|
|
57 }
|
|
58 t->s2[t->s1] = s;
|
|
59 }
|
|
60 }
|
|
61 int *s = foo2 ();
|
|
62 if (!t)
|
|
63 t->s2[t->s1] = s;
|
|
64 }
|
|
65 }
|