1 /* This C file is generated by NIT to compile module global___reachable_as_init_impl. */
2 #include "global___reachable_as_init_impl._sep.h"
3 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___context
[] = "reachable_as_init_impl::ReachableAsInitBuilder::context";
4 val_t
global___reachable_as_init_impl___ReachableAsInitBuilder___context(val_t p0
){
5 struct {struct stack_frame_t me
;} fra
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_global___reachable_as_init_impl
;
11 fra
.me
.meth
= LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___context
;
14 fra
.me
.nitni_local_ref_head
= NULL
;
15 fra
.me
.REG
[0] = NIT_NULL
;
17 /* global/reachable_as_init_impl.nit:24 */
18 REGB0
= TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____context(fra
.me
.REG
[0])!=NIT_NULL
);
19 if (UNTAG_Bool(REGB0
)) {
21 nit_abort("Uninitialized attribute %s", "_context", LOCATE_global___reachable_as_init_impl
, 24);
23 fra
.me
.REG
[0] = ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____context(fra
.me
.REG
[0]);
24 stack_frame_head
= fra
.me
.prev
;
27 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___program
[] = "reachable_as_init_impl::ReachableAsInitBuilder::program";
28 val_t
global___reachable_as_init_impl___ReachableAsInitBuilder___program(val_t p0
){
29 struct {struct stack_frame_t me
;} fra
;
32 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
33 fra
.me
.file
= LOCATE_global___reachable_as_init_impl
;
35 fra
.me
.meth
= LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___program
;
38 fra
.me
.nitni_local_ref_head
= NULL
;
39 fra
.me
.REG
[0] = NIT_NULL
;
41 /* global/reachable_as_init_impl.nit:25 */
42 REGB0
= TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____program(fra
.me
.REG
[0])!=NIT_NULL
);
43 if (UNTAG_Bool(REGB0
)) {
45 nit_abort("Uninitialized attribute %s", "_program", LOCATE_global___reachable_as_init_impl
, 25);
47 fra
.me
.REG
[0] = ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____program(fra
.me
.REG
[0]);
48 stack_frame_head
= fra
.me
.prev
;
51 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___work
[] = "reachable_as_init_impl::ReachableAsInitBuilder::work";
52 void global___reachable_as_init_impl___ReachableAsInitBuilder___work(val_t p0
){
53 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
55 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
56 fra
.me
.file
= LOCATE_global___reachable_as_init_impl
;
58 fra
.me
.meth
= LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___work
;
61 fra
.me
.nitni_local_ref_head
= NULL
;
62 fra
.me
.REG
[0] = NIT_NULL
;
63 fra
.me
.REG
[1] = NIT_NULL
;
65 /* global/reachable_as_init_impl.nit:28 */
66 fra
.me
.REG
[1] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___program(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
67 CALL_program___Program___with_each_iroutines(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_global___reachable_as_init_impl___ReachableAsInitBuilder___work_1
));
68 stack_frame_head
= fra
.me
.prev
;
71 void OC_global___reachable_as_init_impl___ReachableAsInitBuilder___work_1(struct stack_frame_t
*closctx
, val_t p0
, val_t p1
){
72 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
75 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
76 fra
.me
.file
= LOCATE_global___reachable_as_init_impl
;
78 fra
.me
.meth
= LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___work
;
81 fra
.me
.nitni_local_ref_head
= NULL
;
82 fra
.me
.REG
[0] = NIT_NULL
;
83 fra
.me
.REG
[1] = NIT_NULL
;
86 /* global/reachable_as_init_impl.nit:29 */
87 fra
.me
.REG
[1] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___program(closctx
->REG
[0])(closctx
->REG
[0]);
88 fra
.me
.REG
[1] = CALL_global___reachable_method_analysis___Program___rma(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
89 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
90 if (UNTAG_Bool(REGB0
)) {
91 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_as_init_impl
, 29);
93 REGB0
= CALL_global___reachable_method_analysis___ReachableMethodAnalysis___is_iroutine_reachable(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
94 if (UNTAG_Bool(REGB0
)) {
95 /* global/reachable_as_init_impl.nit:30 */
96 fra
.me
.REG
[1] = NEW_RAIVisitor_global___reachable_as_init_impl___RAIVisitor___init(closctx
->REG
[0]);
97 /* global/reachable_as_init_impl.nit:31 */
98 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
100 stack_frame_head
= fra
.me
.prev
;
103 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___init
[] = "reachable_as_init_impl::ReachableAsInitBuilder::init";
104 void global___reachable_as_init_impl___ReachableAsInitBuilder___init(val_t p0
, val_t p1
, int* init_table
){
105 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_global___reachable_as_init_impl___ReachableAsInitBuilder
].i
;
106 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
108 if (init_table
[itpos0
]) return;
109 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
110 fra
.me
.file
= LOCATE_global___reachable_as_init_impl
;
112 fra
.me
.meth
= LOCATE_global___reachable_as_init_impl___ReachableAsInitBuilder___init
;
113 fra
.me
.has_broke
= 0;
115 fra
.me
.nitni_local_ref_head
= NULL
;
116 fra
.me
.REG
[0] = NIT_NULL
;
117 fra
.me
.REG
[1] = NIT_NULL
;
120 /* global/reachable_as_init_impl.nit:37 */
121 ATTR_global___reachable_as_init_impl___ReachableAsInitBuilder____program(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
122 stack_frame_head
= fra
.me
.prev
;
123 init_table
[itpos0
] = 1;
126 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init
[] = "reachable_as_init_impl::ReachableAsInitAnalysisImpl::(reachable_as_init::ReachableAsInitAnalysis::is_method_reachable_as_init)";
127 val_t
global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init(val_t p0
, val_t p1
, val_t p2
){
128 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
132 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
133 fra
.me
.file
= LOCATE_global___reachable_as_init_impl
;
135 fra
.me
.meth
= LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___is_method_reachable_as_init
;
136 fra
.me
.has_broke
= 0;
138 fra
.me
.nitni_local_ref_head
= NULL
;
139 fra
.me
.REG
[0] = NIT_NULL
;
140 fra
.me
.REG
[1] = NIT_NULL
;
141 fra
.me
.REG
[2] = NIT_NULL
;
142 fra
.me
.REG
[3] = NIT_NULL
;
146 /* global/reachable_as_init_impl.nit:48 */
147 REGB0
= TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[0])!=NIT_NULL
);
148 if (UNTAG_Bool(REGB0
)) {
150 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl
, 48);
152 fra
.me
.REG
[3] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[0]);
153 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
154 if (UNTAG_Bool(REGB0
)) {
155 REGB0
= TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[0])!=NIT_NULL
);
156 if (UNTAG_Bool(REGB0
)) {
158 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl
, 48);
160 fra
.me
.REG
[0] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[0]);
161 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
162 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
163 if (UNTAG_Bool(REGB0
)) {
164 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_as_init_impl
, 48);
166 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
169 /* global/reachable_as_init_impl.nit:49 */
174 stack_frame_head
= fra
.me
.prev
;
177 static const char LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init
[] = "reachable_as_init_impl::ReachableAsInitAnalysisImpl::init";
178 void global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init(val_t p0
, int* init_table
){
179 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl
].i
;
180 struct {struct stack_frame_t me
;} fra
;
182 if (init_table
[itpos1
]) return;
183 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
184 fra
.me
.file
= LOCATE_global___reachable_as_init_impl
;
186 fra
.me
.meth
= LOCATE_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl___init
;
187 fra
.me
.has_broke
= 0;
189 fra
.me
.nitni_local_ref_head
= NULL
;
190 fra
.me
.REG
[0] = NIT_NULL
;
192 stack_frame_head
= fra
.me
.prev
;
193 init_table
[itpos1
] = 1;
196 static const char LOCATE_global___reachable_as_init_impl___RAIVisitor___builder
[] = "reachable_as_init_impl::RAIVisitor::builder";
197 val_t
global___reachable_as_init_impl___RAIVisitor___builder(val_t p0
){
198 struct {struct stack_frame_t me
;} fra
;
201 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
202 fra
.me
.file
= LOCATE_global___reachable_as_init_impl
;
204 fra
.me
.meth
= LOCATE_global___reachable_as_init_impl___RAIVisitor___builder
;
205 fra
.me
.has_broke
= 0;
207 fra
.me
.nitni_local_ref_head
= NULL
;
208 fra
.me
.REG
[0] = NIT_NULL
;
210 /* global/reachable_as_init_impl.nit:57 */
211 REGB0
= TAG_Bool(ATTR_global___reachable_as_init_impl___RAIVisitor____builder(fra
.me
.REG
[0])!=NIT_NULL
);
212 if (UNTAG_Bool(REGB0
)) {
214 nit_abort("Uninitialized attribute %s", "_builder", LOCATE_global___reachable_as_init_impl
, 57);
216 fra
.me
.REG
[0] = ATTR_global___reachable_as_init_impl___RAIVisitor____builder(fra
.me
.REG
[0]);
217 stack_frame_head
= fra
.me
.prev
;
218 return fra
.me
.REG
[0];
220 static const char LOCATE_global___reachable_as_init_impl___RAIVisitor___visit_icode
[] = "reachable_as_init_impl::RAIVisitor::(icode_tools::ICodeVisitor::visit_icode)";
221 void global___reachable_as_init_impl___RAIVisitor___visit_icode(val_t p0
, val_t p1
){
222 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
225 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
226 fra
.me
.file
= LOCATE_global___reachable_as_init_impl
;
228 fra
.me
.meth
= LOCATE_global___reachable_as_init_impl___RAIVisitor___visit_icode
;
229 fra
.me
.has_broke
= 0;
231 fra
.me
.nitni_local_ref_head
= NULL
;
232 fra
.me
.REG
[0] = NIT_NULL
;
233 fra
.me
.REG
[1] = NIT_NULL
;
234 fra
.me
.REG
[2] = NIT_NULL
;
235 fra
.me
.REG
[3] = NIT_NULL
;
236 fra
.me
.REG
[4] = NIT_NULL
;
237 fra
.me
.REG
[5] = NIT_NULL
;
238 fra
.me
.REG
[6] = NIT_NULL
;
241 /* global/reachable_as_init_impl.nit:59 */
242 fra
.me
.REG
[2] = fra
.me
.REG
[0];
243 fra
.me
.REG
[3] = fra
.me
.REG
[1];
244 /* global/reachable_as_init_impl.nit:61 */
245 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*/;
246 if (UNTAG_Bool(REGB0
)) {
247 /* global/reachable_as_init_impl.nit:63 */
248 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
249 if (UNTAG_Bool(REGB0
)) {
250 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_as_init_impl
, 63);
252 fra
.me
.REG
[4] = CALL_icode___icode_base___INew___stype(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
253 /* global/reachable_as_init_impl.nit:64 */
254 fra
.me
.REG
[5] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
255 fra
.me
.REG
[5] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___program(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
256 fra
.me
.REG
[5] = CALL_program___Program___main_module(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
257 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___for_module(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
258 fra
.me
.REG
[5] = CALL_metamodel___static_type___MMType___local_class(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
259 /* global/reachable_as_init_impl.nit:65 */
260 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
261 if (UNTAG_Bool(REGB0
)) {
262 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_as_init_impl
, 65);
264 fra
.me
.REG
[3] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
265 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
266 fra
.me
.REG
[3] = CALL_metamodel___abstractmetamodel___MMLocalClass_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
267 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_metamodel___abstractmetamodel___MMMethod
, ID_metamodel___abstractmetamodel___MMMethod
)) /*cast MMMethod*/;
268 if (UNTAG_Bool(REGB0
)) {
270 nit_abort("Cast failed", NULL
, LOCATE_global___reachable_as_init_impl
, 65);
272 /* global/reachable_as_init_impl.nit:66 */
273 fra
.me
.REG
[4] = CALL_metamodel___abstractmetamodel___MMLocalProperty___global(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
274 REGB0
= CALL_metamodel___abstractmetamodel___MMGlobalProperty___is_init(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
275 if (UNTAG_Bool(REGB0
)) {
277 nit_abort("Assert failed", NULL
, LOCATE_global___reachable_as_init_impl
, 66);
279 /* global/reachable_as_init_impl.nit:67 */
280 fra
.me
.REG
[4] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
281 fra
.me
.REG
[4] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
282 REGB0
= TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[4])!=NIT_NULL
);
283 if (UNTAG_Bool(REGB0
)) {
285 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl
, 67);
287 fra
.me
.REG
[4] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[4]);
288 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
289 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
290 if (UNTAG_Bool(REGB0
)) {
291 fra
.me
.REG
[4] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
292 fra
.me
.REG
[4] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
293 REGB0
= TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[4])!=NIT_NULL
);
294 if (UNTAG_Bool(REGB0
)) {
296 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl
, 67);
298 fra
.me
.REG
[4] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[4]);
299 fra
.me
.REG
[6] = NEW_List_standard___collection___list___List___init();
300 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5], fra
.me
.REG
[6]);
302 /* global/reachable_as_init_impl.nit:68 */
303 fra
.me
.REG
[6] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
304 fra
.me
.REG
[6] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
305 REGB0
= TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[6])!=NIT_NULL
);
306 if (UNTAG_Bool(REGB0
)) {
308 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl
, 68);
310 fra
.me
.REG
[6] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[6]);
311 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[5]);
312 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
313 if (UNTAG_Bool(REGB0
)) {
314 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_as_init_impl
, 68);
316 REGB0
= CALL_standard___collection___abstract_collection___Collection___has(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[3]);
317 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
318 if (UNTAG_Bool(REGB0
)) {
319 fra
.me
.REG
[2] = CALL_global___reachable_as_init_impl___RAIVisitor___builder(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
320 fra
.me
.REG
[2] = CALL_global___reachable_as_init_impl___ReachableAsInitBuilder___context(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
321 REGB0
= TAG_Bool(ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[2])!=NIT_NULL
);
322 if (UNTAG_Bool(REGB0
)) {
324 nit_abort("Uninitialized attribute %s", "_methods", LOCATE_global___reachable_as_init_impl
, 68);
326 fra
.me
.REG
[2] = ATTR_global___reachable_as_init_impl___ReachableAsInitAnalysisImpl____methods(fra
.me
.REG
[2]);
327 fra
.me
.REG
[5] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[5]);
328 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
329 if (UNTAG_Bool(REGB0
)) {
330 nit_abort("Reciever is null", NULL
, LOCATE_global___reachable_as_init_impl
, 68);
332 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[3]);
335 /* global/reachable_as_init_impl.nit:70 */
336 CALL_SUPER_global___reachable_as_init_impl___RAIVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
337 stack_frame_head
= fra
.me
.prev
;
340 static const char LOCATE_global___reachable_as_init_impl___RAIVisitor___init
[] = "reachable_as_init_impl::RAIVisitor::init";
341 void global___reachable_as_init_impl___RAIVisitor___init(val_t p0
, val_t p1
, int* init_table
){
342 int itpos2
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_global___reachable_as_init_impl___RAIVisitor
].i
;
343 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
345 if (init_table
[itpos2
]) return;
346 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
347 fra
.me
.file
= LOCATE_global___reachable_as_init_impl
;
349 fra
.me
.meth
= LOCATE_global___reachable_as_init_impl___RAIVisitor___init
;
350 fra
.me
.has_broke
= 0;
352 fra
.me
.nitni_local_ref_head
= NULL
;
353 fra
.me
.REG
[0] = NIT_NULL
;
354 fra
.me
.REG
[1] = NIT_NULL
;
355 fra
.me
.REG
[2] = NIT_NULL
;
358 /* global/reachable_as_init_impl.nit:73 */
359 fra
.me
.REG
[2] = fra
.me
.REG
[0];
360 CALL_icode___icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
361 /* global/reachable_as_init_impl.nit:75 */
362 ATTR_global___reachable_as_init_impl___RAIVisitor____builder(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
363 stack_frame_head
= fra
.me
.prev
;
364 init_table
[itpos2
] = 1;