Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/gcc.dg/20090922-1.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
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 } |