1 /* This C file is generated by NIT to compile module reachable_from_init_method_analysis_impl. */
2 #include "reachable_from_init_method_analysis_impl._sep.h"
3 val_t
reachable_from_init_method_analysis_impl___RFIMABuilder___program(val_t p0
){
4 struct {struct stack_frame_t me
;} fra
;
7 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
8 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
10 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMABuilder___program
;
13 fra
.me
.REG
[0] = NIT_NULL
;
15 /* ./analysis//reachable_from_init_method_analysis_impl.nit:25 */
16 REGB0
= TAG_Bool(ATTR_reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra
.me
.REG
[0])!=NIT_NULL
);
17 if (UNTAG_Bool(REGB0
)) {
19 nit_abort("Uninitialized attribute %s", "_program", LOCATE_reachable_from_init_method_analysis_impl
, 25);
21 fra
.me
.REG
[0] = ATTR_reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra
.me
.REG
[0]);
22 stack_frame_head
= fra
.me
.prev
;
25 val_t
reachable_from_init_method_analysis_impl___RFIMABuilder___context(val_t p0
){
26 struct {struct stack_frame_t me
;} fra
;
29 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
30 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
32 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMABuilder___context
;
35 fra
.me
.REG
[0] = NIT_NULL
;
37 /* ./analysis//reachable_from_init_method_analysis_impl.nit:26 */
38 REGB0
= TAG_Bool(ATTR_reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra
.me
.REG
[0])!=NIT_NULL
);
39 if (UNTAG_Bool(REGB0
)) {
41 nit_abort("Uninitialized attribute %s", "_context", LOCATE_reachable_from_init_method_analysis_impl
, 26);
43 fra
.me
.REG
[0] = ATTR_reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra
.me
.REG
[0]);
44 stack_frame_head
= fra
.me
.prev
;
47 void reachable_from_init_method_analysis_impl___RFIMABuilder___init(val_t p0
, val_t p1
, int* init_table
){
48 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_RFIMABuilder
].i
;
49 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
51 if (init_table
[itpos0
]) return;
52 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
53 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
55 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMABuilder___init
;
58 fra
.me
.REG
[0] = NIT_NULL
;
59 fra
.me
.REG
[1] = NIT_NULL
;
62 /* ./analysis//reachable_from_init_method_analysis_impl.nit:29 */
63 ATTR_reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
64 stack_frame_head
= fra
.me
.prev
;
65 init_table
[itpos0
] = 1;
68 void reachable_from_init_method_analysis_impl___RFIMABuilder___work(val_t p0
){
69 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
71 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
72 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
74 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMABuilder___work
;
77 fra
.me
.REG
[0] = NIT_NULL
;
78 fra
.me
.REG
[1] = NIT_NULL
;
80 /* ./analysis//reachable_from_init_method_analysis_impl.nit:33 */
81 fra
.me
.REG
[1] = CALL_reachable_from_init_method_analysis_impl___RFIMABuilder___program(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
82 CALL_program___Program___with_each_live_local_classes(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_reachable_from_init_method_analysis_impl___RFIMABuilder___work_1
));
83 stack_frame_head
= fra
.me
.prev
;
86 void OC_reachable_from_init_method_analysis_impl___RFIMABuilder___work_1(struct stack_frame_t
*closctx
, val_t p0
){
87 struct {struct stack_frame_t me
;} fra
;
89 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
90 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
92 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMABuilder___work
;
95 fra
.me
.REG
[0] = NIT_NULL
;
97 closctx
->REG
[1] = fra
.me
.REG
[0];
98 /* ./analysis//reachable_from_init_method_analysis_impl.nit:35 */
99 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMLocalClass___global_properties(closctx
->REG
[1])(closctx
->REG
[1]);
100 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_reachable_from_init_method_analysis_impl___RFIMABuilder___work_2
));
101 stack_frame_head
= fra
.me
.prev
;
104 void OC_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
){
105 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
109 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
110 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
112 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMABuilder___work
;
113 fra
.me
.has_broke
= 0;
115 fra
.me
.REG
[0] = NIT_NULL
;
116 fra
.me
.REG
[1] = NIT_NULL
;
117 fra
.me
.REG
[2] = NIT_NULL
;
118 fra
.me
.closure_ctx
= closctx_param
;
119 fra
.me
.closure_funs
= CREG
;
122 /* ./analysis//reachable_from_init_method_analysis_impl.nit:36 */
123 fra
.me
.REG
[0] = CALL_abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[0]);
124 /* ./analysis//reachable_from_init_method_analysis_impl.nit:37 */
125 fra
.me
.REG
[1] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
126 REGB0
= CALL_abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[1])(fra
.me
.REG
[1], closctx
->REG
[1]);
127 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
128 if (UNTAG_Bool(REGB0
)) {
131 /* ./analysis//reachable_from_init_method_analysis_impl.nit:38 */
132 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
133 if (UNTAG_Bool(REGB0
)) {
135 nit_abort("Assert failed", NULL
, LOCATE_reachable_from_init_method_analysis_impl
, 38);
137 /* ./analysis//reachable_from_init_method_analysis_impl.nit:39 */
138 fra
.me
.REG
[1] = CALL_reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx
->REG
[0])(closctx
->REG
[0]);
139 fra
.me
.REG
[1] = CALL_reachable_method_analysis___Program___rma(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
140 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_ReachableMethodAnalysis
, ID_ReachableMethodAnalysis
)) /*cast ReachableMethodAnalysis*/;
141 if (UNTAG_Bool(REGB0
)) {
143 nit_abort("Cast failed", NULL
, LOCATE_reachable_from_init_method_analysis_impl
, 39);
145 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
146 if (UNTAG_Bool(REGB0
)) {
147 nit_abort("Reciever is null", NULL
, LOCATE_reachable_from_init_method_analysis_impl
, 39);
149 REGB0
= CALL_reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
150 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
151 if (UNTAG_Bool(REGB0
)) {
154 /* ./analysis//reachable_from_init_method_analysis_impl.nit:40 */
155 fra
.me
.REG
[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx
->REG
[1])(closctx
->REG
[1]);
156 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
157 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
158 if (UNTAG_Bool(REGB0
)) {
161 /* ./analysis//reachable_from_init_method_analysis_impl.nit:41 */
162 fra
.me
.REG
[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx
->REG
[1])(closctx
->REG
[1]);
163 fra
.me
.REG
[0] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
164 /* ./analysis//reachable_from_init_method_analysis_impl.nit:44 */
165 fra
.me
.REG
[1] = CALL_reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx
->REG
[0])(closctx
->REG
[0]);
166 fra
.me
.REG
[1] = CALL_reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
167 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
168 /* ./analysis//reachable_from_init_method_analysis_impl.nit:45 */
169 fra
.me
.REG
[1] = CALL_reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx
->REG
[0])(closctx
->REG
[0]);
170 fra
.me
.REG
[2] = CALL_reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx
->REG
[0])(closctx
->REG
[0]);
171 fra
.me
.REG
[2] = NEW_RFIMAVisitor_reachable_from_init_method_analysis_impl___RFIMAVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
172 CALL_icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
174 stack_frame_head
= fra
.me
.prev
;
177 val_t
reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(val_t p0
){
178 struct {struct stack_frame_t me
;} fra
;
181 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
182 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
184 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines
;
185 fra
.me
.has_broke
= 0;
187 fra
.me
.REG
[0] = NIT_NULL
;
189 /* ./analysis//reachable_from_init_method_analysis_impl.nit:53 */
190 REGB0
= TAG_Bool(ATTR_reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra
.me
.REG
[0])!=NIT_NULL
);
191 if (UNTAG_Bool(REGB0
)) {
193 nit_abort("Uninitialized attribute %s", "_reachable_from_init_iroutines", LOCATE_reachable_from_init_method_analysis_impl
, 53);
195 fra
.me
.REG
[0] = ATTR_reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra
.me
.REG
[0]);
196 stack_frame_head
= fra
.me
.prev
;
197 return fra
.me
.REG
[0];
199 val_t
reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init(val_t p0
, val_t p1
){
200 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
204 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
205 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
207 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init
;
208 fra
.me
.has_broke
= 0;
210 fra
.me
.REG
[0] = NIT_NULL
;
211 fra
.me
.REG
[1] = NIT_NULL
;
214 /* ./analysis//reachable_from_init_method_analysis_impl.nit:56 */
215 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
216 if (UNTAG_Bool(REGB0
)) {
218 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
219 if (UNTAG_Bool(REGB1
)) {
220 REGB1
= TAG_Bool(false);
223 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
227 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
228 if (UNTAG_Bool(REGB0
)) {
229 fra
.me
.REG
[0] = CALL_reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
230 REGB0
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
232 REGB1
= TAG_Bool(false);
237 stack_frame_head
= fra
.me
.prev
;
240 val_t
reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init(val_t p0
, val_t p1
){
241 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
244 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
245 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
247 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init
;
248 fra
.me
.has_broke
= 0;
250 fra
.me
.REG
[0] = NIT_NULL
;
251 fra
.me
.REG
[1] = NIT_NULL
;
254 /* ./analysis//reachable_from_init_method_analysis_impl.nit:60 */
255 fra
.me
.REG
[1] = CALL_icode_base___MMMethod___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
256 REGB0
= CALL_reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
259 stack_frame_head
= fra
.me
.prev
;
262 val_t
reachable_from_init_method_analysis_impl___RFIMAVisitor___context(val_t p0
){
263 struct {struct stack_frame_t me
;} fra
;
266 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
267 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
269 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMAVisitor___context
;
270 fra
.me
.has_broke
= 0;
272 fra
.me
.REG
[0] = NIT_NULL
;
274 /* ./analysis//reachable_from_init_method_analysis_impl.nit:66 */
275 REGB0
= TAG_Bool(ATTR_reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra
.me
.REG
[0])!=NIT_NULL
);
276 if (UNTAG_Bool(REGB0
)) {
278 nit_abort("Uninitialized attribute %s", "_context", LOCATE_reachable_from_init_method_analysis_impl
, 66);
280 fra
.me
.REG
[0] = ATTR_reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra
.me
.REG
[0]);
281 stack_frame_head
= fra
.me
.prev
;
282 return fra
.me
.REG
[0];
284 val_t
reachable_from_init_method_analysis_impl___RFIMAVisitor___program(val_t p0
){
285 struct {struct stack_frame_t me
;} fra
;
288 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
289 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
291 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMAVisitor___program
;
292 fra
.me
.has_broke
= 0;
294 fra
.me
.REG
[0] = NIT_NULL
;
296 /* ./analysis//reachable_from_init_method_analysis_impl.nit:67 */
297 REGB0
= TAG_Bool(ATTR_reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra
.me
.REG
[0])!=NIT_NULL
);
298 if (UNTAG_Bool(REGB0
)) {
300 nit_abort("Uninitialized attribute %s", "_program", LOCATE_reachable_from_init_method_analysis_impl
, 67);
302 fra
.me
.REG
[0] = ATTR_reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra
.me
.REG
[0]);
303 stack_frame_head
= fra
.me
.prev
;
304 return fra
.me
.REG
[0];
306 void reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
307 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_RFIMAVisitor
].i
;
308 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
310 if (init_table
[itpos1
]) return;
311 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
312 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
314 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMAVisitor___init
;
315 fra
.me
.has_broke
= 0;
317 fra
.me
.REG
[0] = NIT_NULL
;
318 fra
.me
.REG
[1] = NIT_NULL
;
319 fra
.me
.REG
[2] = NIT_NULL
;
320 fra
.me
.REG
[3] = NIT_NULL
;
324 /* ./analysis//reachable_from_init_method_analysis_impl.nit:69 */
325 fra
.me
.REG
[3] = fra
.me
.REG
[0];
326 CALL_icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
327 /* ./analysis//reachable_from_init_method_analysis_impl.nit:70 */
328 ATTR_reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra
.me
.REG
[3]) = fra
.me
.REG
[1];
329 /* ./analysis//reachable_from_init_method_analysis_impl.nit:71 */
330 ATTR_reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
331 stack_frame_head
= fra
.me
.prev
;
332 init_table
[itpos1
] = 1;
335 void reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(val_t p0
, val_t p1
){
336 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
339 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
340 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
342 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call
;
343 fra
.me
.has_broke
= 0;
345 fra
.me
.REG
[0] = NIT_NULL
;
346 fra
.me
.REG
[1] = NIT_NULL
;
347 fra
.me
.REG
[2] = NIT_NULL
;
350 /* ./analysis//reachable_from_init_method_analysis_impl.nit:75 */
351 fra
.me
.REG
[2] = CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
352 REGB0
= CALL_reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
353 if (UNTAG_Bool(REGB0
)) {
356 /* ./analysis//reachable_from_init_method_analysis_impl.nit:76 */
357 fra
.me
.REG
[2] = CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
358 fra
.me
.REG
[2] = CALL_reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
359 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
360 /* ./analysis//reachable_from_init_method_analysis_impl.nit:77 */
361 CALL_icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
363 stack_frame_head
= fra
.me
.prev
;
366 void reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(val_t p0
, val_t p1
){
367 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
371 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
372 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
374 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode
;
375 fra
.me
.has_broke
= 0;
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
[3] = NIT_NULL
;
381 fra
.me
.REG
[4] = NIT_NULL
;
382 fra
.me
.REG
[5] = NIT_NULL
;
385 /* ./analysis//reachable_from_init_method_analysis_impl.nit:80 */
386 fra
.me
.REG
[2] = fra
.me
.REG
[0];
387 fra
.me
.REG
[3] = fra
.me
.REG
[1];
388 /* ./analysis//reachable_from_init_method_analysis_impl.nit:82 */
389 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_IStaticCall
, ID_IStaticCall
)) /*cast IStaticCall*/;
390 if (UNTAG_Bool(REGB0
)) {
391 /* ./analysis//reachable_from_init_method_analysis_impl.nit:84 */
392 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
393 if (UNTAG_Bool(REGB0
)) {
394 nit_abort("Reciever is null", NULL
, LOCATE_reachable_from_init_method_analysis_impl
, 84);
396 fra
.me
.REG
[4] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
397 fra
.me
.REG
[4] = CALL_icode_base___MMMethod___iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
398 /* ./analysis//reachable_from_init_method_analysis_impl.nit:85 */
399 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
400 if (UNTAG_Bool(REGB0
)) {
402 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
403 if (UNTAG_Bool(REGB1
)) {
404 REGB1
= TAG_Bool(false);
407 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
411 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
412 if (UNTAG_Bool(REGB0
)) {
413 CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
416 /* ./analysis//reachable_from_init_method_analysis_impl.nit:86 */
417 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_INew
, ID_INew
)) /*cast INew*/;
418 if (UNTAG_Bool(REGB0
)) {
419 /* ./analysis//reachable_from_init_method_analysis_impl.nit:88 */
420 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
421 if (UNTAG_Bool(REGB0
)) {
422 nit_abort("Reciever is null", NULL
, LOCATE_reachable_from_init_method_analysis_impl
, 88);
424 fra
.me
.REG
[4] = CALL_icode_base___INew___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
425 /* ./analysis//reachable_from_init_method_analysis_impl.nit:89 */
426 fra
.me
.REG
[5] = CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
427 fra
.me
.REG
[5] = CALL_program___Program___main_module(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
428 fra
.me
.REG
[5] = CALL_static_type___MMType___for_module(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
429 fra
.me
.REG
[5] = CALL_static_type___MMType___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
430 /* ./analysis//reachable_from_init_method_analysis_impl.nit:90 */
431 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
432 if (UNTAG_Bool(REGB0
)) {
433 nit_abort("Reciever is null", NULL
, LOCATE_reachable_from_init_method_analysis_impl
, 90);
435 fra
.me
.REG
[4] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
436 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
437 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
438 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
439 if (UNTAG_Bool(REGB0
)) {
441 nit_abort("Cast failed", NULL
, LOCATE_reachable_from_init_method_analysis_impl
, 90);
443 /* ./analysis//reachable_from_init_method_analysis_impl.nit:91 */
444 fra
.me
.REG
[5] = CALL_program___MMLocalClass___new_instance_iroutine(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
445 fra
.me
.REG
[4] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
446 /* ./analysis//reachable_from_init_method_analysis_impl.nit:92 */
447 CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
449 /* ./analysis//reachable_from_init_method_analysis_impl.nit:93 */
450 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_ISuper
, ID_ISuper
)) /*cast ISuper*/;
451 if (UNTAG_Bool(REGB0
)) {
452 /* ./analysis//reachable_from_init_method_analysis_impl.nit:95 */
453 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
454 if (UNTAG_Bool(REGB0
)) {
455 nit_abort("Reciever is null", NULL
, LOCATE_reachable_from_init_method_analysis_impl
, 95);
457 fra
.me
.REG
[4] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
458 /* ./analysis//reachable_from_init_method_analysis_impl.nit:96 */
459 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
460 fra
.me
.REG
[4] = CALL_partial_order___PartialOrderElement___greaters_and_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
461 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1
));
463 /* ./analysis//reachable_from_init_method_analysis_impl.nit:102 */
464 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_ICall
, ID_ICall
)) /*cast ICall*/;
465 if (UNTAG_Bool(REGB0
)) {
466 /* ./analysis//reachable_from_init_method_analysis_impl.nit:104 */
467 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
468 if (UNTAG_Bool(REGB0
)) {
469 nit_abort("Reciever is null", NULL
, LOCATE_reachable_from_init_method_analysis_impl
, 104);
471 fra
.me
.REG
[4] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
472 /* ./analysis//reachable_from_init_method_analysis_impl.nit:105 */
473 fra
.me
.REG
[5] = CALL_icode_base___MMMethod___iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
474 /* ./analysis//reachable_from_init_method_analysis_impl.nit:106 */
475 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
476 if (UNTAG_Bool(REGB0
)) {
478 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
479 if (UNTAG_Bool(REGB1
)) {
480 REGB1
= TAG_Bool(false);
483 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
487 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
488 if (UNTAG_Bool(REGB0
)) {
489 CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
491 /* ./analysis//reachable_from_init_method_analysis_impl.nit:107 */
492 fra
.me
.REG
[4] = CALL_abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
493 fra
.me
.REG
[4] = CALL_partial_order___PartialOrderElement___smallers(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
494 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2
));
496 /* ./analysis//reachable_from_init_method_analysis_impl.nit:113 */
497 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_ICheckInstance
, ID_ICheckInstance
)) /*cast ICheckInstance*/;
498 if (UNTAG_Bool(REGB0
)) {
499 /* ./analysis//reachable_from_init_method_analysis_impl.nit:114 */
500 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
501 if (UNTAG_Bool(REGB0
)) {
502 nit_abort("Reciever is null", NULL
, LOCATE_reachable_from_init_method_analysis_impl
, 114);
504 fra
.me
.REG
[5] = CALL_icode_base___ICheckInstance___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
505 /* ./analysis//reachable_from_init_method_analysis_impl.nit:115 */
506 fra
.me
.REG
[4] = CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
507 fra
.me
.REG
[4] = CALL_program___Program___main_module(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
508 fra
.me
.REG
[4] = CALL_static_type___MMType___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
509 fra
.me
.REG
[4] = CALL_static_type___MMType___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
510 /* ./analysis//reachable_from_init_method_analysis_impl.nit:116 */
511 fra
.me
.REG
[4] = CALL_program___MMLocalClass___checknew_iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
512 /* ./analysis//reachable_from_init_method_analysis_impl.nit:117 */
513 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
514 if (UNTAG_Bool(REGB0
)) {
516 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
517 if (UNTAG_Bool(REGB1
)) {
518 REGB1
= TAG_Bool(false);
521 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
525 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
526 if (UNTAG_Bool(REGB0
)) {
527 CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
530 /* ./analysis//reachable_from_init_method_analysis_impl.nit:118 */
531 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_IInitAttributes
, ID_IInitAttributes
)) /*cast IInitAttributes*/;
532 if (UNTAG_Bool(REGB0
)) {
533 /* ./analysis//reachable_from_init_method_analysis_impl.nit:119 */
534 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
535 if (UNTAG_Bool(REGB0
)) {
536 nit_abort("Reciever is null", NULL
, LOCATE_reachable_from_init_method_analysis_impl
, 119);
538 fra
.me
.REG
[3] = CALL_icode_base___IInitAttributes___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
539 /* ./analysis//reachable_from_init_method_analysis_impl.nit:120 */
540 fra
.me
.REG
[4] = CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
541 fra
.me
.REG
[4] = CALL_program___Program___main_module(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
542 fra
.me
.REG
[4] = CALL_static_type___MMType___for_module(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
543 fra
.me
.REG
[4] = CALL_static_type___MMType___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
544 /* ./analysis//reachable_from_init_method_analysis_impl.nit:121 */
545 fra
.me
.REG
[4] = CALL_program___MMLocalClass___init_var_iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
546 /* ./analysis//reachable_from_init_method_analysis_impl.nit:122 */
547 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
548 if (UNTAG_Bool(REGB0
)) {
550 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
551 if (UNTAG_Bool(REGB1
)) {
552 REGB1
= TAG_Bool(false);
555 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
559 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
560 if (UNTAG_Bool(REGB0
)) {
561 CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
569 /* ./analysis//reachable_from_init_method_analysis_impl.nit:124 */
570 CALL_SUPER_reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
571 stack_frame_head
= fra
.me
.prev
;
574 void OC_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
){
575 struct {struct stack_frame_t me
;} fra
;
580 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
581 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
583 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode
;
584 fra
.me
.has_broke
= 0;
586 fra
.me
.REG
[0] = NIT_NULL
;
587 fra
.me
.closure_ctx
= closctx_param
;
588 fra
.me
.closure_funs
= CREG
;
591 /* ./analysis//reachable_from_init_method_analysis_impl.nit:97 */
592 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
593 if (UNTAG_Bool(REGB0
)) {
594 /* ./analysis//reachable_from_init_method_analysis_impl.nit:98 */
595 fra
.me
.REG
[0] = CALL_icode_base___MMMethod___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
596 /* ./analysis//reachable_from_init_method_analysis_impl.nit:99 */
597 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
598 if (UNTAG_Bool(REGB0
)) {
600 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
601 if (UNTAG_Bool(REGB1
)) {
602 REGB1
= TAG_Bool(false);
605 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
609 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
610 if (UNTAG_Bool(REGB0
)) {
611 CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
614 stack_frame_head
= fra
.me
.prev
;
617 void OC_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
){
618 struct {struct stack_frame_t me
;} fra
;
623 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
624 fra
.me
.file
= LOCATE_reachable_from_init_method_analysis_impl
;
626 fra
.me
.meth
= LOCATE_reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode
;
627 fra
.me
.has_broke
= 0;
629 fra
.me
.REG
[0] = NIT_NULL
;
630 fra
.me
.closure_ctx
= closctx_param
;
631 fra
.me
.closure_funs
= CREG
;
634 /* ./analysis//reachable_from_init_method_analysis_impl.nit:108 */
635 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_MMMethod
, ID_MMMethod
)) /*cast MMMethod*/;
636 if (UNTAG_Bool(REGB0
)) {
637 /* ./analysis//reachable_from_init_method_analysis_impl.nit:109 */
638 fra
.me
.REG
[0] = CALL_icode_base___MMMethod___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
639 closctx
->REG
[5] = fra
.me
.REG
[0];
640 /* ./analysis//reachable_from_init_method_analysis_impl.nit:110 */
641 REGB0
= TAG_Bool(closctx
->REG
[5]==NIT_NULL
);
642 if (UNTAG_Bool(REGB0
)) {
644 REGB1
= TAG_Bool(closctx
->REG
[5]==NIT_NULL
);
645 if (UNTAG_Bool(REGB1
)) {
646 REGB1
= TAG_Bool(false);
649 REGB1
= CALL_kernel___Object_____eqeq(closctx
->REG
[5])(closctx
->REG
[5], NIT_NULL
);
653 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
654 if (UNTAG_Bool(REGB0
)) {
655 CALL_reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx
->REG
[2])(closctx
->REG
[2], closctx
->REG
[5]);
658 stack_frame_head
= fra
.me
.prev
;