bench: add bench_typetest_languages
[nit.git] / c_src / global___reachable_from_init_method_analysis_impl._sep.c
1 /* This C file is generated by NIT to compile module global___reachable_from_init_method_analysis_impl. */
2 #include "global___reachable_from_init_method_analysis_impl._sep.h"
3 val_t global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(val_t p0){
4 struct {struct stack_frame_t me;} fra;
5 val_t REGB0;
6 val_t tmp;
7 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
8 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
9 fra.me.line = 25;
10 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program;
11 fra.me.has_broke = 0;
12 fra.me.REG_size = 1;
13 fra.me.nitni_local_ref_head = NULL;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[0] = p0;
16 /* global/reachable_from_init_method_analysis_impl.nit:25 */
17 REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0])!=NIT_NULL);
18 if (UNTAG_Bool(REGB0)) {
19 } else {
20 nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___reachable_from_init_method_analysis_impl, 25);
21 }
22 fra.me.REG[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0]);
23 stack_frame_head = fra.me.prev;
24 return fra.me.REG[0];
25 }
26 val_t global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(val_t p0){
27 struct {struct stack_frame_t me;} fra;
28 val_t REGB0;
29 val_t tmp;
30 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
31 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
32 fra.me.line = 26;
33 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context;
34 fra.me.has_broke = 0;
35 fra.me.REG_size = 1;
36 fra.me.nitni_local_ref_head = NULL;
37 fra.me.REG[0] = NIT_NULL;
38 fra.me.REG[0] = p0;
39 /* global/reachable_from_init_method_analysis_impl.nit:26 */
40 REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0])!=NIT_NULL);
41 if (UNTAG_Bool(REGB0)) {
42 } else {
43 nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___reachable_from_init_method_analysis_impl, 26);
44 }
45 fra.me.REG[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra.me.REG[0]);
46 stack_frame_head = fra.me.prev;
47 return fra.me.REG[0];
48 }
49 void global___reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0, val_t p1, int* init_table){
50 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMABuilder].i;
51 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
52 val_t tmp;
53 if (init_table[itpos0]) return;
54 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
55 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
56 fra.me.line = 28;
57 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___init;
58 fra.me.has_broke = 0;
59 fra.me.REG_size = 2;
60 fra.me.nitni_local_ref_head = NULL;
61 fra.me.REG[0] = NIT_NULL;
62 fra.me.REG[1] = NIT_NULL;
63 fra.me.REG[0] = p0;
64 fra.me.REG[1] = p1;
65 /* global/reachable_from_init_method_analysis_impl.nit:29 */
66 ATTR_global___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra.me.REG[0]) = fra.me.REG[1];
67 stack_frame_head = fra.me.prev;
68 init_table[itpos0] = 1;
69 return;
70 }
71 void global___reachable_from_init_method_analysis_impl___RFIMABuilder___work(val_t p0){
72 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
73 val_t tmp;
74 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
75 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
76 fra.me.line = 32;
77 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
78 fra.me.has_broke = 0;
79 fra.me.REG_size = 3;
80 fra.me.nitni_local_ref_head = NULL;
81 fra.me.REG[0] = NIT_NULL;
82 fra.me.REG[1] = NIT_NULL;
83 fra.me.REG[2] = NIT_NULL;
84 fra.me.REG[0] = p0;
85 /* global/reachable_from_init_method_analysis_impl.nit:32 */
86 fra.me.REG[1] = fra.me.REG[0];
87 /* global/reachable_from_init_method_analysis_impl.nit:33 */
88 fra.me.REG[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(fra.me.REG[1])(fra.me.REG[1]);
89 CALL_program___Program___with_each_live_local_classes(fra.me.REG[2])(fra.me.REG[2], (&(fra.me)), ((fun_t)OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1));
90 stack_frame_head = fra.me.prev;
91 return;
92 }
93 void OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1(struct stack_frame_t *closctx, val_t p0){
94 struct {struct stack_frame_t me;} fra;
95 val_t tmp;
96 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
97 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
98 fra.me.line = 33;
99 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
100 fra.me.has_broke = 0;
101 fra.me.REG_size = 1;
102 fra.me.nitni_local_ref_head = NULL;
103 fra.me.REG[0] = NIT_NULL;
104 fra.me.REG[0] = p0;
105 closctx->REG[2] = fra.me.REG[0];
106 /* global/reachable_from_init_method_analysis_impl.nit:35 */
107 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx->REG[2])(closctx->REG[2]);
108 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[0])(fra.me.REG[0], closctx, ((fun_t)OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2));
109 stack_frame_head = fra.me.prev;
110 return;
111 }
112 void OC_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
113 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
114 val_t REGB0;
115 fun_t CREG[1];
116 val_t tmp;
117 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
118 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
119 fra.me.line = 0;
120 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMABuilder___work;
121 fra.me.has_broke = 0;
122 fra.me.REG_size = 3;
123 fra.me.nitni_local_ref_head = NULL;
124 fra.me.REG[0] = NIT_NULL;
125 fra.me.REG[1] = NIT_NULL;
126 fra.me.REG[2] = NIT_NULL;
127 fra.me.closure_ctx = closctx_param;
128 fra.me.closure_funs = CREG;
129 fra.me.REG[0] = p0;
130 CREG[0] = clos_fun0;
131 /* global/reachable_from_init_method_analysis_impl.nit:36 */
132 fra.me.REG[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
133 /* global/reachable_from_init_method_analysis_impl.nit:37 */
134 fra.me.REG[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[0])(fra.me.REG[0]);
135 REGB0 = CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra.me.REG[1])(fra.me.REG[1], closctx->REG[2]);
136 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
137 if (UNTAG_Bool(REGB0)) {
138 goto label3;
139 }
140 /* global/reachable_from_init_method_analysis_impl.nit:38 */
141 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
142 if (UNTAG_Bool(REGB0)) {
143 } else {
144 nit_abort("Assert failed", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 38);
145 }
146 /* global/reachable_from_init_method_analysis_impl.nit:39 */
147 fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx->REG[1])(closctx->REG[1]);
148 fra.me.REG[1] = CALL_global___reachable_method_analysis___Program___rma(fra.me.REG[1])(fra.me.REG[1]);
149 REGB0 = TAG_Bool((fra.me.REG[1]!=NIT_NULL) && VAL_ISA(fra.me.REG[1], COLOR_global___reachable_method_analysis___ReachableMethodAnalysis, ID_global___reachable_method_analysis___ReachableMethodAnalysis)) /*cast ReachableMethodAnalysis*/;
150 if (UNTAG_Bool(REGB0)) {
151 } else {
152 nit_abort("Cast failed", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 39);
153 }
154 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
155 if (UNTAG_Bool(REGB0)) {
156 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 39);
157 }
158 REGB0 = CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
159 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
160 if (UNTAG_Bool(REGB0)) {
161 goto label3;
162 }
163 /* global/reachable_from_init_method_analysis_impl.nit:40 */
164 fra.me.REG[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
165 REGB0 = CALL_standard___collection___abstract_collection___MapRead___has_key(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
166 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
167 if (UNTAG_Bool(REGB0)) {
168 goto label3;
169 }
170 /* global/reachable_from_init_method_analysis_impl.nit:41 */
171 fra.me.REG[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx->REG[2])(closctx->REG[2]);
172 fra.me.REG[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
173 /* global/reachable_from_init_method_analysis_impl.nit:44 */
174 fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx->REG[1])(closctx->REG[1]);
175 fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[1])(fra.me.REG[1]);
176 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
177 /* global/reachable_from_init_method_analysis_impl.nit:45 */
178 fra.me.REG[1] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx->REG[1])(closctx->REG[1]);
179 fra.me.REG[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx->REG[1])(closctx->REG[1]);
180 fra.me.REG[2] = NEW_RFIMAVisitor_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(fra.me.REG[1], fra.me.REG[2]);
181 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]);
182 label3: while(0);
183 stack_frame_head = fra.me.prev;
184 return;
185 }
186 val_t global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(val_t p0){
187 struct {struct stack_frame_t me;} fra;
188 val_t REGB0;
189 val_t tmp;
190 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
191 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
192 fra.me.line = 53;
193 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines;
194 fra.me.has_broke = 0;
195 fra.me.REG_size = 1;
196 fra.me.nitni_local_ref_head = NULL;
197 fra.me.REG[0] = NIT_NULL;
198 fra.me.REG[0] = p0;
199 /* global/reachable_from_init_method_analysis_impl.nit:53 */
200 REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0])!=NIT_NULL);
201 if (UNTAG_Bool(REGB0)) {
202 } else {
203 nit_abort("Uninitialized attribute %s", "_reachable_from_init_iroutines", LOCATE_global___reachable_from_init_method_analysis_impl, 53);
204 }
205 fra.me.REG[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra.me.REG[0]);
206 stack_frame_head = fra.me.prev;
207 return fra.me.REG[0];
208 }
209 val_t global___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init(val_t p0, val_t p1){
210 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
211 val_t REGB0;
212 val_t REGB1;
213 val_t tmp;
214 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
215 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
216 fra.me.line = 55;
217 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init;
218 fra.me.has_broke = 0;
219 fra.me.REG_size = 2;
220 fra.me.nitni_local_ref_head = NULL;
221 fra.me.REG[0] = NIT_NULL;
222 fra.me.REG[1] = NIT_NULL;
223 fra.me.REG[0] = p0;
224 fra.me.REG[1] = p1;
225 /* global/reachable_from_init_method_analysis_impl.nit:56 */
226 REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
227 if (UNTAG_Bool(REGB0)) {
228 } else {
229 REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL);
230 if (UNTAG_Bool(REGB1)) {
231 REGB1 = TAG_Bool(false);
232 REGB0 = REGB1;
233 } else {
234 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL);
235 REGB0 = REGB1;
236 }
237 }
238 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
239 if (UNTAG_Bool(REGB0)) {
240 fra.me.REG[0] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[0])(fra.me.REG[0]);
241 REGB0 = CALL_standard___collection___abstract_collection___Collection___has(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
242 } else {
243 REGB1 = TAG_Bool(false);
244 REGB0 = REGB1;
245 }
246 goto label1;
247 label1: while(0);
248 stack_frame_head = fra.me.prev;
249 return REGB0;
250 }
251 val_t global___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init(val_t p0, val_t p1){
252 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
253 val_t REGB0;
254 val_t tmp;
255 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
256 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
257 fra.me.line = 59;
258 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init;
259 fra.me.has_broke = 0;
260 fra.me.REG_size = 2;
261 fra.me.nitni_local_ref_head = NULL;
262 fra.me.REG[0] = NIT_NULL;
263 fra.me.REG[1] = NIT_NULL;
264 fra.me.REG[0] = p0;
265 fra.me.REG[1] = p1;
266 /* global/reachable_from_init_method_analysis_impl.nit:60 */
267 fra.me.REG[1] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[1])(fra.me.REG[1]);
268 REGB0 = CALL_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
269 goto label1;
270 label1: while(0);
271 stack_frame_head = fra.me.prev;
272 return REGB0;
273 }
274 void global___reachable_from_init_method_analysis_impl___RFIMAContext___init(val_t p0, int* init_table){
275 int itpos1 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMAContext].i;
276 struct {struct stack_frame_t me;} fra;
277 val_t tmp;
278 if (init_table[itpos1]) return;
279 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
280 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
281 fra.me.line = 0;
282 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAContext___init;
283 fra.me.has_broke = 0;
284 fra.me.REG_size = 0;
285 fra.me.nitni_local_ref_head = NULL;
286 stack_frame_head = fra.me.prev;
287 init_table[itpos1] = 1;
288 return;
289 }
290 val_t global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(val_t p0){
291 struct {struct stack_frame_t me;} fra;
292 val_t REGB0;
293 val_t tmp;
294 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
295 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
296 fra.me.line = 66;
297 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context;
298 fra.me.has_broke = 0;
299 fra.me.REG_size = 1;
300 fra.me.nitni_local_ref_head = NULL;
301 fra.me.REG[0] = NIT_NULL;
302 fra.me.REG[0] = p0;
303 /* global/reachable_from_init_method_analysis_impl.nit:66 */
304 REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[0])!=NIT_NULL);
305 if (UNTAG_Bool(REGB0)) {
306 } else {
307 nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___reachable_from_init_method_analysis_impl, 66);
308 }
309 fra.me.REG[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[0]);
310 stack_frame_head = fra.me.prev;
311 return fra.me.REG[0];
312 }
313 val_t global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(val_t p0){
314 struct {struct stack_frame_t me;} fra;
315 val_t REGB0;
316 val_t tmp;
317 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
318 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
319 fra.me.line = 67;
320 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program;
321 fra.me.has_broke = 0;
322 fra.me.REG_size = 1;
323 fra.me.nitni_local_ref_head = NULL;
324 fra.me.REG[0] = NIT_NULL;
325 fra.me.REG[0] = p0;
326 /* global/reachable_from_init_method_analysis_impl.nit:67 */
327 REGB0 = TAG_Bool(ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[0])!=NIT_NULL);
328 if (UNTAG_Bool(REGB0)) {
329 } else {
330 nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___reachable_from_init_method_analysis_impl, 67);
331 }
332 fra.me.REG[0] = ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[0]);
333 stack_frame_head = fra.me.prev;
334 return fra.me.REG[0];
335 }
336 void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0, val_t p1, val_t p2, int* init_table){
337 int itpos2 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_global___reachable_from_init_method_analysis_impl___RFIMAVisitor].i;
338 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
339 val_t tmp;
340 if (init_table[itpos2]) return;
341 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
342 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
343 fra.me.line = 69;
344 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___init;
345 fra.me.has_broke = 0;
346 fra.me.REG_size = 4;
347 fra.me.nitni_local_ref_head = NULL;
348 fra.me.REG[0] = NIT_NULL;
349 fra.me.REG[1] = NIT_NULL;
350 fra.me.REG[2] = NIT_NULL;
351 fra.me.REG[3] = NIT_NULL;
352 fra.me.REG[0] = p0;
353 fra.me.REG[1] = p1;
354 fra.me.REG[2] = p2;
355 /* global/reachable_from_init_method_analysis_impl.nit:69 */
356 fra.me.REG[3] = fra.me.REG[0];
357 CALL_icode___icode_tools___ICodeVisitor___init(fra.me.REG[0])(fra.me.REG[0], init_table);
358 /* global/reachable_from_init_method_analysis_impl.nit:70 */
359 ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra.me.REG[3]) = fra.me.REG[1];
360 /* global/reachable_from_init_method_analysis_impl.nit:71 */
361 ATTR_global___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra.me.REG[3]) = fra.me.REG[2];
362 stack_frame_head = fra.me.prev;
363 init_table[itpos2] = 1;
364 return;
365 }
366 void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(val_t p0, val_t p1){
367 struct {struct stack_frame_t me; val_t MORE_REG[2];} fra;
368 val_t REGB0;
369 val_t tmp;
370 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
371 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
372 fra.me.line = 74;
373 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call;
374 fra.me.has_broke = 0;
375 fra.me.REG_size = 3;
376 fra.me.nitni_local_ref_head = NULL;
377 fra.me.REG[0] = NIT_NULL;
378 fra.me.REG[1] = NIT_NULL;
379 fra.me.REG[2] = NIT_NULL;
380 fra.me.REG[0] = p0;
381 fra.me.REG[1] = p1;
382 /* global/reachable_from_init_method_analysis_impl.nit:75 */
383 fra.me.REG[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra.me.REG[0])(fra.me.REG[0]);
384 REGB0 = CALL_global___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
385 if (UNTAG_Bool(REGB0)) {
386 goto label1;
387 }
388 /* global/reachable_from_init_method_analysis_impl.nit:76 */
389 fra.me.REG[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra.me.REG[0])(fra.me.REG[0]);
390 fra.me.REG[2] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra.me.REG[2])(fra.me.REG[2]);
391 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]);
392 /* global/reachable_from_init_method_analysis_impl.nit:77 */
393 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
394 label1: while(0);
395 stack_frame_head = fra.me.prev;
396 return;
397 }
398 void global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(val_t p0, val_t p1){
399 struct {struct stack_frame_t me; val_t MORE_REG[5];} fra;
400 val_t REGB0;
401 val_t REGB1;
402 val_t tmp;
403 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
404 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
405 fra.me.line = 80;
406 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
407 fra.me.has_broke = 0;
408 fra.me.REG_size = 6;
409 fra.me.nitni_local_ref_head = NULL;
410 fra.me.REG[0] = NIT_NULL;
411 fra.me.REG[1] = NIT_NULL;
412 fra.me.REG[2] = NIT_NULL;
413 fra.me.REG[3] = NIT_NULL;
414 fra.me.REG[4] = NIT_NULL;
415 fra.me.REG[5] = NIT_NULL;
416 fra.me.REG[0] = p0;
417 fra.me.REG[1] = p1;
418 /* global/reachable_from_init_method_analysis_impl.nit:80 */
419 fra.me.REG[2] = fra.me.REG[0];
420 fra.me.REG[3] = fra.me.REG[1];
421 /* global/reachable_from_init_method_analysis_impl.nit:82 */
422 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IStaticCall, ID_icode___icode_base___IStaticCall)) /*cast IStaticCall*/;
423 if (UNTAG_Bool(REGB0)) {
424 /* global/reachable_from_init_method_analysis_impl.nit:84 */
425 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
426 if (UNTAG_Bool(REGB0)) {
427 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 84);
428 }
429 fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
430 fra.me.REG[4] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[4])(fra.me.REG[4]);
431 /* global/reachable_from_init_method_analysis_impl.nit:85 */
432 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
433 if (UNTAG_Bool(REGB0)) {
434 } else {
435 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
436 if (UNTAG_Bool(REGB1)) {
437 REGB1 = TAG_Bool(false);
438 REGB0 = REGB1;
439 } else {
440 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
441 REGB0 = REGB1;
442 }
443 }
444 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
445 if (UNTAG_Bool(REGB0)) {
446 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
447 }
448 } else {
449 /* global/reachable_from_init_method_analysis_impl.nit:86 */
450 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___INew, ID_icode___icode_base___INew)) /*cast INew*/;
451 if (UNTAG_Bool(REGB0)) {
452 /* global/reachable_from_init_method_analysis_impl.nit:88 */
453 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
454 if (UNTAG_Bool(REGB0)) {
455 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 88);
456 }
457 fra.me.REG[4] = CALL_icode___icode_base___INew___stype(fra.me.REG[3])(fra.me.REG[3]);
458 /* global/reachable_from_init_method_analysis_impl.nit:89 */
459 fra.me.REG[5] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
460 fra.me.REG[5] = CALL_program___Program___main_module(fra.me.REG[5])(fra.me.REG[5]);
461 fra.me.REG[5] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]);
462 fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]);
463 /* global/reachable_from_init_method_analysis_impl.nit:90 */
464 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
465 if (UNTAG_Bool(REGB0)) {
466 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 90);
467 }
468 fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
469 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra.me.REG[4])(fra.me.REG[4]);
470 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
471 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[4], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
472 if (UNTAG_Bool(REGB0)) {
473 } else {
474 nit_abort("Cast failed", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 90);
475 }
476 /* global/reachable_from_init_method_analysis_impl.nit:91 */
477 REGB0 = CALL_metamodel___abstractmetamodel___MMMethod___is_extern(fra.me.REG[4])(fra.me.REG[4]);
478 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
479 if (UNTAG_Bool(REGB0)) {
480 /* global/reachable_from_init_method_analysis_impl.nit:92 */
481 fra.me.REG[5] = CALL_program___MMLocalClass___new_instance_iroutine(fra.me.REG[5])(fra.me.REG[5]);
482 fra.me.REG[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
483 /* global/reachable_from_init_method_analysis_impl.nit:93 */
484 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
485 }
486 } else {
487 /* global/reachable_from_init_method_analysis_impl.nit:95 */
488 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ISuper, ID_icode___icode_base___ISuper)) /*cast ISuper*/;
489 if (UNTAG_Bool(REGB0)) {
490 /* global/reachable_from_init_method_analysis_impl.nit:97 */
491 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
492 if (UNTAG_Bool(REGB0)) {
493 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 97);
494 }
495 fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
496 /* global/reachable_from_init_method_analysis_impl.nit:98 */
497 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[4])(fra.me.REG[4]);
498 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra.me.REG[4])(fra.me.REG[4]);
499 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1));
500 } else {
501 /* global/reachable_from_init_method_analysis_impl.nit:104 */
502 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICall, ID_icode___icode_base___ICall)) /*cast ICall*/;
503 if (UNTAG_Bool(REGB0)) {
504 /* global/reachable_from_init_method_analysis_impl.nit:106 */
505 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
506 if (UNTAG_Bool(REGB0)) {
507 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 106);
508 }
509 fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]);
510 /* global/reachable_from_init_method_analysis_impl.nit:107 */
511 fra.me.REG[5] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[4])(fra.me.REG[4]);
512 /* global/reachable_from_init_method_analysis_impl.nit:108 */
513 REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
514 if (UNTAG_Bool(REGB0)) {
515 } else {
516 REGB1 = TAG_Bool(fra.me.REG[5]==NIT_NULL);
517 if (UNTAG_Bool(REGB1)) {
518 REGB1 = TAG_Bool(false);
519 REGB0 = REGB1;
520 } else {
521 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[5])(fra.me.REG[5], NIT_NULL);
522 REGB0 = REGB1;
523 }
524 }
525 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
526 if (UNTAG_Bool(REGB0)) {
527 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[5]);
528 }
529 /* global/reachable_from_init_method_analysis_impl.nit:109 */
530 fra.me.REG[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra.me.REG[4])(fra.me.REG[4]);
531 fra.me.REG[4] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra.me.REG[4])(fra.me.REG[4]);
532 CALL_standard___collection___abstract_collection___Collection___iterate(fra.me.REG[4])(fra.me.REG[4], (&(fra.me)), ((fun_t)OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2));
533 } else {
534 /* global/reachable_from_init_method_analysis_impl.nit:115 */
535 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICheckInstance, ID_icode___icode_base___ICheckInstance)) /*cast ICheckInstance*/;
536 if (UNTAG_Bool(REGB0)) {
537 /* global/reachable_from_init_method_analysis_impl.nit:116 */
538 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
539 if (UNTAG_Bool(REGB0)) {
540 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 116);
541 }
542 fra.me.REG[5] = CALL_icode___icode_base___ICheckInstance___stype(fra.me.REG[3])(fra.me.REG[3]);
543 /* global/reachable_from_init_method_analysis_impl.nit:117 */
544 fra.me.REG[4] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
545 fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
546 fra.me.REG[4] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]);
547 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
548 /* global/reachable_from_init_method_analysis_impl.nit:118 */
549 fra.me.REG[4] = CALL_program___MMLocalClass___checknew_iroutine(fra.me.REG[4])(fra.me.REG[4]);
550 /* global/reachable_from_init_method_analysis_impl.nit:119 */
551 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
552 if (UNTAG_Bool(REGB0)) {
553 } else {
554 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
555 if (UNTAG_Bool(REGB1)) {
556 REGB1 = TAG_Bool(false);
557 REGB0 = REGB1;
558 } else {
559 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
560 REGB0 = REGB1;
561 }
562 }
563 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
564 if (UNTAG_Bool(REGB0)) {
565 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
566 }
567 } else {
568 /* global/reachable_from_init_method_analysis_impl.nit:120 */
569 REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___IInitAttributes, ID_icode___icode_base___IInitAttributes)) /*cast IInitAttributes*/;
570 if (UNTAG_Bool(REGB0)) {
571 /* global/reachable_from_init_method_analysis_impl.nit:121 */
572 REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL);
573 if (UNTAG_Bool(REGB0)) {
574 nit_abort("Reciever is null", NULL, LOCATE_global___reachable_from_init_method_analysis_impl, 121);
575 }
576 fra.me.REG[3] = CALL_icode___icode_base___IInitAttributes___stype(fra.me.REG[3])(fra.me.REG[3]);
577 /* global/reachable_from_init_method_analysis_impl.nit:122 */
578 fra.me.REG[4] = CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra.me.REG[2])(fra.me.REG[2]);
579 fra.me.REG[4] = CALL_program___Program___main_module(fra.me.REG[4])(fra.me.REG[4]);
580 fra.me.REG[4] = CALL_metamodel___static_type___MMType___for_module(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]);
581 fra.me.REG[4] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[4])(fra.me.REG[4]);
582 /* global/reachable_from_init_method_analysis_impl.nit:123 */
583 fra.me.REG[4] = CALL_program___MMLocalClass___init_var_iroutine(fra.me.REG[4])(fra.me.REG[4]);
584 /* global/reachable_from_init_method_analysis_impl.nit:124 */
585 REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
586 if (UNTAG_Bool(REGB0)) {
587 } else {
588 REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL);
589 if (UNTAG_Bool(REGB1)) {
590 REGB1 = TAG_Bool(false);
591 REGB0 = REGB1;
592 } else {
593 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL);
594 REGB0 = REGB1;
595 }
596 }
597 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
598 if (UNTAG_Bool(REGB0)) {
599 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[4]);
600 }
601 }
602 }
603 }
604 }
605 }
606 }
607 /* global/reachable_from_init_method_analysis_impl.nit:126 */
608 CALL_SUPER_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
609 stack_frame_head = fra.me.prev;
610 return;
611 }
612 void OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
613 struct {struct stack_frame_t me;} fra;
614 val_t REGB0;
615 val_t REGB1;
616 fun_t CREG[1];
617 val_t tmp;
618 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
619 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
620 fra.me.line = 0;
621 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
622 fra.me.has_broke = 0;
623 fra.me.REG_size = 1;
624 fra.me.nitni_local_ref_head = NULL;
625 fra.me.REG[0] = NIT_NULL;
626 fra.me.closure_ctx = closctx_param;
627 fra.me.closure_funs = CREG;
628 fra.me.REG[0] = p0;
629 CREG[0] = clos_fun0;
630 /* global/reachable_from_init_method_analysis_impl.nit:99 */
631 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
632 if (UNTAG_Bool(REGB0)) {
633 /* global/reachable_from_init_method_analysis_impl.nit:100 */
634 fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
635 /* global/reachable_from_init_method_analysis_impl.nit:101 */
636 REGB0 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
637 if (UNTAG_Bool(REGB0)) {
638 } else {
639 REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL);
640 if (UNTAG_Bool(REGB1)) {
641 REGB1 = TAG_Bool(false);
642 REGB0 = REGB1;
643 } else {
644 REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], NIT_NULL);
645 REGB0 = REGB1;
646 }
647 }
648 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
649 if (UNTAG_Bool(REGB0)) {
650 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx->REG[2])(closctx->REG[2], fra.me.REG[0]);
651 }
652 }
653 stack_frame_head = fra.me.prev;
654 return;
655 }
656 void OC_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2(struct stack_frame_t *closctx, val_t p0, struct stack_frame_t *closctx_param, fun_t clos_fun0){
657 struct {struct stack_frame_t me;} fra;
658 val_t REGB0;
659 val_t REGB1;
660 fun_t CREG[1];
661 val_t tmp;
662 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
663 fra.me.file = LOCATE_global___reachable_from_init_method_analysis_impl;
664 fra.me.line = 0;
665 fra.me.meth = LOCATE_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode;
666 fra.me.has_broke = 0;
667 fra.me.REG_size = 1;
668 fra.me.nitni_local_ref_head = NULL;
669 fra.me.REG[0] = NIT_NULL;
670 fra.me.closure_ctx = closctx_param;
671 fra.me.closure_funs = CREG;
672 fra.me.REG[0] = p0;
673 CREG[0] = clos_fun0;
674 /* global/reachable_from_init_method_analysis_impl.nit:110 */
675 REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[0], COLOR_metamodel___abstractmetamodel___MMMethod, ID_metamodel___abstractmetamodel___MMMethod)) /*cast MMMethod*/;
676 if (UNTAG_Bool(REGB0)) {
677 /* global/reachable_from_init_method_analysis_impl.nit:111 */
678 fra.me.REG[0] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[0])(fra.me.REG[0]);
679 closctx->REG[5] = fra.me.REG[0];
680 /* global/reachable_from_init_method_analysis_impl.nit:112 */
681 REGB0 = TAG_Bool(closctx->REG[5]==NIT_NULL);
682 if (UNTAG_Bool(REGB0)) {
683 } else {
684 REGB1 = TAG_Bool(closctx->REG[5]==NIT_NULL);
685 if (UNTAG_Bool(REGB1)) {
686 REGB1 = TAG_Bool(false);
687 REGB0 = REGB1;
688 } else {
689 REGB1 = CALL_standard___kernel___Object_____eqeq(closctx->REG[5])(closctx->REG[5], NIT_NULL);
690 REGB0 = REGB1;
691 }
692 }
693 REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
694 if (UNTAG_Bool(REGB0)) {
695 CALL_global___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx->REG[2])(closctx->REG[2], closctx->REG[5]);
696 }
697 }
698 stack_frame_head = fra.me.prev;
699 return;
700 }