1 #include <OOC/IR/ConstFold.d>
2 #include <__oo2c.h>
3 #include <setjmp.h>
4 
OOC_IR_ConstFold__InitConstFold(OOC_IR_ConstFold__ConstFold c)5 static void OOC_IR_ConstFold__InitConstFold(OOC_IR_ConstFold__ConstFold c) {
6   register OOC_INT64 i0;
7 
8   i0 = (OOC_INT64)c;
9   OOC_IR__InitConstFold((OOC_IR__ConstFold)i0, (OOC_IR__Builder)(OOC_INT64)0);
10   return;
11   ;
12 }
13 
OOC_IR_ConstFold__NewConstFold(void)14 OOC_IR_ConstFold__ConstFold OOC_IR_ConstFold__NewConstFold(void) {
15   register OOC_INT64 i0;
16 
17   i0 = (OOC_INT64)RT0__NewObject(_td_OOC_IR_ConstFold__ConstFold.baseTypes[0]);
18   OOC_IR_ConstFold__InitConstFold((OOC_IR_ConstFold__ConstFold)i0);
19   return (OOC_IR_ConstFold__ConstFold)i0;
20   ;
21 }
22 
OOC_IR_ConstFold__SmallestType(Object_Boxed__Object value)23 static OOC_SymbolTable__Type OOC_IR_ConstFold__SmallestType(Object_Boxed__Object value) {
24   register OOC_INT64 i0,i1;
25 
26   i0 = (OOC_INT64)value;
27   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 1697)))), &_td_Object_BigInt__BigIntDesc);
28   if (i1) goto l11;
29   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 1769)))), &_td_Object_Boxed__LongRealDesc);
30   if (i1) goto l9;
31   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 1893)))), &_td_Object_Boxed__SetDesc);
32   if (i1) goto l7;
33   _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 1885)))), 1885);
34   goto l12;
35 l7:
36   i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(10);
37   return (OOC_SymbolTable__Type)i0;
38   goto l12;
39 l9:
40   i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(8);
41   return (OOC_SymbolTable__Type)i0;
42   goto l12;
43 l11:
44   i0 = (OOC_INT64)OOC_SymbolTable_Predef__SmallestIntType((Object_BigInt__BigInt)i0);
45   return (OOC_SymbolTable__Type)i0;
46 l12:
47   _failed_function(1565); return 0;
48   ;
49 }
50 
OOC_IR_ConstFold__ConstFoldDesc_ValueConst(OOC_IR_ConstFold__ConstFold c,Object_Boxed__Object value,OOC_IR__Operator op)51 OOC_IR__Const OOC_IR_ConstFold__ConstFoldDesc_ValueConst(OOC_IR_ConstFold__ConstFold c, Object_Boxed__Object value, OOC_IR__Operator op) {
52   register OOC_INT64 i0,i1,i2,i3,i4;
53   OOC_SymbolTable__Type type;
54 
55   i0 = (OOC_INT64)value;
56   i1 = (OOC_INT64)OOC_IR_ConstFold__SmallestType((Object_Boxed__Object)i0);
57   type = (OOC_SymbolTable__Type)i1;
58   i2 = i1==(OOC_INT64)0;
59   if (i2) goto l3;
60   i2 = (OOC_INT64)op;
61   i3 = (OOC_INT64)c;
62   i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 2273));
63   i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 2273));
64   i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 2293));
65   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 2281)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i1, (Object_Boxed__Object)i0);
66   return (OOC_IR__Const)i0;
67   goto l4;
68 l3:
69   i0 = (OOC_INT64)op;
70   i1 = (OOC_INT64)c;
71   i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 2199));
72   i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 2199));
73   i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 2232));
74   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 2207)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i1, 10, (OOC_Scanner_SymList__Symbol)i0);
75   return (OOC_IR__Const)(OOC_INT64)0;
76 l4:
77   _failed_function(2052); return 0;
78   ;
79 }
80 
OOC_IR_ConstFold__ConstFoldDesc_BooleanConst(OOC_IR_ConstFold__ConstFold c,OOC_CHAR8 value,OOC_IR__Operator op)81 OOC_IR__Const OOC_IR_ConstFold__ConstFoldDesc_BooleanConst(OOC_IR_ConstFold__ConstFold c, OOC_CHAR8 value, OOC_IR__Operator op) {
82   register OOC_INT64 i0,i1,i2,i3,i4;
83 
84   i0 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Boolean.baseTypes[0]);
85   i1 = value;
86   Object_Boxed__BooleanDesc_INIT((Object_Boxed__Boolean)i0, i1);
87   i1 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(0);
88   i2 = (OOC_INT64)op;
89   i3 = (OOC_INT64)c;
90   i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 2437));
91   i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 2457));
92   i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 2437));
93   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 2445)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i3, (OOC_Scanner_SymList__Symbol)i2, (OOC_SymbolTable__Type)i1, (Object_Boxed__Object)i0);
94   return (OOC_IR__Const)i0;
95   ;
96 }
97 
OOC_IR_ConstFold__ConstFoldDesc_ValidEval(OOC_IR_ConstFold__ConstFold c,OOC_IR__Expression expr,Object_Boxed__Object * result)98 OOC_CHAR8 OOC_IR_ConstFold__ConstFoldDesc_ValidEval(OOC_IR_ConstFold__ConstFold c, OOC_IR__Expression expr, Object_Boxed__Object *result) {
99   register OOC_INT64 i0,i1,i2;
100 
101   i0 = (OOC_INT64)c;
102   *(OOC_INT64*)((_check_pointer(i0, 2648))+8) = (OOC_INT64)0;
103   i1 = (OOC_INT64)expr;
104   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 2670)))), OOC_IR__NodeDesc_Accept)),OOC_IR__NodeDesc_Accept)((OOC_IR__Node)i1, (OOC_IR__Visitor)i0);
105   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2689))+8);
106   i1 = i1!=(OOC_INT64)0;
107   if (i1) goto l3;
108   i1=0u;
109   goto l5;
110 l3:
111   i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 2719));
112   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 2727))+48);
113   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2708))+8);
114   i1 = i2!=i1;
115 
116 l5:
117   if (!i1) goto l7;
118   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2759))+8);
119   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2770)))), &_td_OOC_IR__ConstDesc, 2770)), 2776))+16);
120   *result = (Object_Boxed__Object)i0;
121   return 1u;
122 l7:
123   return 0u;
124   ;
125 }
126 
OOC_IR_ConstFold__ConstFoldDesc_VisitConst(OOC_IR_ConstFold__ConstFold c,OOC_IR__Const _const)127 void OOC_IR_ConstFold__ConstFoldDesc_VisitConst(OOC_IR_ConstFold__ConstFold c, OOC_IR__Const _const) {
128   register OOC_INT64 i0,i1;
129 
130   i0 = (OOC_INT64)c;
131   i1 = (OOC_INT64)_const;
132   *(OOC_INT64*)((_check_pointer(i0, 2909))+8) = i1;
133   return;
134   ;
135 }
136 
OOC_IR_ConstFold__ConstFoldDesc_VisitVar(OOC_IR_ConstFold__ConstFold c,OOC_IR__Var car)137 void OOC_IR_ConstFold__ConstFoldDesc_VisitVar(OOC_IR_ConstFold__ConstFold c, OOC_IR__Var car) {
138 
139   return;
140   ;
141 }
142 
OOC_IR_ConstFold__ConstFoldDesc_VisitPredefProc(OOC_IR_ConstFold__ConstFold c,OOC_IR__PredefProc pproc)143 void OOC_IR_ConstFold__ConstFoldDesc_VisitPredefProc(OOC_IR_ConstFold__ConstFold c, OOC_IR__PredefProc pproc) {
144 
145   return;
146   ;
147 }
148 
OOC_IR_ConstFold__ConstFoldDesc_VisitProcedureRef(OOC_IR_ConstFold__ConstFold c,OOC_IR__ProcedureRef procRef)149 void OOC_IR_ConstFold__ConstFoldDesc_VisitProcedureRef(OOC_IR_ConstFold__ConstFold c, OOC_IR__ProcedureRef procRef) {
150 
151   return;
152   ;
153 }
154 
OOC_IR_ConstFold__ConstFoldDesc_VisitTypeRef(OOC_IR_ConstFold__ConstFold c,OOC_IR__TypeRef typeRef)155 void OOC_IR_ConstFold__ConstFoldDesc_VisitTypeRef(OOC_IR_ConstFold__ConstFold c, OOC_IR__TypeRef typeRef) {
156 
157   return;
158   ;
159 }
160 
OOC_IR_ConstFold__ConstFoldDesc_VisitModuleRef(OOC_IR_ConstFold__ConstFold c,OOC_IR__ModuleRef modRef)161 void OOC_IR_ConstFold__ConstFoldDesc_VisitModuleRef(OOC_IR_ConstFold__ConstFold c, OOC_IR__ModuleRef modRef) {
162 
163   return;
164   ;
165 }
166 
OOC_IR_ConstFold__ConstFoldDesc_VisitAdr(OOC_IR_ConstFold__ConstFold c,OOC_IR__Adr adr)167 void OOC_IR_ConstFold__ConstFoldDesc_VisitAdr(OOC_IR_ConstFold__ConstFold c, OOC_IR__Adr adr) {
168 
169   return;
170   ;
171 }
172 
OOC_IR_ConstFold__ConstFoldDesc_VisitLen(OOC_IR_ConstFold__ConstFold c,OOC_IR__Len len)173 void OOC_IR_ConstFold__ConstFoldDesc_VisitLen(OOC_IR_ConstFold__ConstFold c, OOC_IR__Len len) {
174   register OOC_INT64 i0,i1,i2,i3,i4,i5;
175   OOC_INT32 length;
176   OOC_SymbolTable__Type type;
177 
178   i0 = (OOC_INT64)len;
179   i1 = *(OOC_INT8*)((_check_pointer(i0, 3621))+16);
180   switch (i1) {
181   case 16:
182     i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3672))+24);
183     i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3682)))), &_td_OOC_IR__ConstDesc, 3682)), 3688))+16);
184     i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3695)))), &_td_Object_Boxed__StringDesc);
185     if (i1) goto l5;
186     length = 1;
187 
188     goto l10;
189 l5:
190     i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3738))+24);
191     i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3748)))), &_td_OOC_IR__ConstDesc, 3748)), 3754))+16);
192     i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3767)))), &_td_Object_Boxed__StringDesc, 3767)), 3774));
193     i1 = *(OOC_INT32*)(_check_pointer(i1, 3781));
194     length = (i1+1);
195 
196     goto l10;
197   case 17:
198     i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3948))+40);
199     i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3963))+8);
200     i2 = *(OOC_INT32*)((_check_pointer(i0, 4004))+32);
201     i1 = (OOC_INT64)OOC_SymbolTable__ArrayDesc_GetNthElementType((OOC_SymbolTable__Array)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3974)))), &_td_OOC_SymbolTable__ArrayDesc, 3974)), i2);
202     type = (OOC_SymbolTable__Type)i1;
203     i1 = *(OOC_INT32*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4036)))), &_td_OOC_SymbolTable__ArrayDesc, 4036)), 4042))+96);
204     length = i1;
205     goto l10;
206   case 18:
207   case 19:
208     i1 = (OOC_INT64)c;
209     *(OOC_INT64*)((_check_pointer(i1, 4114))+8) = (OOC_INT64)0;
210     return;
211     goto l10;
212   default:
213     _failed_case(i1, 3613);
214     goto l10;
215   }
216 l10:
217   i1 = (OOC_INT64)c;
218   i2 = length;
219   i2 = (OOC_INT64)Object_BigInt__NewInt(i2);
220   i3 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(6);
221   i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 4164));
222   i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 4185));
223   i5 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 4164));
224   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 4172)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i5, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i3, (Object_Boxed__Object)i2);
225   *(OOC_INT64*)((_check_pointer(i1, 4152))+8) = i0;
226   return;
227   ;
228 }
229 
OOC_IR_ConstFold__ConstFoldDesc_VisitConstructor(OOC_IR_ConstFold__ConstFold c,OOC_IR__Constructor cons)230 void OOC_IR_ConstFold__ConstFoldDesc_VisitConstructor(OOC_IR_ConstFold__ConstFold c, OOC_IR__Constructor cons) {
231 
232   return;
233   ;
234 }
235 
OOC_IR_ConstFold__ConstFoldDesc_VisitCurrentException(OOC_IR_ConstFold__ConstFold c,OOC_IR__CurrentException ce)236 void OOC_IR_ConstFold__ConstFoldDesc_VisitCurrentException(OOC_IR_ConstFold__ConstFold c, OOC_IR__CurrentException ce) {
237 
238   return;
239   ;
240 }
241 
OOC_IR_ConstFold__ConstFoldDesc_VisitDeref(OOC_IR_ConstFold__ConstFold c,OOC_IR__Deref deref)242 void OOC_IR_ConstFold__ConstFoldDesc_VisitDeref(OOC_IR_ConstFold__ConstFold c, OOC_IR__Deref deref) {
243 
244   return;
245   ;
246 }
247 
OOC_IR_ConstFold__ConstFoldDesc_VisitIndex(OOC_IR_ConstFold__ConstFold c,OOC_IR__Index index)248 void OOC_IR_ConstFold__ConstFoldDesc_VisitIndex(OOC_IR_ConstFold__ConstFold c, OOC_IR__Index index) {
249 
250   return;
251   ;
252 }
253 
OOC_IR_ConstFold__ConstFoldDesc_VisitSetMember(OOC_IR_ConstFold__ConstFold c,OOC_IR__SetMember op)254 void OOC_IR_ConstFold__ConstFoldDesc_VisitSetMember(OOC_IR_ConstFold__ConstFold c, OOC_IR__SetMember op) {
255   register OOC_INT64 i0,i1,i2,i3;
256   Object_Boxed__Object e;
257   Object_Boxed__Object s;
258   OOC_INT32 element;
259   OOC_UINT32 set;
260 
261   i0 = (OOC_INT64)op;
262   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4975))+16);
263   i2 = (OOC_INT64)c;
264   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&e);
265   if (i1) goto l3;
266   i1=0u;
267   goto l5;
268 l3:
269   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5004))+24);
270   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&s);
271 
272 l5:
273   if (i1) goto l7;
274   *(OOC_INT64*)((_check_pointer(i2, 5168))+8) = (OOC_INT64)0;
275   goto l8;
276 l7:
277   i1 = (OOC_INT64)e;
278   i1 = Object_BigInt__BigIntDesc_ToLongInt((Object_BigInt__BigInt)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 5044)))), &_td_Object_BigInt__BigIntDesc, 5044)));
279   element = i1;
280   i3 = (OOC_INT64)s;
281   i3 = *(OOC_UINT32*)(_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 5086)))), &_td_Object_Boxed__SetDesc, 5086)), 5090));
282   set = i3;
283   i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_BooleanConst((OOC_IR_ConstFold__ConstFold)i2, (_in(i1,i3)), (OOC_IR__Operator)i0);
284   *(OOC_INT64*)((_check_pointer(i2, 5105))+8) = i0;
285 l8:
286   return;
287   ;
288 }
289 
OOC_IR_ConstFold__ConstFoldDesc_VisitSetRange(OOC_IR_ConstFold__ConstFold c,OOC_IR__SetRange op)290 void OOC_IR_ConstFold__ConstFoldDesc_VisitSetRange(OOC_IR_ConstFold__ConstFold c, OOC_IR__SetRange op) {
291   register OOC_INT64 i0,i1,i2,i3,i4;
292   Object_Boxed__Object l;
293   Object_Boxed__Object r;
294   OOC_INT32 left;
295   OOC_INT32 right;
296 
297   i0 = (OOC_INT64)op;
298   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5363))+16);
299   i2 = (OOC_INT64)c;
300   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&l);
301   if (i1) goto l3;
302   i1=0u;
303   goto l5;
304 l3:
305   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5389))+24);
306   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&r);
307 
308 l5:
309   if (i1) goto l7;
310   *(OOC_INT64*)((_check_pointer(i2, 5574))+8) = (OOC_INT64)0;
311   goto l8;
312 l7:
313   i1 = (OOC_INT64)l;
314   i1 = Object_BigInt__BigIntDesc_ToLongInt((Object_BigInt__BigInt)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 5425)))), &_td_Object_BigInt__BigIntDesc, 5425)));
315   left = i1;
316   i3 = (OOC_INT64)r;
317   i3 = Object_BigInt__BigIntDesc_ToLongInt((Object_BigInt__BigInt)(_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 5470)))), &_td_Object_BigInt__BigIntDesc, 5470)));
318   right = i3;
319   i4 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Set.baseTypes[0]);
320   Object_Boxed__SetDesc_INIT((Object_Boxed__Set)i4, (_bit_range(i1,i3)));
321   i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_ValueConst((OOC_IR_ConstFold__ConstFold)i2, (Object_Boxed__Object)i4, (OOC_IR__Operator)i0);
322   *(OOC_INT64*)((_check_pointer(i2, 5498))+8) = i0;
323 l8:
324   return;
325   ;
326 }
327 
OOC_IR_ConstFold__ConstFoldDesc_VisitSetOp(OOC_IR_ConstFold__ConstFold c,OOC_IR__SetOp op)328 void OOC_IR_ConstFold__ConstFoldDesc_VisitSetOp(OOC_IR_ConstFold__ConstFold c, OOC_IR__SetOp op) {
329   register OOC_INT64 i0,i1,i2,i3,i4;
330   Object_Boxed__Object l;
331   Object_Boxed__Object r;
332   OOC_UINT32 left;
333   OOC_UINT32 right;
334   OOC_UINT32 result;
335 
336   i0 = (OOC_INT64)op;
337   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5778))+24);
338   i2 = (OOC_INT64)c;
339   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&l);
340   if (i1) goto l3;
341   i1=0u;
342   goto l5;
343 l3:
344   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5804))+32);
345   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&r);
346 
347 l5:
348   if (i1) goto l7;
349   *(OOC_INT64*)((_check_pointer(i2, 6295))+8) = (OOC_INT64)0;
350   goto l15;
351 l7:
352   i1 = (OOC_INT64)l;
353   i1 = *(OOC_UINT32*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 5842)))), &_td_Object_Boxed__SetDesc, 5842)), 5846));
354   left = i1;
355   i3 = (OOC_INT64)r;
356   i3 = *(OOC_UINT32*)(_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 5878)))), &_td_Object_Boxed__SetDesc, 5878)), 5882));
357   right = i3;
358   i4 = *(OOC_INT8*)((_check_pointer(i0, 5908))+16);
359   switch (i4) {
360   case 6:
361     result = (i1|i3);
362     goto l14;
363   case 7:
364     result = (_logical_subtr(i1,i3));
365     goto l14;
366   case 8:
367     result = (i1&i3);
368     goto l14;
369   case 9:
370     result = (i1^i3);
371     goto l14;
372   default:
373     i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 6136));
374     i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 6168));
375     i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 6136));
376     OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6144)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i4, 6, (OOC_Scanner_SymList__Symbol)i3);
377     *(OOC_INT64*)((_check_pointer(i2, 6185))+8) = (OOC_INT64)0;
378     return;
379     goto l14;
380   }
381 l14:
382   i1 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Set.baseTypes[0]);
383   i3 = result;
384   Object_Boxed__SetDesc_INIT((Object_Boxed__Set)i1, i3);
385   i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_ValueConst((OOC_IR_ConstFold__ConstFold)i2, (Object_Boxed__Object)i1, (OOC_IR__Operator)i0);
386   *(OOC_INT64*)((_check_pointer(i2, 6226))+8) = i0;
387 l15:
388   return;
389   ;
390 }
391 
OOC_IR_ConstFold__ConstFoldDesc_VisitChangeElement(OOC_IR_ConstFold__ConstFold c,OOC_IR__ChangeElement op)392 void OOC_IR_ConstFold__ConstFoldDesc_VisitChangeElement(OOC_IR_ConstFold__ConstFold c, OOC_IR__ChangeElement op) {
393 
394   return;
395   ;
396 }
397 
OOC_IR_ConstFold__ConstFoldDesc_VisitSelectField(OOC_IR_ConstFold__ConstFold c,OOC_IR__SelectField sf)398 void OOC_IR_ConstFold__ConstFoldDesc_VisitSelectField(OOC_IR_ConstFold__ConstFold c, OOC_IR__SelectField sf) {
399 
400   return;
401   ;
402 }
403 
OOC_IR_ConstFold__ConstFoldDesc_VisitSelectProc(OOC_IR_ConstFold__ConstFold c,OOC_IR__SelectProc sp)404 void OOC_IR_ConstFold__ConstFoldDesc_VisitSelectProc(OOC_IR_ConstFold__ConstFold c, OOC_IR__SelectProc sp) {
405 
406   return;
407   ;
408 }
409 
OOC_IR_ConstFold__ConstFoldDesc_VisitNegate(OOC_IR_ConstFold__ConstFold c,OOC_IR__Negate op)410 void OOC_IR_ConstFold__ConstFoldDesc_VisitNegate(OOC_IR_ConstFold__ConstFold c, OOC_IR__Negate op) {
411   register OOC_INT64 i0,i1,i2,i3;
412   Object_Boxed__Object value;
413   OOC_INT16 id;
414 
415   i0 = (OOC_INT64)op;
416   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6766))+16);
417   i2 = (OOC_INT64)c;
418   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&value);
419   if (i1) goto l3;
420   *(OOC_INT64*)((_check_pointer(i2, 7329))+8) = (OOC_INT64)0;
421   goto l10;
422 l3:
423   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6800))+16);
424   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 6808))+8);
425   i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6818)))), &_td_OOC_SymbolTable__PredefTypeDesc, 6818)), 6829))+72);
426   id = i1;
427   switch (i1) {
428   case 4 ... 7:
429     i1 = (OOC_INT64)value;
430     i1 = (OOC_INT64)Object_BigInt__BigIntDesc_Neg((Object_BigInt__BigInt)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6933)))), &_td_Object_BigInt__BigIntDesc, 6933)));
431     i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_ValueConst((OOC_IR_ConstFold__ConstFold)i2, (Object_Boxed__Object)i1, (OOC_IR__Operator)i0);
432     *(OOC_INT64*)((_check_pointer(i2, 6896))+8) = i0;
433     goto l10;
434   case 10:
435     i1 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Set.baseTypes[0]);
436     i3 = (OOC_INT64)value;
437     i3 = *(OOC_UINT32*)(_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 7030)))), &_td_Object_Boxed__SetDesc, 7030)), 7034));
438     Object_Boxed__SetDesc_INIT((Object_Boxed__Set)i1, (~i3));
439     i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_ValueConst((OOC_IR_ConstFold__ConstFold)i2, (Object_Boxed__Object)i1, (OOC_IR__Operator)i0);
440     *(OOC_INT64*)((_check_pointer(i2, 6978))+8) = i0;
441     goto l10;
442   case 8:
443   case 9:
444     i1 = (OOC_INT64)value;
445     i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7153)))), &_td_Object_Boxed__LongRealDesc, 7153)), 7162)))), Object_Boxed__LongRealDesc_Neg)),Object_Boxed__LongRealDesc_Neg)((Object_Boxed__LongReal)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7153)))), &_td_Object_Boxed__LongRealDesc, 7153)));
446     i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_ValueConst((OOC_IR_ConstFold__ConstFold)i2, (Object_Boxed__Object)i1, (OOC_IR__Operator)i0);
447     *(OOC_INT64*)((_check_pointer(i2, 7117))+8) = i0;
448     goto l10;
449   default:
450     i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 7238));
451     i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 7278));
452     i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 7238));
453     OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7246)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i3, 7, (OOC_Scanner_SymList__Symbol)i0);
454     *(OOC_INT64*)((_check_pointer(i2, 7292))+8) = (OOC_INT64)0;
455     goto l10;
456   }
457 l10:
458   return;
459   ;
460 }
461 
OOC_IR_ConstFold__ConstFoldDesc_VisitNewBlock(OOC_IR_ConstFold__ConstFold c,OOC_IR__NewBlock _new)462 void OOC_IR_ConstFold__ConstFoldDesc_VisitNewBlock(OOC_IR_ConstFold__ConstFold c, OOC_IR__NewBlock _new) {
463 
464   return;
465   ;
466 }
467 
OOC_IR_ConstFold__ConstFoldDesc_VisitNewObject(OOC_IR_ConstFold__ConstFold c,OOC_IR__NewObject _new)468 void OOC_IR_ConstFold__ConstFoldDesc_VisitNewObject(OOC_IR_ConstFold__ConstFold c, OOC_IR__NewObject _new) {
469 
470   return;
471   ;
472 }
473 
OOC_IR_ConstFold__ConstFoldDesc_VisitNot(OOC_IR_ConstFold__ConstFold c,OOC_IR__Not op)474 void OOC_IR_ConstFold__ConstFoldDesc_VisitNot(OOC_IR_ConstFold__ConstFold c, OOC_IR__Not op) {
475   register OOC_INT64 i0,i1,i2;
476   Object_Boxed__Object value;
477 
478   i0 = (OOC_INT64)op;
479   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 7656))+16);
480   i2 = (OOC_INT64)c;
481   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&value);
482   if (i1) goto l3;
483   *(OOC_INT64*)((_check_pointer(i2, 7755))+8) = (OOC_INT64)0;
484   goto l4;
485 l3:
486   i1 = (OOC_INT64)value;
487   i1 = *(OOC_UINT8*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 7722)))), &_td_Object_Boxed__BooleanDesc, 7722)), 7730));
488   i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_BooleanConst((OOC_IR_ConstFold__ConstFold)i2, (!i1), (OOC_IR__Operator)i0);
489   *(OOC_INT64*)((_check_pointer(i2, 7683))+8) = i0;
490 l4:
491   return;
492   ;
493 }
494 
OOC_IR_ConstFold__ConstFoldDesc_VisitAbs(OOC_IR_ConstFold__ConstFold c,OOC_IR__Abs op)495 void OOC_IR_ConstFold__ConstFoldDesc_VisitAbs(OOC_IR_ConstFold__ConstFold c, OOC_IR__Abs op) {
496 
497   return;
498   ;
499 }
500 
OOC_IR_ConstFold__ConstFoldDesc_VisitAsh(OOC_IR_ConstFold__ConstFold c,OOC_IR__Ash op)501 void OOC_IR_ConstFold__ConstFoldDesc_VisitAsh(OOC_IR_ConstFold__ConstFold c, OOC_IR__Ash op) {
502   register OOC_INT64 i0,i1,i2,i3;
503   Object_Boxed__Object v;
504   Object_Boxed__Object e;
505   OOC_INT32 shift;
506 
507   i0 = (OOC_INT64)op;
508   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8014))+16);
509   i2 = (OOC_INT64)c;
510   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&v);
511   if (i1) goto l3;
512   i1=0u;
513   goto l5;
514 l3:
515   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8041))+24);
516   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&e);
517 
518 l5:
519   if (i1) goto l7;
520   *(OOC_INT64*)((_check_pointer(i2, 8313))+8) = (OOC_INT64)0;
521   goto l12;
522 l7:
523   i1 = (OOC_INT64)e;
524   i1 = Object_BigInt__BigIntDesc_ToLongInt((Object_BigInt__BigInt)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 8079)))), &_td_Object_BigInt__BigIntDesc, 8079)));
525   shift = i1;
526   i3 = i1<0;
527   if (i3) goto l10;
528   i3 = (OOC_INT64)v;
529   i1 = (OOC_INT64)Object_BigInt__BigIntDesc_LShift((Object_BigInt__BigInt)(_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 8256)))), &_td_Object_BigInt__BigIntDesc, 8256)), i1);
530   i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_ValueConst((OOC_IR_ConstFold__ConstFold)i2, (Object_Boxed__Object)i1, (OOC_IR__Operator)i0);
531   *(OOC_INT64*)((_check_pointer(i2, 8221))+8) = i0;
532   goto l12;
533 l10:
534   i3 = (OOC_INT64)v;
535   i1 = (OOC_INT64)Object_BigInt__BigIntDesc_RShift((Object_BigInt__BigInt)(_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 8170)))), &_td_Object_BigInt__BigIntDesc, 8170)), (-i1));
536   i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_ValueConst((OOC_IR_ConstFold__ConstFold)i2, (Object_Boxed__Object)i1, (OOC_IR__Operator)i0);
537   *(OOC_INT64*)((_check_pointer(i2, 8135))+8) = i0;
538 l12:
539   return;
540   ;
541 }
542 
OOC_IR_ConstFold__ConstFoldDesc_VisitCap(OOC_IR_ConstFold__ConstFold c,OOC_IR__Cap op)543 void OOC_IR_ConstFold__ConstFoldDesc_VisitCap(OOC_IR_ConstFold__ConstFold c, OOC_IR__Cap op) {
544   register OOC_INT64 i0,i1,i2,i3,i4,i5;
545   Object_Boxed__Object value;
546   OOC_CHAR8 str[2];
547 
548   i0 = (OOC_INT64)op;
549   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8482))+16);
550   i2 = (OOC_INT64)c;
551   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&value);
552   if (i1) goto l3;
553   *(OOC_INT64*)((_check_pointer(i2, 8755))+8) = (OOC_INT64)0;
554   goto l4;
555 l3:
556   i1 = (OOC_INT64)value;
557   i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 8546)))), &_td_Object_Boxed__StringDesc, 8546)), 8553));
558   i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 8546)))), &_td_Object_Boxed__StringDesc, 8546)), 8553));
559   i1 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 8559)))), Object__StringDesc_CharAt)),Object__StringDesc_CharAt)((Object__String)i1, 0);
560   *(OOC_UINT8*)((OOC_INT64)str+(_check_index(0, 2, OOC_UINT8, 8511))) = (_cap(i1));
561   *(OOC_UINT8*)((OOC_INT64)str+(_check_index(1, 2, OOC_UINT8, 8581))) = 0u;
562   i1 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__String.baseTypes[0]);
563   i3 = (OOC_INT64)Object__NewLatin1((void*)(OOC_INT64)str, 2);
564   Object_Boxed__StringDesc_INIT((Object_Boxed__String)i1, (Object__String)i3);
565   i3 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(1);
566   i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 8609));
567   i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 8629));
568   i5 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 8609));
569   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 8617)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i5, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i3, (Object_Boxed__Object)i1);
570   *(OOC_INT64*)((_check_pointer(i2, 8597))+8) = i0;
571 l4:
572   return;
573   ;
574 }
575 
OOC_IR_ConstFold__ConstFoldDesc_VisitEntier(OOC_IR_ConstFold__ConstFold c,OOC_IR__Entier op)576 void OOC_IR_ConstFold__ConstFoldDesc_VisitEntier(OOC_IR_ConstFold__ConstFold c, OOC_IR__Entier op) {
577   register OOC_INT64 i0,i1,i2,i3,i4,i5;
578   register OOC_REAL64 d0;
579   Object_Boxed__Object value;
580   OOC_INT32 i;
581 
582   i0 = (OOC_INT64)op;
583   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 8924))+16);
584   i2 = (OOC_INT64)c;
585   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&value);
586   if (i1) goto l3;
587   *(OOC_INT64*)((_check_pointer(i2, 9144))+8) = (OOC_INT64)0;
588   goto l4;
589 l3:
590   i1 = (OOC_INT64)value;
591   d0 = *(OOC_REAL64*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 8976)))), &_td_Object_Boxed__LongRealDesc, 8976)), 8985));
592   i1 = _entier(d0);
593   i = i1;
594   i1 = (OOC_INT64)Object_BigInt__NewInt(i1);
595   i3 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(6);
596   i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 9013));
597   i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 9033));
598   i5 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 9013));
599   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 9021)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i5, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i3, (Object_Boxed__Object)i1);
600   *(OOC_INT64*)((_check_pointer(i2, 9001))+8) = i0;
601 l4:
602   return;
603   ;
604 }
605 
OOC_IR_ConstFold__ConstFoldDesc_VisitOdd(OOC_IR_ConstFold__ConstFold c,OOC_IR__Odd op)606 void OOC_IR_ConstFold__ConstFoldDesc_VisitOdd(OOC_IR_ConstFold__ConstFold c, OOC_IR__Odd op) {
607 
608   return;
609   ;
610 }
611 
OOC_IR_ConstFold__ConstFoldDesc_VisitShift(OOC_IR_ConstFold__ConstFold c,OOC_IR__Shift op)612 void OOC_IR_ConstFold__ConstFoldDesc_VisitShift(OOC_IR_ConstFold__ConstFold c, OOC_IR__Shift op) {
613 
614   return;
615   ;
616 }
617 
OOC_IR_ConstFold__ConstFoldDesc_VisitBinaryArith(OOC_IR_ConstFold__ConstFold c,OOC_IR__BinaryArith op)618 void OOC_IR_ConstFold__ConstFoldDesc_VisitBinaryArith(OOC_IR_ConstFold__ConstFold c, OOC_IR__BinaryArith op) {
619   register OOC_INT64 i0,i1,i2;
620   Object_Boxed__Object l;
621   Object_Boxed__Object r;
622   Object_Boxed__Object result;
623   auto Object_Boxed__Object OOC_IR_ConstFold__ConstFoldDesc_VisitBinaryArith_IntegerOp(void);
624   auto Object_Boxed__Object OOC_IR_ConstFold__ConstFoldDesc_VisitBinaryArith_RealOp(void);
625 
626     Object_Boxed__Object OOC_IR_ConstFold__ConstFoldDesc_VisitBinaryArith_IntegerOp(void) {
627       register OOC_INT64 i0,i1,i2,i3;
628       Object_BigInt__BigInt left;
629       Object_BigInt__BigInt right;
630 
631       i0 = (OOC_INT64)l;
632       i0 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9567)))), &_td_Object_BigInt__BigIntDesc, 9567);
633       left = (Object_BigInt__BigInt)i0;
634       i1 = (OOC_INT64)r;
635       i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 9598)))), &_td_Object_BigInt__BigIntDesc, 9598);
636       right = (Object_BigInt__BigInt)i1;
637       i2 = (OOC_INT64)op;
638       i3 = *(OOC_INT8*)((_check_pointer(i2, 9623))+16);
639       switch (i3) {
640       case 0:
641         i0 = (OOC_INT64)Object_BigInt__BigIntDesc_Add((Object_BigInt__BigInt)i0, (Object_BigInt__BigInt)i1);
642         return (Object_Boxed__Object)i0;
643         goto l16;
644       case 1:
645         i0 = (OOC_INT64)Object_BigInt__BigIntDesc_Sub((Object_BigInt__BigInt)i0, (Object_BigInt__BigInt)i1);
646         return (Object_Boxed__Object)i0;
647         goto l16;
648       case 4:
649         i0 = (OOC_INT64)Object_BigInt__BigIntDesc_Mul((Object_BigInt__BigInt)i0, (Object_BigInt__BigInt)i1);
650         return (Object_Boxed__Object)i0;
651         goto l16;
652       case 2:
653         i3 = Object_BigInt__BigIntDesc_Sign((Object_BigInt__BigInt)i1);
654         i3 = i3==0;
655         if (i3) goto l8;
656         i0 = (OOC_INT64)Object_BigInt__BigIntDesc_Div((Object_BigInt__BigInt)i0, (Object_BigInt__BigInt)i1);
657         return (Object_Boxed__Object)i0;
658         goto l16;
659 l8:
660         i0 = (OOC_INT64)c;
661         i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 9876));
662         i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 9876));
663         i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 9911));
664         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 9884)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 8, (OOC_Scanner_SymList__Symbol)i2);
665         goto l16;
666       case 5:
667         i3 = Object_BigInt__BigIntDesc_Sign((Object_BigInt__BigInt)i1);
668         i3 = i3==0;
669         if (i3) goto l13;
670         i0 = (OOC_INT64)Object_BigInt__BigIntDesc_Mod((Object_BigInt__BigInt)i0, (Object_BigInt__BigInt)i1);
671         return (Object_Boxed__Object)i0;
672         goto l16;
673 l13:
674         i0 = (OOC_INT64)c;
675         i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 10031));
676         i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 10031));
677         i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 10066));
678         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 10039)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 8, (OOC_Scanner_SymList__Symbol)i2);
679         goto l16;
680       default:
681         i0 = (OOC_INT64)c;
682         i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 10143));
683         i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 10143));
684         i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 10175));
685         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 10151)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 6, (OOC_Scanner_SymList__Symbol)i2);
686         goto l16;
687       }
688 l16:
689       return (Object_Boxed__Object)(OOC_INT64)0;
690       ;
691     }
692 
693 
694     Object_Boxed__Object OOC_IR_ConstFold__ConstFoldDesc_VisitBinaryArith_RealOp(void) {
695       register OOC_INT64 i0,i1,i2,i3;
696       register OOC_REAL64 d0;
697       Object_Boxed__LongReal left;
698       Object_Boxed__LongReal right;
699 
700       i0 = (OOC_INT64)l;
701       i0 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10331)))), &_td_Object_Boxed__LongRealDesc, 10331);
702       left = (Object_Boxed__LongReal)i0;
703       i1 = (OOC_INT64)r;
704       i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 10363)))), &_td_Object_Boxed__LongRealDesc, 10363);
705       right = (Object_Boxed__LongReal)i1;
706       i2 = (OOC_INT64)op;
707       i3 = *(OOC_INT8*)((_check_pointer(i2, 10390))+16);
708       switch (i3) {
709       case 0:
710         i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10433)))), Object_Boxed__LongRealDesc_Add)),Object_Boxed__LongRealDesc_Add)((Object_Boxed__LongReal)i0, (Object_Boxed__LongReal)i1);
711         return (Object_Boxed__Object)i0;
712         goto l11;
713       case 1:
714         i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10477)))), Object_Boxed__LongRealDesc_Sub)),Object_Boxed__LongRealDesc_Sub)((Object_Boxed__LongReal)i0, (Object_Boxed__LongReal)i1);
715         return (Object_Boxed__Object)i0;
716         goto l11;
717       case 4:
718         i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10521)))), Object_Boxed__LongRealDesc_Mul)),Object_Boxed__LongRealDesc_Mul)((Object_Boxed__LongReal)i0, (Object_Boxed__LongReal)i1);
719         return (Object_Boxed__Object)i0;
720         goto l11;
721       case 3:
722         d0 = *(OOC_REAL64*)(_check_pointer(i1, 10570));
723         i3 = d0==0.0000000000000000;
724         if (i3) goto l8;
725         i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10668)))), Object_Boxed__LongRealDesc_Div)),Object_Boxed__LongRealDesc_Div)((Object_Boxed__LongReal)i0, (Object_Boxed__LongReal)i1);
726         return (Object_Boxed__Object)i0;
727         goto l11;
728 l8:
729         i0 = (OOC_INT64)c;
730         i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 10596));
731         i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 10596));
732         i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 10631));
733         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 10604)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 8, (OOC_Scanner_SymList__Symbol)i2);
734         goto l11;
735       default:
736         i0 = (OOC_INT64)c;
737         i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 10708));
738         i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 10708));
739         i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 10740));
740         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 10716)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 6, (OOC_Scanner_SymList__Symbol)i2);
741         goto l11;
742       }
743 l11:
744       return (Object_Boxed__Object)(OOC_INT64)0;
745       ;
746     }
747 
748 
749   i0 = (OOC_INT64)op;
750   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10876))+24);
751   i2 = (OOC_INT64)c;
752   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&l);
753   if (i1) goto l3;
754   i1=0u;
755   goto l5;
756 l3:
757   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10902))+32);
758   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&r);
759 
760 l5:
761   if (!i1) goto l14;
762   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10944))+24);
763   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10949))+8);
764   i0 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i0);
765   if (i0) goto l9;
766   i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_VisitBinaryArith_RealOp();
767   result = (Object_Boxed__Object)i0;
768 
769   goto l10;
770 l9:
771   i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_VisitBinaryArith_IntegerOp();
772   result = (Object_Boxed__Object)i0;
773 
774 l10:
775   i1 = i0!=(OOC_INT64)0;
776   if (!i1) goto l14;
777   i1 = (OOC_INT64)c;
778   i2 = (OOC_INT64)op;
779   i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_ValueConst((OOC_IR_ConstFold__ConstFold)i1, (Object_Boxed__Object)i0, (OOC_IR__Operator)i2);
780   *(OOC_INT64*)((_check_pointer(i1, 11137))+8) = i0;
781   return;
782 l14:
783   i0 = (OOC_INT64)c;
784   *(OOC_INT64*)((_check_pointer(i0, 11206))+8) = (OOC_INT64)0;
785   return;
786   ;
787 }
788 
OOC_IR_ConstFold__ConstFoldDesc_VisitBooleanOp(OOC_IR_ConstFold__ConstFold c,OOC_IR__BooleanOp op)789 void OOC_IR_ConstFold__ConstFoldDesc_VisitBooleanOp(OOC_IR_ConstFold__ConstFold c, OOC_IR__BooleanOp op) {
790   register OOC_INT64 i0,i1,i2,i3,i4;
791   Object_Boxed__Object l;
792   Object_Boxed__Object r;
793   OOC_CHAR8 left;
794   OOC_CHAR8 right;
795   OOC_CHAR8 result;
796 
797   i0 = (OOC_INT64)op;
798   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 11402))+24);
799   i2 = (OOC_INT64)c;
800   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&l);
801   if (i1) goto l3;
802   i1=0u;
803   goto l5;
804 l3:
805   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 11428))+32);
806   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&r);
807 
808 l5:
809   if (i1) goto l7;
810   *(OOC_INT64*)((_check_pointer(i2, 11702))+8) = (OOC_INT64)0;
811   goto l21;
812 l7:
813   i1 = (OOC_INT64)l;
814   i1 = *(OOC_UINT8*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 11466)))), &_td_Object_Boxed__BooleanDesc, 11466)), 11474));
815   left = i1;
816   i3 = (OOC_INT64)r;
817   i3 = *(OOC_UINT8*)(_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 11505)))), &_td_Object_Boxed__BooleanDesc, 11505)), 11513));
818   right = i3;
819   i4 = *(OOC_INT8*)((_check_pointer(i0, 11534))+16);
820   switch (i4) {
821   case 20:
822     if (i1) goto l12;
823     i1=0u;
824     goto l13;
825 l12:
826     i1=i3;
827 l13:
828     result = i1;
829     goto l20;
830   case 21:
831     if (i1) goto l17;
832     i1=i3;
833     goto l18;
834 l17:
835     i1=1u;
836 l18:
837     result = i1;
838     goto l20;
839   default:
840     _failed_case(i4, 11527);
841     goto l20;
842   }
843 l20:
844   i1 = result;
845   i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_BooleanConst((OOC_IR_ConstFold__ConstFold)i2, i1, (OOC_IR__Operator)i0);
846   *(OOC_INT64*)((_check_pointer(i2, 11647))+8) = i0;
847 l21:
848   return;
849   ;
850 }
851 
OOC_IR_ConstFold__ConstFoldDesc_VisitConcat(OOC_IR_ConstFold__ConstFold c,OOC_IR__Concat op)852 void OOC_IR_ConstFold__ConstFoldDesc_VisitConcat(OOC_IR_ConstFold__ConstFold c, OOC_IR__Concat op) {
853   register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
854   Object__String s;
855   OOC_INT32 i;
856 
857   i0 = (OOC_INT64)Object__emptyString;
858   s = (Object__String)i0;
859   i1 = (OOC_INT64)op;
860   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 11903))+16);
861   i = 0;
862   i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 11911)), 0);
863   i3 = (OOC_INT64)c;
864   i4 = 0<i2;
865   if (!i4) goto l13;
866   i4=i0;i0=0;
867 l4_loop:
868   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 11931))+16);
869   i5 = _check_pointer(i5, 11939);
870   i6 = OOC_ARRAY_LENGTH(i5, 0);
871   i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i0, i6, OOC_UINT32, 11939))*8);
872   i5 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 11943)))), &_td_OOC_IR__ConstDesc);
873   if (i5) goto l7;
874   *(OOC_INT64*)((_check_pointer(i3, 12047))+8) = (OOC_INT64)0;
875   return;
876 
877   goto l8;
878 l7:
879   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 11978))+16);
880   i5 = _check_pointer(i5, 11986);
881   i6 = OOC_ARRAY_LENGTH(i5, 0);
882   i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i0, i6, OOC_UINT32, 11986))*8);
883   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i5, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 11993)))), &_td_OOC_IR__ConstDesc, 11993)), 11999))+16);
884   i5 = (OOC_INT64)*(OOC_INT64*)(_check_pointer((_type_guard(i5, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i5, 12012)))), &_td_Object_Boxed__StringDesc, 12012)), 12019));
885   i4 = (OOC_INT64)Object__Concat2((void*)i4,(void*)i5);
886   s = (Object__String)i4;
887 
888 l8:
889   i0 = i0+1;
890   i = i0;
891   i5 = i0<i2;
892   if (i5) goto l4_loop;
893 l12:
894   i0=i4;
895 l13:
896   i2 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__String.baseTypes[0]);
897   Object_Boxed__StringDesc_INIT((Object_Boxed__String)i2, (Object__String)i0);
898   i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 12116));
899   i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 12136));
900   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 12144))+8);
901   i5 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 12116));
902   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12124)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i5, (OOC_Scanner_SymList__Symbol)i4, (OOC_SymbolTable__Type)i1, (Object_Boxed__Object)i2);
903   *(OOC_INT64*)((_check_pointer(i3, 12104))+8) = i0;
904   return;
905   ;
906 }
907 
OOC_IR_ConstFold__ConstFoldDesc_VisitCompare(OOC_IR_ConstFold__ConstFold c,OOC_IR__Compare op)908 void OOC_IR_ConstFold__ConstFoldDesc_VisitCompare(OOC_IR_ConstFold__ConstFold c, OOC_IR__Compare op) {
909   register OOC_INT64 i0,i1,i2;
910   Object_Boxed__Object l;
911   Object_Boxed__Object r;
912   Object_Boxed__Boolean result;
913   auto Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_StringOp(void);
914   auto Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_IntegerOp(void);
915   auto Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_RealOp(void);
916   auto Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_CharOp(void);
917   auto Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_BooleanOp(void);
918   auto Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_SetOp(void);
919 
920     Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_StringOp(void) {
921       register OOC_INT64 i0,i1,i2,i3;
922       Object_Boxed__String left;
923       Object_Boxed__String right;
924       OOC_CHAR8 result;
925 
926       i0 = (OOC_INT64)l;
927       i0 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12464)))), &_td_Object_Boxed__StringDesc, 12464);
928       left = (Object_Boxed__String)i0;
929       i1 = (OOC_INT64)r;
930       i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 12494)))), &_td_Object_Boxed__StringDesc, 12494);
931       right = (Object_Boxed__String)i1;
932       i2 = (OOC_INT64)op;
933       i3 = *(OOC_INT8*)((_check_pointer(i2, 12514))+16);
934       switch (i3) {
935       case 10:
936         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12563)))), Object_Boxed__StringDesc_Cmp)),Object_Boxed__StringDesc_Cmp)((Object_Boxed__String)i0, (Object__Object)i1);
937         result = (i0==0);
938         goto l9;
939       case 11:
940         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12617)))), Object_Boxed__StringDesc_Cmp)),Object_Boxed__StringDesc_Cmp)((Object_Boxed__String)i0, (Object__Object)i1);
941         result = (i0!=0);
942         goto l9;
943       case 12:
944         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12671)))), Object_Boxed__StringDesc_Cmp)),Object_Boxed__StringDesc_Cmp)((Object_Boxed__String)i0, (Object__Object)i1);
945         result = (i0<0);
946         goto l9;
947       case 13:
948         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12725)))), Object_Boxed__StringDesc_Cmp)),Object_Boxed__StringDesc_Cmp)((Object_Boxed__String)i0, (Object__Object)i1);
949         result = (i0<=0);
950         goto l9;
951       case 14:
952         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12780)))), Object_Boxed__StringDesc_Cmp)),Object_Boxed__StringDesc_Cmp)((Object_Boxed__String)i0, (Object__Object)i1);
953         result = (i0>0);
954         goto l9;
955       case 15:
956         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12834)))), Object_Boxed__StringDesc_Cmp)),Object_Boxed__StringDesc_Cmp)((Object_Boxed__String)i0, (Object__Object)i1);
957         result = (i0>=0);
958         goto l9;
959       default:
960         i0 = (OOC_INT64)c;
961         i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 12868));
962         i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 12900));
963         i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 12868));
964         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 12876)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 6, (OOC_Scanner_SymList__Symbol)i2);
965         return (Object_Boxed__Boolean)(OOC_INT64)0;
966         goto l9;
967       }
968 l9:
969       i0 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Boolean.baseTypes[0]);
970       i1 = result;
971       Object_Boxed__BooleanDesc_INIT((Object_Boxed__Boolean)i0, i1);
972       return (Object_Boxed__Boolean)i0;
973       ;
974     }
975 
976 
977     Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_IntegerOp(void) {
978       register OOC_INT64 i0,i1,i2,i3;
979       Object_BigInt__BigInt left;
980       Object_BigInt__BigInt right;
981       OOC_CHAR8 result;
982 
983       i0 = (OOC_INT64)l;
984       i0 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13112)))), &_td_Object_BigInt__BigIntDesc, 13112);
985       left = (Object_BigInt__BigInt)i0;
986       i1 = (OOC_INT64)r;
987       i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 13144)))), &_td_Object_BigInt__BigIntDesc, 13144);
988       right = (Object_BigInt__BigInt)i1;
989       i2 = (OOC_INT64)op;
990       i3 = *(OOC_INT8*)((_check_pointer(i2, 13169))+16);
991       switch (i3) {
992       case 10:
993         i0 = Object_BigInt__BigIntDesc_Cmp((Object_BigInt__BigInt)i0, (Object__Object)i1);
994         result = (i0==0);
995         goto l9;
996       case 11:
997         i0 = Object_BigInt__BigIntDesc_Cmp((Object_BigInt__BigInt)i0, (Object__Object)i1);
998         result = (i0!=0);
999         goto l9;
1000       case 12:
1001         i0 = Object_BigInt__BigIntDesc_Cmp((Object_BigInt__BigInt)i0, (Object__Object)i1);
1002         result = (i0<0);
1003         goto l9;
1004       case 13:
1005         i0 = Object_BigInt__BigIntDesc_Cmp((Object_BigInt__BigInt)i0, (Object__Object)i1);
1006         result = (i0<=0);
1007         goto l9;
1008       case 14:
1009         i0 = Object_BigInt__BigIntDesc_Cmp((Object_BigInt__BigInt)i0, (Object__Object)i1);
1010         result = (i0>0);
1011         goto l9;
1012       case 15:
1013         i0 = Object_BigInt__BigIntDesc_Cmp((Object_BigInt__BigInt)i0, (Object__Object)i1);
1014         result = (i0>=0);
1015         goto l9;
1016       default:
1017         i0 = (OOC_INT64)c;
1018         i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 13523));
1019         i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 13555));
1020         i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 13523));
1021         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 13531)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 6, (OOC_Scanner_SymList__Symbol)i2);
1022         return (Object_Boxed__Boolean)(OOC_INT64)0;
1023         goto l9;
1024       }
1025 l9:
1026       i0 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Boolean.baseTypes[0]);
1027       i1 = result;
1028       Object_Boxed__BooleanDesc_INIT((Object_Boxed__Boolean)i0, i1);
1029       return (Object_Boxed__Boolean)i0;
1030       ;
1031     }
1032 
1033 
1034     Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_RealOp(void) {
1035       register OOC_INT64 i0,i1,i2,i3;
1036       Object_Boxed__LongReal left;
1037       Object_Boxed__LongReal right;
1038       OOC_CHAR8 result;
1039 
1040       i0 = (OOC_INT64)l;
1041       i0 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13765)))), &_td_Object_Boxed__LongRealDesc, 13765);
1042       left = (Object_Boxed__LongReal)i0;
1043       i1 = (OOC_INT64)r;
1044       i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 13798)))), &_td_Object_Boxed__LongRealDesc, 13798);
1045       right = (Object_Boxed__LongReal)i1;
1046       i2 = (OOC_INT64)op;
1047       i3 = *(OOC_INT8*)((_check_pointer(i2, 13825))+16);
1048       switch (i3) {
1049       case 10:
1050         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13874)))), Object_Boxed__LongRealDesc_Cmp)),Object_Boxed__LongRealDesc_Cmp)((Object_Boxed__LongReal)i0, (Object__Object)i1);
1051         result = (i0==0);
1052         goto l9;
1053       case 11:
1054         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13928)))), Object_Boxed__LongRealDesc_Cmp)),Object_Boxed__LongRealDesc_Cmp)((Object_Boxed__LongReal)i0, (Object__Object)i1);
1055         result = (i0!=0);
1056         goto l9;
1057       case 12:
1058         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13982)))), Object_Boxed__LongRealDesc_Cmp)),Object_Boxed__LongRealDesc_Cmp)((Object_Boxed__LongReal)i0, (Object__Object)i1);
1059         result = (i0<0);
1060         goto l9;
1061       case 13:
1062         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14036)))), Object_Boxed__LongRealDesc_Cmp)),Object_Boxed__LongRealDesc_Cmp)((Object_Boxed__LongReal)i0, (Object__Object)i1);
1063         result = (i0<=0);
1064         goto l9;
1065       case 14:
1066         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14091)))), Object_Boxed__LongRealDesc_Cmp)),Object_Boxed__LongRealDesc_Cmp)((Object_Boxed__LongReal)i0, (Object__Object)i1);
1067         result = (i0>0);
1068         goto l9;
1069       case 15:
1070         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14145)))), Object_Boxed__LongRealDesc_Cmp)),Object_Boxed__LongRealDesc_Cmp)((Object_Boxed__LongReal)i0, (Object__Object)i1);
1071         result = (i0>=0);
1072         goto l9;
1073       default:
1074         i0 = (OOC_INT64)c;
1075         i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 14179));
1076         i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 14211));
1077         i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 14179));
1078         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14187)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 6, (OOC_Scanner_SymList__Symbol)i2);
1079         return (Object_Boxed__Boolean)(OOC_INT64)0;
1080         goto l9;
1081       }
1082 l9:
1083       i0 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Boolean.baseTypes[0]);
1084       i1 = result;
1085       Object_Boxed__BooleanDesc_INIT((Object_Boxed__Boolean)i0, i1);
1086       return (Object_Boxed__Boolean)i0;
1087       ;
1088     }
1089 
1090 
1091     Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_CharOp(void) {
1092       register OOC_INT64 i0,i1,i2,i3;
1093       OOC_CHAR32 left;
1094       OOC_CHAR32 right;
1095       OOC_CHAR8 result;
1096 
1097       i0 = (OOC_INT64)l;
1098       i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14412)))), &_td_Object_Boxed__StringDesc, 14412)), 14419));
1099       i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14412)))), &_td_Object_Boxed__StringDesc, 14412)), 14419));
1100       i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14425)))), Object__StringDesc_CharAt)),Object__StringDesc_CharAt)((Object__String)i0, 0);
1101       left = i0;
1102       i1 = (OOC_INT64)r;
1103       i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14458)))), &_td_Object_Boxed__StringDesc, 14458)), 14465));
1104       i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14458)))), &_td_Object_Boxed__StringDesc, 14458)), 14465));
1105       i1 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 14471)))), Object__StringDesc_CharAt)),Object__StringDesc_CharAt)((Object__String)i1, 0);
1106       right = i1;
1107       i2 = (OOC_INT64)op;
1108       i3 = *(OOC_INT8*)((_check_pointer(i2, 14499))+16);
1109       switch (i3) {
1110       case 10:
1111         result = (i0==i1);
1112         goto l9;
1113       case 11:
1114         result = (i0!=i1);
1115         goto l9;
1116       case 12:
1117         result = ((OOC_UINT32)i0<(OOC_UINT32)i1);
1118         goto l9;
1119       case 13:
1120         result = ((OOC_UINT32)i0<=(OOC_UINT32)i1);
1121         goto l9;
1122       case 14:
1123         result = ((OOC_UINT32)i0>(OOC_UINT32)i1);
1124         goto l9;
1125       case 15:
1126         result = ((OOC_UINT32)i0>=(OOC_UINT32)i1);
1127         goto l9;
1128       default:
1129         i0 = (OOC_INT64)c;
1130         i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 14811));
1131         i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 14843));
1132         i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 14811));
1133         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14819)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 6, (OOC_Scanner_SymList__Symbol)i2);
1134         return (Object_Boxed__Boolean)(OOC_INT64)0;
1135         goto l9;
1136       }
1137 l9:
1138       i0 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Boolean.baseTypes[0]);
1139       i1 = result;
1140       Object_Boxed__BooleanDesc_INIT((Object_Boxed__Boolean)i0, i1);
1141       return (Object_Boxed__Boolean)i0;
1142       ;
1143     }
1144 
1145 
1146     Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_BooleanOp(void) {
1147       register OOC_INT64 i0,i1,i2,i3;
1148       OOC_CHAR8 left;
1149       OOC_CHAR8 right;
1150       OOC_CHAR8 result;
1151 
1152       i0 = (OOC_INT64)l;
1153       i0 = *(OOC_UINT8*)(_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15046)))), &_td_Object_Boxed__BooleanDesc, 15046)), 15054));
1154       left = i0;
1155       i1 = (OOC_INT64)r;
1156       i1 = *(OOC_UINT8*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15083)))), &_td_Object_Boxed__BooleanDesc, 15083)), 15091));
1157       right = i1;
1158       i2 = (OOC_INT64)op;
1159       i3 = *(OOC_INT8*)((_check_pointer(i2, 15111))+16);
1160       switch (i3) {
1161       case 10:
1162         result = (i0==i1);
1163         goto l5;
1164       case 11:
1165         result = (i0!=i1);
1166         goto l5;
1167       default:
1168         i0 = (OOC_INT64)c;
1169         i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 15233));
1170         i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 15265));
1171         i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 15233));
1172         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15241)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 6, (OOC_Scanner_SymList__Symbol)i2);
1173         return (Object_Boxed__Boolean)(OOC_INT64)0;
1174         goto l5;
1175       }
1176 l5:
1177       i0 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Boolean.baseTypes[0]);
1178       i1 = result;
1179       Object_Boxed__BooleanDesc_INIT((Object_Boxed__Boolean)i0, i1);
1180       return (Object_Boxed__Boolean)i0;
1181       ;
1182     }
1183 
1184 
1185     Object_Boxed__Boolean OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_SetOp(void) {
1186       register OOC_INT64 i0,i1,i2,i3;
1187       Object_Boxed__Set left;
1188       Object_Boxed__Set right;
1189       OOC_CHAR8 result;
1190 
1191       i0 = (OOC_INT64)l;
1192       i0 = _type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15479)))), &_td_Object_Boxed__SetDesc, 15479);
1193       left = (Object_Boxed__Set)i0;
1194       i1 = (OOC_INT64)r;
1195       i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15508)))), &_td_Object_Boxed__SetDesc, 15508);
1196       right = (Object_Boxed__Set)i1;
1197       i2 = (OOC_INT64)op;
1198       i3 = *(OOC_INT8*)((_check_pointer(i2, 15534))+16);
1199       switch (i3) {
1200       case 10:
1201         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15585)))), Object_Boxed__SetDesc_Equals)),Object_Boxed__SetDesc_Equals)((Object_Boxed__Set)i0, (Object__Object)i1);
1202         result = i0;
1203         goto l5;
1204       case 11:
1205         i0 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15641)))), Object_Boxed__SetDesc_Equals)),Object_Boxed__SetDesc_Equals)((Object_Boxed__Set)i0, (Object__Object)i1);
1206         result = (!i0);
1207         goto l5;
1208       default:
1209         i0 = (OOC_INT64)c;
1210         i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 15677));
1211         i2 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 15709));
1212         i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 15677));
1213         OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15685)))), OOC_IR__BuilderDesc_ErrSym)),OOC_IR__BuilderDesc_ErrSym)((OOC_IR__Builder)i0, 6, (OOC_Scanner_SymList__Symbol)i2);
1214         return (Object_Boxed__Boolean)(OOC_INT64)0;
1215         goto l5;
1216       }
1217 l5:
1218       i0 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__Boolean.baseTypes[0]);
1219       i1 = result;
1220       Object_Boxed__BooleanDesc_INIT((Object_Boxed__Boolean)i0, i1);
1221       return (Object_Boxed__Boolean)i0;
1222       ;
1223     }
1224 
1225 
1226   i0 = (OOC_INT64)op;
1227   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 15825))+24);
1228   i2 = (OOC_INT64)c;
1229   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&l);
1230   if (i1) goto l3;
1231   i1=0u;
1232   goto l5;
1233 l3:
1234   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 15851))+32);
1235   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&r);
1236 
1237 l5:
1238   if (i1) goto l7;
1239   *(OOC_INT64*)((_check_pointer(i2, 16556))+8) = (OOC_INT64)0;
1240   goto l21;
1241 l7:
1242   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 15880))+24);
1243   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 15885))+8);
1244   i0 = *(OOC_INT16*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15895)))), &_td_OOC_SymbolTable__PredefTypeDesc, 15895)), 15906))+72);
1245   switch (i0) {
1246   case 4:
1247   case 5:
1248   case 6:
1249     i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_IntegerOp();
1250     result = (Object_Boxed__Boolean)i0;
1251     goto l16;
1252   case 8:
1253   case 9:
1254     i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_RealOp();
1255     result = (Object_Boxed__Boolean)i0;
1256     goto l16;
1257   case 1:
1258     i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_CharOp();
1259     result = (Object_Boxed__Boolean)i0;
1260     goto l16;
1261   case 13:
1262   case 14:
1263   case 15:
1264     i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_StringOp();
1265     result = (Object_Boxed__Boolean)i0;
1266     goto l16;
1267   case 0:
1268     i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_BooleanOp();
1269     result = (Object_Boxed__Boolean)i0;
1270     goto l16;
1271   case 10:
1272     i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_VisitCompare_SetOp();
1273     result = (Object_Boxed__Boolean)i0;
1274     goto l16;
1275   default:
1276     _failed_case(i0, 15873);
1277     goto l16;
1278   }
1279 l16:
1280   i0 = (OOC_INT64)result;
1281   i1 = i0==(OOC_INT64)0;
1282   if (i1) goto l19;
1283   i1 = (OOC_INT64)c;
1284   i0 = *(OOC_UINT8*)(_check_pointer(i0, 16516));
1285   i2 = (OOC_INT64)op;
1286   i0 = (OOC_INT64)OOC_IR_ConstFold__ConstFoldDesc_BooleanConst((OOC_IR_ConstFold__ConstFold)i1, i0, (OOC_IR__Operator)i2);
1287   *(OOC_INT64*)((_check_pointer(i1, 16484))+8) = i0;
1288   goto l21;
1289 l19:
1290   i0 = (OOC_INT64)c;
1291   *(OOC_INT64*)((_check_pointer(i0, 16449))+8) = (OOC_INT64)0;
1292 l21:
1293   return;
1294   ;
1295 }
1296 
OOC_IR_ConstFold__ConstFoldDesc_VisitTypeCast(OOC_IR_ConstFold__ConstFold c,OOC_IR__TypeCast op)1297 void OOC_IR_ConstFold__ConstFoldDesc_VisitTypeCast(OOC_IR_ConstFold__ConstFold c, OOC_IR__TypeCast op) {
1298 
1299   return;
1300   ;
1301 }
1302 
OOC_IR_ConstFold__ConstFoldDesc_VisitTypeConv(OOC_IR_ConstFold__ConstFold c,OOC_IR__TypeConv op)1303 void OOC_IR_ConstFold__ConstFoldDesc_VisitTypeConv(OOC_IR_ConstFold__ConstFold c, OOC_IR__TypeConv op) {
1304   register OOC_INT64 i0,i1,i2,i3,i4,i5;
1305   Object_Boxed__Object value;
1306   Object_Boxed__String str;
1307 
1308   i0 = (OOC_INT64)op;
1309   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 17230))+16);
1310   i2 = (OOC_INT64)c;
1311   i1 = OOC_IR_ConstFold__ConstFoldDesc_ValidEval((OOC_IR_ConstFold__ConstFold)i2, (OOC_IR__Expression)i1, (void*)(OOC_INT64)&value);
1312   if (i1) goto l3;
1313   *(OOC_INT64*)((_check_pointer(i2, 19253))+8) = (OOC_INT64)0;
1314   goto l54;
1315 l3:
1316   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 17278))+8);
1317   i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i1);
1318   if (i1) goto l6;
1319   i1=0u;
1320   goto l8;
1321 l6:
1322   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 17314))+16);
1323   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 17320))+8);
1324   i1 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i1);
1325 
1326 l8:
1327   if (i1) goto l52;
1328   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 17582))+8);
1329   i1 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i1);
1330   if (i1) goto l12;
1331   i1=0u;
1332   goto l14;
1333 l12:
1334   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 17624))+16);
1335   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 17630))+8);
1336   i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i1);
1337 
1338 l14:
1339   if (i1) goto l44;
1340   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18293))+16);
1341   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 18298))+8);
1342   i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i1);
1343   if (i1) goto l18;
1344   i1=0u;
1345   goto l20;
1346 l18:
1347   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18323))+8);
1348   i1 = OOC_SymbolTable_TypeRules__IsRealType((OOC_SymbolTable__Type)i1);
1349 
1350 l20:
1351   if (i1) goto l42;
1352   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18553))+8);
1353   i1 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i1);
1354   if (i1) goto l24;
1355   i1=0u;
1356   goto l26;
1357 l24:
1358   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18578))+16);
1359   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 18583))+8);
1360   i1 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i1);
1361 
1362 l26:
1363   if (i1) goto l40;
1364   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18776))+8);
1365   i1 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i1);
1366   if (i1) goto l30;
1367   i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 19184));
1368   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 19212))+8);
1369   i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 19184));
1370   i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 19204));
1371   i5 = (OOC_INT64)value;
1372   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19192)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i3, (Object_Boxed__Object)i5);
1373   *(OOC_INT64*)((_check_pointer(i2, 19172))+8) = i0;
1374   goto l54;
1375 l30:
1376   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18922))+16);
1377   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 18928))+8);
1378   i1 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i1);
1379   if (i1) goto l37;
1380   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18958))+16);
1381   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18965)))), &_td_OOC_IR__ConstDesc);
1382   if (i1) goto l35;
1383   i1=0u;
1384   goto l38;
1385 l35:
1386   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18997))+16);
1387   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 19003))+8);
1388   i1 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i1);
1389 
1390   goto l38;
1391 l37:
1392   i1=1u;
1393 l38:
1394   _assert(i1, 127, 18894);
1395   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 19030))+16);
1396   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19040)))), &_td_OOC_IR__ConstDesc, 19040)), 19046))+16);
1397   i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19060)))), &_td_Object_Boxed__StringDesc, 19060);
1398   str = (Object_Boxed__String)i1;
1399   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 19114))+16);
1400   i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 19091));
1401   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 19129))+8);
1402   i5 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 19091));
1403   i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 19120));
1404   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i4, 19100)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i5, (OOC_Scanner_SymList__Symbol)i3, (OOC_SymbolTable__Type)i0, (Object_Boxed__Object)i1);
1405   *(OOC_INT64*)((_check_pointer(i2, 19078))+8) = i0;
1406   goto l54;
1407 l40:
1408   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18704))+16);
1409   i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 18681));
1410   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18719))+8);
1411   i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 18681));
1412   i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 18710));
1413   i5 = (OOC_INT64)value;
1414   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 18690)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i1, (OOC_SymbolTable__Type)i0, (Object_Boxed__Object)i5);
1415   *(OOC_INT64*)((_check_pointer(i2, 18668))+8) = i0;
1416   goto l54;
1417 l42:
1418   i1 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__LongReal.baseTypes[0]);
1419   i3 = (OOC_INT64)value;
1420   i3 = Object_BigInt__BigIntDesc_ToLongInt((Object_BigInt__BigInt)(_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 18431)))), &_td_Object_BigInt__BigIntDesc, 18431)));
1421   Object_Boxed__LongRealDesc_INIT((Object_Boxed__LongReal)i1, ((OOC_REAL64)i3));
1422   value = (Object_Boxed__Object)i1;
1423   i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 18474));
1424   i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18502))+8);
1425   i5 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 18474));
1426   i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 18494));
1427   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 18482)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i5, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i4, (Object_Boxed__Object)i1);
1428   *(OOC_INT64*)((_check_pointer(i2, 18462))+8) = i0;
1429   goto l54;
1430 l44:
1431   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 17756))+8);
1432   i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 17767)))), &_td_OOC_SymbolTable__PredefTypeDesc, 17767)), 17778))+72);
1433   switch (i1) {
1434   case 1:
1435     i1 = (OOC_INT64)value;
1436     i3 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__String.baseTypes[0]);
1437     i1 = Object_BigInt__BigIntDesc_ToLongInt((Object_BigInt__BigInt)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 17885)))), &_td_Object_BigInt__BigIntDesc, 17885)));
1438     i1 = (OOC_INT64)Object__NewLatin1Char(i1);
1439     Object_Boxed__StringDesc_INIT((Object_Boxed__String)i3, (Object__String)i1);
1440     value = (Object_Boxed__Object)i3;
1441     goto l50;
1442   case 2:
1443     i1 = (OOC_INT64)value;
1444     i3 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__String.baseTypes[0]);
1445     i1 = Object_BigInt__BigIntDesc_ToLongInt((Object_BigInt__BigInt)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18016)))), &_td_Object_BigInt__BigIntDesc, 18016)));
1446     i1 = (OOC_INT64)Object__NewUTF16Char(i1);
1447     Object_Boxed__StringDesc_INIT((Object_Boxed__String)i3, (Object__String)i1);
1448     value = (Object_Boxed__Object)i3;
1449     goto l50;
1450   case 3:
1451     i1 = (OOC_INT64)value;
1452     i3 = (OOC_INT64)RT0__NewObject(_td_Object_Boxed__String.baseTypes[0]);
1453     i1 = Object_BigInt__BigIntDesc_ToLongInt((Object_BigInt__BigInt)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18146)))), &_td_Object_BigInt__BigIntDesc, 18146)));
1454     i1 = (OOC_INT64)Object__NewUCS4Char(i1);
1455     Object_Boxed__StringDesc_INIT((Object_Boxed__String)i3, (Object__String)i1);
1456     value = (Object_Boxed__Object)i3;
1457     goto l50;
1458   default:
1459     _failed_case(i1, 17749);
1460     goto l50;
1461   }
1462 l50:
1463   i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 18205));
1464   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 18237))+8);
1465   i4 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 18205));
1466   i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 18228));
1467   i5 = (OOC_INT64)value;
1468   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18214)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i4, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i3, (Object_Boxed__Object)i5);
1469   *(OOC_INT64*)((_check_pointer(i2, 18193))+8) = i0;
1470   goto l54;
1471 l52:
1472   i1 = (OOC_INT64)value;
1473   i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 17448)))), &_td_Object_Boxed__StringDesc, 17448)), 17455));
1474   i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 17448)))), &_td_Object_Boxed__StringDesc, 17448)), 17455));
1475   i1 = OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 17461)))), Object__StringDesc_CharAt)),Object__StringDesc_CharAt)((Object__String)i1, 0);
1476   i1 = (OOC_INT64)Object_BigInt__NewInt(i1);
1477   value = (Object_Boxed__Object)i1;
1478   i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 17496));
1479   i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 17528))+8);
1480   i5 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i2, 17496));
1481   i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 17519));
1482   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 17505)))), OOC_IR__BuilderDesc_NewConst)),OOC_IR__BuilderDesc_NewConst)((OOC_IR__Builder)i5, (OOC_Scanner_SymList__Symbol)i0, (OOC_SymbolTable__Type)i4, (Object_Boxed__Object)i1);
1483   *(OOC_INT64*)((_check_pointer(i2, 17484))+8) = i0;
1484 l54:
1485   return;
1486   ;
1487 }
1488 
OOC_IR_ConstFold__ConstFoldDesc_VisitTypeGuard(OOC_IR_ConstFold__ConstFold c,OOC_IR__TypeGuard op)1489 void OOC_IR_ConstFold__ConstFoldDesc_VisitTypeGuard(OOC_IR_ConstFold__ConstFold c, OOC_IR__TypeGuard op) {
1490 
1491   return;
1492   ;
1493 }
1494 
OOC_IR_ConstFold__ConstFoldDesc_VisitTypeTag(OOC_IR_ConstFold__ConstFold c,OOC_IR__TypeTag op)1495 void OOC_IR_ConstFold__ConstFoldDesc_VisitTypeTag(OOC_IR_ConstFold__ConstFold c, OOC_IR__TypeTag op) {
1496 
1497   return;
1498   ;
1499 }
1500 
OOC_IR_ConstFold__ConstFoldDesc_VisitTypeTest(OOC_IR_ConstFold__ConstFold c,OOC_IR__TypeTest op)1501 void OOC_IR_ConstFold__ConstFoldDesc_VisitTypeTest(OOC_IR_ConstFold__ConstFold c, OOC_IR__TypeTest op) {
1502 
1503   return;
1504   ;
1505 }
1506 
OOC_IR_ConstFold__ConstFoldDesc_VisitCall(OOC_IR_ConstFold__ConstFold c,OOC_IR__Call call)1507 void OOC_IR_ConstFold__ConstFoldDesc_VisitCall(OOC_IR_ConstFold__ConstFold c, OOC_IR__Call call) {
1508 
1509   return;
1510   ;
1511 }
1512 
OOC_IR_ConstFold__ConstFoldDesc_VisitAssert(OOC_IR_ConstFold__ConstFold c,OOC_IR__Assert assert)1513 void OOC_IR_ConstFold__ConstFoldDesc_VisitAssert(OOC_IR_ConstFold__ConstFold c, OOC_IR__Assert assert) {
1514 
1515   return;
1516   ;
1517 }
1518 
OOC_IR_ConstFold__ConstFoldDesc_VisitReturn(OOC_IR_ConstFold__ConstFold c,OOC_IR__Return _return)1519 void OOC_IR_ConstFold__ConstFoldDesc_VisitReturn(OOC_IR_ConstFold__ConstFold c, OOC_IR__Return _return) {
1520 
1521   return;
1522   ;
1523 }
1524 
OOC_IR_ConstFold__ConstFoldDesc_VisitAssignment(OOC_IR_ConstFold__ConstFold c,OOC_IR__Assignment assignment)1525 void OOC_IR_ConstFold__ConstFoldDesc_VisitAssignment(OOC_IR_ConstFold__ConstFold c, OOC_IR__Assignment assignment) {
1526 
1527   return;
1528   ;
1529 }
1530 
OOC_IR_ConstFold__ConstFoldDesc_VisitAssignOp(OOC_IR_ConstFold__ConstFold c,OOC_IR__AssignOp assignOp)1531 void OOC_IR_ConstFold__ConstFoldDesc_VisitAssignOp(OOC_IR_ConstFold__ConstFold c, OOC_IR__AssignOp assignOp) {
1532 
1533   return;
1534   ;
1535 }
1536 
OOC_IR_ConstFold__ConstFoldDesc_VisitExit(OOC_IR_ConstFold__ConstFold c,OOC_IR__Exit exit)1537 void OOC_IR_ConstFold__ConstFoldDesc_VisitExit(OOC_IR_ConstFold__ConstFold c, OOC_IR__Exit exit) {
1538 
1539   return;
1540   ;
1541 }
1542 
OOC_IR_ConstFold__ConstFoldDesc_VisitForStatm(OOC_IR_ConstFold__ConstFold c,OOC_IR__ForStatm forStatm)1543 void OOC_IR_ConstFold__ConstFoldDesc_VisitForStatm(OOC_IR_ConstFold__ConstFold c, OOC_IR__ForStatm forStatm) {
1544 
1545   return;
1546   ;
1547 }
1548 
OOC_IR_ConstFold__ConstFoldDesc_VisitIterateArrayStatm(OOC_IR_ConstFold__ConstFold c,OOC_IR__IterateArrayStatm iterStatm)1549 void OOC_IR_ConstFold__ConstFoldDesc_VisitIterateArrayStatm(OOC_IR_ConstFold__ConstFold c, OOC_IR__IterateArrayStatm iterStatm) {
1550 
1551   return;
1552   ;
1553 }
1554 
OOC_IR_ConstFold__ConstFoldDesc_VisitIterateObjectStatm(OOC_IR_ConstFold__ConstFold c,OOC_IR__IterateObjectStatm iterStatm)1555 void OOC_IR_ConstFold__ConstFoldDesc_VisitIterateObjectStatm(OOC_IR_ConstFold__ConstFold c, OOC_IR__IterateObjectStatm iterStatm) {
1556 
1557   return;
1558   ;
1559 }
1560 
OOC_IR_ConstFold__ConstFoldDesc_VisitIfStatm(OOC_IR_ConstFold__ConstFold c,OOC_IR__IfStatm ifStatm)1561 void OOC_IR_ConstFold__ConstFoldDesc_VisitIfStatm(OOC_IR_ConstFold__ConstFold c, OOC_IR__IfStatm ifStatm) {
1562 
1563   return;
1564   ;
1565 }
1566 
OOC_IR_ConstFold__ConstFoldDesc_VisitCase(OOC_IR_ConstFold__ConstFold c,OOC_IR__Case _case)1567 void OOC_IR_ConstFold__ConstFoldDesc_VisitCase(OOC_IR_ConstFold__ConstFold c, OOC_IR__Case _case) {
1568 
1569   return;
1570   ;
1571 }
1572 
OOC_IR_ConstFold__ConstFoldDesc_VisitCaseStatm(OOC_IR_ConstFold__ConstFold c,OOC_IR__CaseStatm caseStatm)1573 void OOC_IR_ConstFold__ConstFoldDesc_VisitCaseStatm(OOC_IR_ConstFold__ConstFold c, OOC_IR__CaseStatm caseStatm) {
1574 
1575   return;
1576   ;
1577 }
1578 
OOC_IR_ConstFold__ConstFoldDesc_VisitLoopStatm(OOC_IR_ConstFold__ConstFold c,OOC_IR__LoopStatm loopStatm)1579 void OOC_IR_ConstFold__ConstFoldDesc_VisitLoopStatm(OOC_IR_ConstFold__ConstFold c, OOC_IR__LoopStatm loopStatm) {
1580 
1581   return;
1582   ;
1583 }
1584 
OOC_IR_ConstFold__ConstFoldDesc_VisitMoveBlock(OOC_IR_ConstFold__ConstFold c,OOC_IR__MoveBlock move)1585 void OOC_IR_ConstFold__ConstFoldDesc_VisitMoveBlock(OOC_IR_ConstFold__ConstFold c, OOC_IR__MoveBlock move) {
1586 
1587   return;
1588   ;
1589 }
1590 
OOC_IR_ConstFold__ConstFoldDesc_VisitRaise(OOC_IR_ConstFold__ConstFold c,OOC_IR__Raise raise)1591 void OOC_IR_ConstFold__ConstFoldDesc_VisitRaise(OOC_IR_ConstFold__ConstFold c, OOC_IR__Raise raise) {
1592 
1593   return;
1594   ;
1595 }
1596 
OOC_IR_ConstFold__ConstFoldDesc_VisitRepeatStatm(OOC_IR_ConstFold__ConstFold c,OOC_IR__RepeatStatm repeatStatm)1597 void OOC_IR_ConstFold__ConstFoldDesc_VisitRepeatStatm(OOC_IR_ConstFold__ConstFold c, OOC_IR__RepeatStatm repeatStatm) {
1598 
1599   return;
1600   ;
1601 }
1602 
OOC_IR_ConstFold__ConstFoldDesc_VisitCatchClause(OOC_IR_ConstFold__ConstFold c,OOC_IR__CatchClause _catch)1603 void OOC_IR_ConstFold__ConstFoldDesc_VisitCatchClause(OOC_IR_ConstFold__ConstFold c, OOC_IR__CatchClause _catch) {
1604 
1605   return;
1606   ;
1607 }
1608 
OOC_IR_ConstFold__ConstFoldDesc_VisitTryStatm(OOC_IR_ConstFold__ConstFold c,OOC_IR__TryStatm tryStatm)1609 void OOC_IR_ConstFold__ConstFoldDesc_VisitTryStatm(OOC_IR_ConstFold__ConstFold c, OOC_IR__TryStatm tryStatm) {
1610 
1611   return;
1612   ;
1613 }
1614 
OOC_IR_ConstFold__ConstFoldDesc_VisitWhileStatm(OOC_IR_ConstFold__ConstFold c,OOC_IR__WhileStatm whileStatm)1615 void OOC_IR_ConstFold__ConstFoldDesc_VisitWhileStatm(OOC_IR_ConstFold__ConstFold c, OOC_IR__WhileStatm whileStatm) {
1616 
1617   return;
1618   ;
1619 }
1620 
OOC_IR_ConstFold__ConstFoldDesc_VisitWithStatm(OOC_IR_ConstFold__ConstFold c,OOC_IR__WithStatm withStatm)1621 void OOC_IR_ConstFold__ConstFoldDesc_VisitWithStatm(OOC_IR_ConstFold__ConstFold c, OOC_IR__WithStatm withStatm) {
1622 
1623   return;
1624   ;
1625 }
1626 
OOC_IR_ConstFold__ConstFoldDesc_VisitCopy(OOC_IR_ConstFold__ConstFold c,OOC_IR__Copy cp)1627 void OOC_IR_ConstFold__ConstFoldDesc_VisitCopy(OOC_IR_ConstFold__ConstFold c, OOC_IR__Copy cp) {
1628 
1629   return;
1630   ;
1631 }
1632 
OOC_IR_ConstFold__ConstFoldDesc_VisitCopyParameter(OOC_IR_ConstFold__ConstFold c,OOC_IR__CopyParameter cp)1633 void OOC_IR_ConstFold__ConstFoldDesc_VisitCopyParameter(OOC_IR_ConstFold__ConstFold c, OOC_IR__CopyParameter cp) {
1634 
1635   return;
1636   ;
1637 }
1638 
OOC_IR_ConstFold__ConstFoldDesc_VisitCopyString(OOC_IR_ConstFold__ConstFold c,OOC_IR__CopyString cp)1639 void OOC_IR_ConstFold__ConstFoldDesc_VisitCopyString(OOC_IR_ConstFold__ConstFold c, OOC_IR__CopyString cp) {
1640 
1641   return;
1642   ;
1643 }
1644 
OOC_IR_ConstFold__ConstFoldDesc_VisitProcedure(OOC_IR_ConstFold__ConstFold c,OOC_IR__Procedure procedure)1645 void OOC_IR_ConstFold__ConstFoldDesc_VisitProcedure(OOC_IR_ConstFold__ConstFold c, OOC_IR__Procedure procedure) {
1646 
1647   return;
1648   ;
1649 }
1650 
OOC_IR_ConstFold__ConstFoldDesc_VisitModule(OOC_IR_ConstFold__ConstFold c,OOC_IR__Module module)1651 void OOC_IR_ConstFold__ConstFoldDesc_VisitModule(OOC_IR_ConstFold__ConstFold c, OOC_IR__Module module) {
1652 
1653   return;
1654   ;
1655 }
1656 
OOC_OOC_IR_ConstFold_init(void)1657 void OOC_OOC_IR_ConstFold_init(void) {
1658 
1659   return;
1660   ;
1661 }
1662 
OOC_OOC_IR_ConstFold_destroy(void)1663 void OOC_OOC_IR_ConstFold_destroy(void) {
1664 }
1665 
1666 /* --- */
1667