1 /*
2 * Copyright (c) 2021, Alliance for Open Media. All rights reserved.
3 *
4 * This source code is subject to the terms of the BSD 2 Clause License and
5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6 * was not distributed with this source code in the LICENSE file, you can
7 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8 * Media Patent License 1.0 was not distributed with this source code in the
9 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10 */
11
12 typedef struct XD {
13 int u;
14 int v;
15 } XD;
16
17 typedef struct RD {
18 XD *xd;
19 int u;
20 int v;
21 } RD;
22
23 typedef struct VP9_COMP {
24 int y;
25 RD *rd;
26 RD rd2;
27 int arr[3];
28 union {
29 int z;
30 };
31 struct {
32 int w;
33 };
34 } VP9_COMP;
35
sub_func(VP9_COMP * cpi,int b)36 int sub_func(VP9_COMP *cpi, int b) {
37 int d;
38 cpi->y += 1;
39 cpi->y -= b;
40 d = cpi->y * 2;
41 return d;
42 }
43
func_id_forrest_show(VP9_COMP * cpi,int b)44 int func_id_forrest_show(VP9_COMP *cpi, int b) {
45 int c = 2;
46 int x = cpi->y + c * 2 + 1;
47 int y;
48 RD *rd = cpi->rd;
49 y = cpi->rd->u;
50 return x + y;
51 }
52
func_link_id_chain_1(VP9_COMP * cpi)53 int func_link_id_chain_1(VP9_COMP *cpi) {
54 RD *rd = cpi->rd;
55 rd->u = 0;
56 }
57
func_link_id_chain_2(VP9_COMP * cpi)58 int func_link_id_chain_2(VP9_COMP *cpi) {
59 RD *rd = cpi->rd;
60 XD *xd = rd->xd;
61 xd->u = 0;
62 }
63
func_assign_refer_status_1(VP9_COMP * cpi)64 int func_assign_refer_status_1(VP9_COMP *cpi) { RD *rd = cpi->rd; }
65
func_assign_refer_status_2(VP9_COMP * cpi)66 int func_assign_refer_status_2(VP9_COMP *cpi) {
67 RD *rd2;
68 rd2 = cpi->rd;
69 }
70
func_assign_refer_status_3(VP9_COMP * cpi)71 int func_assign_refer_status_3(VP9_COMP *cpi) {
72 int a;
73 a = cpi->y;
74 }
75
func_assign_refer_status_4(VP9_COMP * cpi)76 int func_assign_refer_status_4(VP9_COMP *cpi) {
77 int *b;
78 b = &cpi->y;
79 }
80
func_assign_refer_status_5(VP9_COMP * cpi)81 int func_assign_refer_status_5(VP9_COMP *cpi) {
82 RD *rd5;
83 rd5 = &cpi->rd2;
84 }
85
func_assign_refer_status_6(VP9_COMP * cpi,VP9_COMP * cpi2)86 int func_assign_refer_status_6(VP9_COMP *cpi, VP9_COMP *cpi2) {
87 cpi->rd = cpi2->rd;
88 }
89
func_assign_refer_status_7(VP9_COMP * cpi,VP9_COMP * cpi2)90 int func_assign_refer_status_7(VP9_COMP *cpi, VP9_COMP *cpi2) {
91 cpi->arr[3] = 0;
92 }
93
func_assign_refer_status_8(VP9_COMP * cpi,VP9_COMP * cpi2)94 int func_assign_refer_status_8(VP9_COMP *cpi, VP9_COMP *cpi2) {
95 int x = cpi->arr[3];
96 }
97
func_assign_refer_status_9(VP9_COMP * cpi)98 int func_assign_refer_status_9(VP9_COMP *cpi) {
99 {
100 RD *rd = cpi->rd;
101 { rd->u = 0; }
102 }
103 }
104
func_assign_refer_status_10(VP9_COMP * cpi)105 int func_assign_refer_status_10(VP9_COMP *cpi) { cpi->arr[cpi->rd->u] = 0; }
106
func_assign_refer_status_11(VP9_COMP * cpi)107 int func_assign_refer_status_11(VP9_COMP *cpi) {
108 RD *rd11 = &cpi->rd2;
109 rd11->v = 1;
110 }
111
func_assign_refer_status_12(VP9_COMP * cpi,VP9_COMP * cpi2)112 int func_assign_refer_status_12(VP9_COMP *cpi, VP9_COMP *cpi2) {
113 *cpi->rd = *cpi2->rd;
114 }
115
func_assign_refer_status_13(VP9_COMP * cpi)116 int func_assign_refer_status_13(VP9_COMP *cpi) {
117 cpi->z = 0;
118 cpi->w = 0;
119 }
120
func(VP9_COMP * cpi,int x)121 int func(VP9_COMP *cpi, int x) {
122 int a;
123 cpi->y = 4;
124 a = 3 + cpi->y;
125 a = a * x;
126 cpi->y *= 4;
127 RD *ref_rd = cpi->rd;
128 ref_rd->u = 0;
129 cpi->rd2.v = 1;
130 cpi->rd->v = 1;
131 RD *ref_rd2 = &cpi->rd2;
132 RD **ref_rd3 = &(&cpi->rd2);
133 int b = sub_func(cpi, a);
134 cpi->rd->v++;
135 return b;
136 }
137
func_sub_call_1(VP9_COMP * cpi2,int x)138 int func_sub_call_1(VP9_COMP *cpi2, int x) { cpi2->y = 4; }
139
func_call_1(VP9_COMP * cpi,int y)140 int func_call_1(VP9_COMP *cpi, int y) { func_sub_call_1(cpi, y); }
141
func_sub_call_2(VP9_COMP * cpi2,RD * rd,int x)142 int func_sub_call_2(VP9_COMP *cpi2, RD *rd, int x) { rd->u = 0; }
143
func_call_2(VP9_COMP * cpi,int y)144 int func_call_2(VP9_COMP *cpi, int y) { func_sub_call_2(cpi, &cpi->rd, y); }
145
func_sub_call_3(VP9_COMP * cpi2,int x)146 int func_sub_call_3(VP9_COMP *cpi2, int x) {}
147
func_call_3(VP9_COMP * cpi,int y)148 int func_call_3(VP9_COMP *cpi, int y) { func_sub_call_3(cpi, ++cpi->y); }
149
func_sub_sub_call_4(VP9_COMP * cpi3,XD * xd)150 int func_sub_sub_call_4(VP9_COMP *cpi3, XD *xd) {
151 cpi3->rd.u = 0;
152 xd->u = 0;
153 }
154
func_sub_call_4(VP9_COMP * cpi2,RD * rd)155 int func_sub_call_4(VP9_COMP *cpi2, RD *rd) {
156 func_sub_sub_call_4(cpi2, rd->xd);
157 }
158
func_call_4(VP9_COMP * cpi,int y)159 int func_call_4(VP9_COMP *cpi, int y) { func_sub_call_4(cpi, &cpi->rd); }
160
func_sub_call_5(VP9_COMP * cpi)161 int func_sub_call_5(VP9_COMP *cpi) {
162 cpi->y = 2;
163 func_call_5(cpi);
164 }
165
func_call_5(VP9_COMP * cpi)166 int func_call_5(VP9_COMP *cpi) { func_sub_call_5(cpi); }
167
func_compound_1(VP9_COMP * cpi)168 int func_compound_1(VP9_COMP *cpi) {
169 for (int i = 0; i < 10; ++i) {
170 cpi->y++;
171 }
172 }
173
func_compound_2(VP9_COMP * cpi)174 int func_compound_2(VP9_COMP *cpi) {
175 for (int i = 0; i < cpi->y; ++i) {
176 cpi->rd->u = i;
177 }
178 }
179
func_compound_3(VP9_COMP * cpi)180 int func_compound_3(VP9_COMP *cpi) {
181 int i = 3;
182 while (i > 0) {
183 cpi->rd->u = i;
184 i--;
185 }
186 }
187
func_compound_4(VP9_COMP * cpi)188 int func_compound_4(VP9_COMP *cpi) {
189 while (cpi->y-- >= 0) {
190 }
191 }
192
func_compound_5(VP9_COMP * cpi)193 int func_compound_5(VP9_COMP *cpi) {
194 do {
195 } while (cpi->y-- >= 0);
196 }
197
func_compound_6(VP9_COMP * cpi)198 int func_compound_6(VP9_COMP *cpi) {
199 for (int i = 0; i < 10; ++i) cpi->y--;
200 }
201
main(void)202 int main(void) {
203 int x;
204 VP9_COMP cpi;
205 RD rd;
206 cpi->rd = rd;
207 func(&cpi, x);
208 }
209