1 /* This C file is generated by NIT to compile module analysis___reachable_from_init_method_analysis_impl. */
2 #include "analysis___reachable_from_init_method_analysis_impl._sep.h"
3 val_t
analysis___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_analysis___reachable_from_init_method_analysis_impl
;
10 fra
.me
.meth
= LOCATE_analysis___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_analysis___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_analysis___reachable_from_init_method_analysis_impl
, 25);
21 fra
.me
.REG
[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____program(fra
.me
.REG
[0]);
22 stack_frame_head
= fra
.me
.prev
;
25 val_t
analysis___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_analysis___reachable_from_init_method_analysis_impl
;
32 fra
.me
.meth
= LOCATE_analysis___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_analysis___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_analysis___reachable_from_init_method_analysis_impl
, 26);
43 fra
.me
.REG
[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder____context(fra
.me
.REG
[0]);
44 stack_frame_head
= fra
.me
.prev
;
47 void analysis___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_analysis___reachable_from_init_method_analysis_impl___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_analysis___reachable_from_init_method_analysis_impl
;
55 fra
.me
.meth
= LOCATE_analysis___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_analysis___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 analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work(val_t p0
){
69 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
71 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
72 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
74 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work
;
77 fra
.me
.REG
[0] = NIT_NULL
;
78 fra
.me
.REG
[1] = NIT_NULL
;
79 fra
.me
.REG
[2] = NIT_NULL
;
81 /* ./analysis//reachable_from_init_method_analysis_impl.nit:32 */
82 fra
.me
.REG
[1] = fra
.me
.REG
[0];
83 /* ./analysis//reachable_from_init_method_analysis_impl.nit:33 */
84 fra
.me
.REG
[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
85 CALL_program___Program___with_each_live_local_classes(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1
));
86 stack_frame_head
= fra
.me
.prev
;
89 void OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_1(struct stack_frame_t
*closctx
, val_t p0
){
90 struct {struct stack_frame_t me
;} fra
;
92 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
93 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
95 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work
;
98 fra
.me
.REG
[0] = NIT_NULL
;
100 closctx
->REG
[2] = fra
.me
.REG
[0];
101 /* ./analysis//reachable_from_init_method_analysis_impl.nit:35 */
102 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass___global_properties(closctx
->REG
[2])(closctx
->REG
[2]);
103 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
, ((fun_t
)OC_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work_2
));
104 stack_frame_head
= fra
.me
.prev
;
107 void OC_analysis___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
){
108 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
112 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
113 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
115 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___work
;
116 fra
.me
.has_broke
= 0;
118 fra
.me
.REG
[0] = NIT_NULL
;
119 fra
.me
.REG
[1] = NIT_NULL
;
120 fra
.me
.REG
[2] = NIT_NULL
;
121 fra
.me
.closure_ctx
= closctx_param
;
122 fra
.me
.closure_funs
= CREG
;
125 /* ./analysis//reachable_from_init_method_analysis_impl.nit:36 */
126 fra
.me
.REG
[0] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
127 /* ./analysis//reachable_from_init_method_analysis_impl.nit:37 */
128 fra
.me
.REG
[1] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
129 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init_for(fra
.me
.REG
[1])(fra
.me
.REG
[1], closctx
->REG
[2]);
130 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
131 if (UNTAG_Bool(REGB0
)) {
134 /* ./analysis//reachable_from_init_method_analysis_impl.nit:38 */
135 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
136 if (UNTAG_Bool(REGB0
)) {
138 nit_abort("Assert failed", NULL
, LOCATE_analysis___reachable_from_init_method_analysis_impl
, 38);
140 /* ./analysis//reachable_from_init_method_analysis_impl.nit:39 */
141 fra
.me
.REG
[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx
->REG
[1])(closctx
->REG
[1]);
142 fra
.me
.REG
[1] = CALL_analysis___reachable_method_analysis___Program___rma(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
143 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_analysis___reachable_method_analysis___ReachableMethodAnalysis
, ID_analysis___reachable_method_analysis___ReachableMethodAnalysis
)) /*cast ReachableMethodAnalysis*/;
144 if (UNTAG_Bool(REGB0
)) {
146 nit_abort("Cast failed", NULL
, LOCATE_analysis___reachable_from_init_method_analysis_impl
, 39);
148 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
149 if (UNTAG_Bool(REGB0
)) {
150 nit_abort("Reciever is null", NULL
, LOCATE_analysis___reachable_from_init_method_analysis_impl
, 39);
152 REGB0
= CALL_analysis___reachable_method_analysis___ReachableMethodAnalysis___is_method_reachable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
153 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
154 if (UNTAG_Bool(REGB0
)) {
157 /* ./analysis//reachable_from_init_method_analysis_impl.nit:40 */
158 fra
.me
.REG
[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx
->REG
[2])(closctx
->REG
[2]);
159 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
160 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
161 if (UNTAG_Bool(REGB0
)) {
164 /* ./analysis//reachable_from_init_method_analysis_impl.nit:41 */
165 fra
.me
.REG
[1] = CALL_program___MMLocalClass___new_instance_iroutine(closctx
->REG
[2])(closctx
->REG
[2]);
166 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
167 /* ./analysis//reachable_from_init_method_analysis_impl.nit:44 */
168 fra
.me
.REG
[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx
->REG
[1])(closctx
->REG
[1]);
169 fra
.me
.REG
[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
170 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
171 /* ./analysis//reachable_from_init_method_analysis_impl.nit:45 */
172 fra
.me
.REG
[1] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___context(closctx
->REG
[1])(closctx
->REG
[1]);
173 fra
.me
.REG
[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMABuilder___program(closctx
->REG
[1])(closctx
->REG
[1]);
174 fra
.me
.REG
[2] = NEW_RFIMAVisitor_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(fra
.me
.REG
[1], fra
.me
.REG
[2]);
175 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
177 stack_frame_head
= fra
.me
.prev
;
180 val_t
analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(val_t p0
){
181 struct {struct stack_frame_t me
;} fra
;
184 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
185 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
187 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines
;
188 fra
.me
.has_broke
= 0;
190 fra
.me
.REG
[0] = NIT_NULL
;
192 /* ./analysis//reachable_from_init_method_analysis_impl.nit:53 */
193 REGB0
= TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra
.me
.REG
[0])!=NIT_NULL
);
194 if (UNTAG_Bool(REGB0
)) {
196 nit_abort("Uninitialized attribute %s", "_reachable_from_init_iroutines", LOCATE_analysis___reachable_from_init_method_analysis_impl
, 53);
198 fra
.me
.REG
[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAContext____reachable_from_init_iroutines(fra
.me
.REG
[0]);
199 stack_frame_head
= fra
.me
.prev
;
200 return fra
.me
.REG
[0];
202 val_t
analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init(val_t p0
, val_t p1
){
203 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
207 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
208 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
210 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_iroutine_reachable_from_init
;
211 fra
.me
.has_broke
= 0;
213 fra
.me
.REG
[0] = NIT_NULL
;
214 fra
.me
.REG
[1] = NIT_NULL
;
217 /* ./analysis//reachable_from_init_method_analysis_impl.nit:56 */
218 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
219 if (UNTAG_Bool(REGB0
)) {
221 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
222 if (UNTAG_Bool(REGB1
)) {
223 REGB1
= TAG_Bool(false);
226 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
230 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
231 if (UNTAG_Bool(REGB0
)) {
232 fra
.me
.REG
[0] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
233 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
235 REGB1
= TAG_Bool(false);
240 stack_frame_head
= fra
.me
.prev
;
243 val_t
analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init(val_t p0
, val_t p1
){
244 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
247 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
248 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
250 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___is_method_reachable_from_init
;
251 fra
.me
.has_broke
= 0;
253 fra
.me
.REG
[0] = NIT_NULL
;
254 fra
.me
.REG
[1] = NIT_NULL
;
257 /* ./analysis//reachable_from_init_method_analysis_impl.nit:60 */
258 fra
.me
.REG
[1] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
259 REGB0
= CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
262 stack_frame_head
= fra
.me
.prev
;
265 val_t
analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(val_t p0
){
266 struct {struct stack_frame_t me
;} fra
;
269 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
270 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
272 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context
;
273 fra
.me
.has_broke
= 0;
275 fra
.me
.REG
[0] = NIT_NULL
;
277 /* ./analysis//reachable_from_init_method_analysis_impl.nit:66 */
278 REGB0
= TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra
.me
.REG
[0])!=NIT_NULL
);
279 if (UNTAG_Bool(REGB0
)) {
281 nit_abort("Uninitialized attribute %s", "_context", LOCATE_analysis___reachable_from_init_method_analysis_impl
, 66);
283 fra
.me
.REG
[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra
.me
.REG
[0]);
284 stack_frame_head
= fra
.me
.prev
;
285 return fra
.me
.REG
[0];
287 val_t
analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(val_t p0
){
288 struct {struct stack_frame_t me
;} fra
;
291 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
292 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
294 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program
;
295 fra
.me
.has_broke
= 0;
297 fra
.me
.REG
[0] = NIT_NULL
;
299 /* ./analysis//reachable_from_init_method_analysis_impl.nit:67 */
300 REGB0
= TAG_Bool(ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra
.me
.REG
[0])!=NIT_NULL
);
301 if (UNTAG_Bool(REGB0
)) {
303 nit_abort("Uninitialized attribute %s", "_program", LOCATE_analysis___reachable_from_init_method_analysis_impl
, 67);
305 fra
.me
.REG
[0] = ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra
.me
.REG
[0]);
306 stack_frame_head
= fra
.me
.prev
;
307 return fra
.me
.REG
[0];
309 void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init(val_t p0
, val_t p1
, val_t p2
, int* init_table
){
310 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor
].i
;
311 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
313 if (init_table
[itpos1
]) return;
314 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
315 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
317 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___init
;
318 fra
.me
.has_broke
= 0;
320 fra
.me
.REG
[0] = NIT_NULL
;
321 fra
.me
.REG
[1] = NIT_NULL
;
322 fra
.me
.REG
[2] = NIT_NULL
;
323 fra
.me
.REG
[3] = NIT_NULL
;
327 /* ./analysis//reachable_from_init_method_analysis_impl.nit:69 */
328 fra
.me
.REG
[3] = fra
.me
.REG
[0];
329 CALL_icode___icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
330 /* ./analysis//reachable_from_init_method_analysis_impl.nit:70 */
331 ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____context(fra
.me
.REG
[3]) = fra
.me
.REG
[1];
332 /* ./analysis//reachable_from_init_method_analysis_impl.nit:71 */
333 ATTR_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor____program(fra
.me
.REG
[3]) = fra
.me
.REG
[2];
334 stack_frame_head
= fra
.me
.prev
;
335 init_table
[itpos1
] = 1;
338 void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(val_t p0
, val_t p1
){
339 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
342 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
343 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
345 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call
;
346 fra
.me
.has_broke
= 0;
348 fra
.me
.REG
[0] = NIT_NULL
;
349 fra
.me
.REG
[1] = NIT_NULL
;
350 fra
.me
.REG
[2] = NIT_NULL
;
353 /* ./analysis//reachable_from_init_method_analysis_impl.nit:75 */
354 fra
.me
.REG
[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
355 REGB0
= CALL_analysis___reachable_from_init_method_analysis___ReachableFromInitMethodAnalysis___is_iroutine_reachable_from_init(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
356 if (UNTAG_Bool(REGB0
)) {
359 /* ./analysis//reachable_from_init_method_analysis_impl.nit:76 */
360 fra
.me
.REG
[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___context(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
361 fra
.me
.REG
[2] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAContext___reachable_from_init_iroutines(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
362 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
363 /* ./analysis//reachable_from_init_method_analysis_impl.nit:77 */
364 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
366 stack_frame_head
= fra
.me
.prev
;
369 void analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(val_t p0
, val_t p1
){
370 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
374 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
375 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
377 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode
;
378 fra
.me
.has_broke
= 0;
380 fra
.me
.REG
[0] = NIT_NULL
;
381 fra
.me
.REG
[1] = NIT_NULL
;
382 fra
.me
.REG
[2] = NIT_NULL
;
383 fra
.me
.REG
[3] = NIT_NULL
;
384 fra
.me
.REG
[4] = NIT_NULL
;
385 fra
.me
.REG
[5] = NIT_NULL
;
388 /* ./analysis//reachable_from_init_method_analysis_impl.nit:80 */
389 fra
.me
.REG
[2] = fra
.me
.REG
[0];
390 fra
.me
.REG
[3] = fra
.me
.REG
[1];
391 /* ./analysis//reachable_from_init_method_analysis_impl.nit:82 */
392 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*/;
393 if (UNTAG_Bool(REGB0
)) {
394 /* ./analysis//reachable_from_init_method_analysis_impl.nit:84 */
395 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
396 if (UNTAG_Bool(REGB0
)) {
397 nit_abort("Reciever is null", NULL
, LOCATE_analysis___reachable_from_init_method_analysis_impl
, 84);
399 fra
.me
.REG
[4] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
400 fra
.me
.REG
[4] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
401 /* ./analysis//reachable_from_init_method_analysis_impl.nit:85 */
402 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
403 if (UNTAG_Bool(REGB0
)) {
405 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
406 if (UNTAG_Bool(REGB1
)) {
407 REGB1
= TAG_Bool(false);
410 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
414 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
415 if (UNTAG_Bool(REGB0
)) {
416 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
419 /* ./analysis//reachable_from_init_method_analysis_impl.nit:86 */
420 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*/;
421 if (UNTAG_Bool(REGB0
)) {
422 /* ./analysis//reachable_from_init_method_analysis_impl.nit:88 */
423 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
424 if (UNTAG_Bool(REGB0
)) {
425 nit_abort("Reciever is null", NULL
, LOCATE_analysis___reachable_from_init_method_analysis_impl
, 88);
427 fra
.me
.REG
[4] = CALL_icode___icode_base___INew___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
428 /* ./analysis//reachable_from_init_method_analysis_impl.nit:89 */
429 fra
.me
.REG
[5] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
430 fra
.me
.REG
[5] = CALL_program___Program___main_module(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
431 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
432 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
433 /* ./analysis//reachable_from_init_method_analysis_impl.nit:90 */
434 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
435 if (UNTAG_Bool(REGB0
)) {
436 nit_abort("Reciever is null", NULL
, LOCATE_analysis___reachable_from_init_method_analysis_impl
, 90);
438 fra
.me
.REG
[4] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
439 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
440 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
441 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[4], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
442 if (UNTAG_Bool(REGB0
)) {
444 nit_abort("Cast failed", NULL
, LOCATE_analysis___reachable_from_init_method_analysis_impl
, 90);
446 /* ./analysis//reachable_from_init_method_analysis_impl.nit:91 */
447 fra
.me
.REG
[5] = CALL_program___MMLocalClass___new_instance_iroutine(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
448 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
449 /* ./analysis//reachable_from_init_method_analysis_impl.nit:92 */
450 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
452 /* ./analysis//reachable_from_init_method_analysis_impl.nit:93 */
453 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*/;
454 if (UNTAG_Bool(REGB0
)) {
455 /* ./analysis//reachable_from_init_method_analysis_impl.nit:95 */
456 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
457 if (UNTAG_Bool(REGB0
)) {
458 nit_abort("Reciever is null", NULL
, LOCATE_analysis___reachable_from_init_method_analysis_impl
, 95);
460 fra
.me
.REG
[4] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
461 /* ./analysis//reachable_from_init_method_analysis_impl.nit:96 */
462 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
463 fra
.me
.REG
[4] = CALL_metamodel___partial_order___PartialOrderElement___greaters_and_self(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
464 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_1
));
466 /* ./analysis//reachable_from_init_method_analysis_impl.nit:102 */
467 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*/;
468 if (UNTAG_Bool(REGB0
)) {
469 /* ./analysis//reachable_from_init_method_analysis_impl.nit:104 */
470 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
471 if (UNTAG_Bool(REGB0
)) {
472 nit_abort("Reciever is null", NULL
, LOCATE_analysis___reachable_from_init_method_analysis_impl
, 104);
474 fra
.me
.REG
[4] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
475 /* ./analysis//reachable_from_init_method_analysis_impl.nit:105 */
476 fra
.me
.REG
[5] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
477 /* ./analysis//reachable_from_init_method_analysis_impl.nit:106 */
478 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
479 if (UNTAG_Bool(REGB0
)) {
481 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
482 if (UNTAG_Bool(REGB1
)) {
483 REGB1
= TAG_Bool(false);
486 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
490 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
491 if (UNTAG_Bool(REGB0
)) {
492 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
494 /* ./analysis//reachable_from_init_method_analysis_impl.nit:107 */
495 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___prhe(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
496 fra
.me
.REG
[4] = CALL_metamodel___partial_order___PartialOrderElement___smallers(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
497 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode_2
));
499 /* ./analysis//reachable_from_init_method_analysis_impl.nit:113 */
500 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*/;
501 if (UNTAG_Bool(REGB0
)) {
502 /* ./analysis//reachable_from_init_method_analysis_impl.nit:114 */
503 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
504 if (UNTAG_Bool(REGB0
)) {
505 nit_abort("Reciever is null", NULL
, LOCATE_analysis___reachable_from_init_method_analysis_impl
, 114);
507 fra
.me
.REG
[5] = CALL_icode___icode_base___ICheckInstance___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
508 /* ./analysis//reachable_from_init_method_analysis_impl.nit:115 */
509 fra
.me
.REG
[4] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
510 fra
.me
.REG
[4] = CALL_program___Program___main_module(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
511 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
512 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
513 /* ./analysis//reachable_from_init_method_analysis_impl.nit:116 */
514 fra
.me
.REG
[4] = CALL_program___MMLocalClass___checknew_iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
515 /* ./analysis//reachable_from_init_method_analysis_impl.nit:117 */
516 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
517 if (UNTAG_Bool(REGB0
)) {
519 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
520 if (UNTAG_Bool(REGB1
)) {
521 REGB1
= TAG_Bool(false);
524 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
528 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
529 if (UNTAG_Bool(REGB0
)) {
530 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
533 /* ./analysis//reachable_from_init_method_analysis_impl.nit:118 */
534 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*/;
535 if (UNTAG_Bool(REGB0
)) {
536 /* ./analysis//reachable_from_init_method_analysis_impl.nit:119 */
537 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
538 if (UNTAG_Bool(REGB0
)) {
539 nit_abort("Reciever is null", NULL
, LOCATE_analysis___reachable_from_init_method_analysis_impl
, 119);
541 fra
.me
.REG
[3] = CALL_icode___icode_base___IInitAttributes___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
542 /* ./analysis//reachable_from_init_method_analysis_impl.nit:120 */
543 fra
.me
.REG
[4] = CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___program(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
544 fra
.me
.REG
[4] = CALL_program___Program___main_module(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
545 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
546 fra
.me
.REG
[4] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
547 /* ./analysis//reachable_from_init_method_analysis_impl.nit:121 */
548 fra
.me
.REG
[4] = CALL_program___MMLocalClass___init_var_iroutine(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
549 /* ./analysis//reachable_from_init_method_analysis_impl.nit:122 */
550 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
551 if (UNTAG_Bool(REGB0
)) {
553 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
554 if (UNTAG_Bool(REGB1
)) {
555 REGB1
= TAG_Bool(false);
558 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
562 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
563 if (UNTAG_Bool(REGB0
)) {
564 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
572 /* ./analysis//reachable_from_init_method_analysis_impl.nit:124 */
573 CALL_SUPER_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
574 stack_frame_head
= fra
.me
.prev
;
577 void OC_analysis___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
){
578 struct {struct stack_frame_t me
;} fra
;
583 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
584 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
586 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode
;
587 fra
.me
.has_broke
= 0;
589 fra
.me
.REG
[0] = NIT_NULL
;
590 fra
.me
.closure_ctx
= closctx_param
;
591 fra
.me
.closure_funs
= CREG
;
594 /* ./analysis//reachable_from_init_method_analysis_impl.nit:97 */
595 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
596 if (UNTAG_Bool(REGB0
)) {
597 /* ./analysis//reachable_from_init_method_analysis_impl.nit:98 */
598 fra
.me
.REG
[0] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
599 /* ./analysis//reachable_from_init_method_analysis_impl.nit:99 */
600 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
601 if (UNTAG_Bool(REGB0
)) {
603 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
604 if (UNTAG_Bool(REGB1
)) {
605 REGB1
= TAG_Bool(false);
608 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
612 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
613 if (UNTAG_Bool(REGB0
)) {
614 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
617 stack_frame_head
= fra
.me
.prev
;
620 void OC_analysis___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
){
621 struct {struct stack_frame_t me
;} fra
;
626 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
627 fra
.me
.file
= LOCATE_analysis___reachable_from_init_method_analysis_impl
;
629 fra
.me
.meth
= LOCATE_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___visit_icode
;
630 fra
.me
.has_broke
= 0;
632 fra
.me
.REG
[0] = NIT_NULL
;
633 fra
.me
.closure_ctx
= closctx_param
;
634 fra
.me
.closure_funs
= CREG
;
637 /* ./analysis//reachable_from_init_method_analysis_impl.nit:108 */
638 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
639 if (UNTAG_Bool(REGB0
)) {
640 /* ./analysis//reachable_from_init_method_analysis_impl.nit:109 */
641 fra
.me
.REG
[0] = CALL_icode___icode_base___MMMethod___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
642 closctx
->REG
[5] = fra
.me
.REG
[0];
643 /* ./analysis//reachable_from_init_method_analysis_impl.nit:110 */
644 REGB0
= TAG_Bool(closctx
->REG
[5]==NIT_NULL
);
645 if (UNTAG_Bool(REGB0
)) {
647 REGB1
= TAG_Bool(closctx
->REG
[5]==NIT_NULL
);
648 if (UNTAG_Bool(REGB1
)) {
649 REGB1
= TAG_Bool(false);
652 REGB1
= CALL_standard___kernel___Object_____eqeq(closctx
->REG
[5])(closctx
->REG
[5], NIT_NULL
);
656 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
657 if (UNTAG_Bool(REGB0
)) {
658 CALL_analysis___reachable_from_init_method_analysis_impl___RFIMAVisitor___process_call(closctx
->REG
[2])(closctx
->REG
[2], closctx
->REG
[5]);
661 stack_frame_head
= fra
.me
.prev
;