1 #include <OOC/SymbolTable/TypeRules.d>
2 #include <__oo2c.h>
3 #include <setjmp.h>
4 
OOC_SymbolTable_TypeRules__IsNamedType(OOC_SymbolTable__Type type)5 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsNamedType(OOC_SymbolTable__Type type) {
6   register OOC_INT64 i0;
7 
8   i0 = (OOC_INT64)type;
9   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 1796))+48);
10   return (i0!=(OOC_INT64)0);
11   ;
12 }
13 
OOC_SymbolTable_TypeRules__IsPredefType(OOC_SymbolTable__Type type,OOC_INT16 id)14 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsPredefType(OOC_SymbolTable__Type type, OOC_INT16 id) {
15   register OOC_INT64 i0,i1;
16 
17   i0 = (OOC_INT64)type;
18   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2024)))), &_td_OOC_SymbolTable__PredefTypeDesc);
19   if (i1) goto l3;
20   i0=0u;
21   goto l4;
22 l3:
23   i0 = *(OOC_INT16*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2055)))), &_td_OOC_SymbolTable__PredefTypeDesc, 2055)), 2066))+72);
24   i1 = id;
25   i0 = i0==i1;
26 
27 l4:
28   return i0;
29   ;
30 }
31 
OOC_SymbolTable_TypeRules__IsScalarType(OOC_SymbolTable__Type type)32 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsScalarType(OOC_SymbolTable__Type type) {
33   register OOC_INT64 i0,i1;
34 
35   i0 = (OOC_INT64)type;
36   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2376)))), &_td_OOC_SymbolTable__TypeVarDesc);
37   if (i1) goto l11;
38   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2470)))), &_td_OOC_SymbolTable__PredefTypeDesc);
39   if (i1) goto l5;
40   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2508)))), &_td_OOC_SymbolTable__PointerDesc);
41 
42   goto l7;
43 l5:
44   i1=1u;
45 l7:
46   if (i1) goto l9;
47   i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2543)))), &_td_OOC_SymbolTable__FormalParsDesc);
48 
49   goto l10;
50 l9:
51   i0=1u;
52 l10:
53   return i0;
54   goto l12;
55 l11:
56   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 2423))+72);
57   i0 = OOC_SymbolTable_TypeRules__IsScalarType((OOC_SymbolTable__Type)i0);
58   return i0;
59 l12:
60   _failed_function(2109); return 0;
61   ;
62 }
63 
OOC_SymbolTable_TypeRules__IsCharType(OOC_SymbolTable__Type type)64 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsCharType(OOC_SymbolTable__Type type) {
65   register OOC_INT64 i0,i1;
66 
67   i0 = (OOC_INT64)type;
68   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 2731)))), &_td_OOC_SymbolTable__PredefTypeDesc);
69   if (i1) goto l3;
70   return 0u;
71   goto l4;
72 l3:
73   i0 = *(OOC_INT16*)((_check_pointer(i0, 2769))+72);
74   return (_in(i0,14u));
75 l4:
76   _failed_function(2603); return 0;
77   ;
78 }
79 
OOC_SymbolTable_TypeRules__IsStringConst(OOC_SymbolTable__Type type)80 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsStringConst(OOC_SymbolTable__Type type) {
81   register OOC_INT64 i0,i1;
82 
83   i0 = (OOC_INT64)type;
84   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3024)))), &_td_OOC_SymbolTable__PredefTypeDesc);
85   if (i1) goto l3;
86   return 0u;
87   goto l4;
88 l3:
89   i0 = *(OOC_INT16*)((_check_pointer(i0, 3062))+72);
90   return (_in(i0,57344u));
91 l4:
92   _failed_function(2892); return 0;
93   ;
94 }
95 
OOC_SymbolTable_TypeRules__ExtendsLibType(OOC_SymbolTable__Type type,const OOC_CHAR8 module__ref[],OOC_LEN module_0d,const OOC_CHAR8 recordName__ref[],OOC_LEN recordName_0d)96 static OOC_CHAR8 OOC_SymbolTable_TypeRules__ExtendsLibType(OOC_SymbolTable__Type type, const OOC_CHAR8 module__ref[], OOC_LEN module_0d, const OOC_CHAR8 recordName__ref[], OOC_LEN recordName_0d) {
97   register OOC_INT64 i0,i1;
98   OOC_ALLOCATE_VPAR(module,OOC_CHAR8 ,module_0d)
99   OOC_ALLOCATE_VPAR(recordName,OOC_CHAR8 ,recordName_0d)
100   OOC_SymbolTable__Type r;
101 
102   OOC_INITIALIZE_VPAR(module__ref,module,OOC_CHAR8 ,module_0d)
103   OOC_INITIALIZE_VPAR(recordName__ref,recordName,OOC_CHAR8 ,recordName_0d)
104   i0 = (OOC_INT64)type;
105   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3326)))), &_td_OOC_SymbolTable__PointerDesc);
106   if (i1) goto l3;
107   i1=0u;
108   goto l5;
109 l3:
110   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3361)))), &_td_OOC_SymbolTable__PointerDesc, 3361)), 3369))+72);
111   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3379)))), &_td_OOC_SymbolTable__RecordDesc);
112 
113 l5:
114   if (i1) goto l7;
115   return 0u;
116   goto l49;
117 l7:
118   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3419)))), &_td_OOC_SymbolTable__PointerDesc, 3419)), 3427))+72);
119   r = (OOC_SymbolTable__Type)i0;
120   i1 = i0!=(OOC_INT64)0;
121   if (i1) goto l10;
122   i1=0u;
123   goto l24;
124 l10:
125   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3478))+48);
126   i1 = i1!=(OOC_INT64)0;
127   if (i1) goto l13;
128   i1=0u;
129   goto l15;
130 l13:
131   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3516))+48);
132   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3527))+40);
133   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3532))+16);
134   i1 = (
135   _cmp8((const void*)(_check_pointer(i1, 3536)),(const void*)(OOC_INT64)recordName))==0;
136 
137 l15:
138   if (i1) goto l17;
139   i1=0u;
140   goto l19;
141 l17:
142   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3571))+48);
143   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3582))+8);
144   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3590)))), &_td_OOC_SymbolTable__ModuleDesc);
145 
146 l19:
147   if (i1) goto l21;
148   i1=0u;
149   goto l22;
150 l21:
151   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3624))+48);
152   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3635))+8);
153   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3647)))), &_td_OOC_SymbolTable__ModuleDesc, 3647)), 3654))+40);
154   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3659))+16);
155   i1 = (
156   _cmp8((const void*)(_check_pointer(i1, 3663)),(const void*)(OOC_INT64)module))==0;
157 
158 l22:
159   i1 = !i1;
160 
161 l24:
162   if (!i1) goto l48;
163 l27_loop:
164   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3698)))), &_td_OOC_SymbolTable__RecordDesc, 3698)), 3705))+72);
165   r = (OOC_SymbolTable__Type)i0;
166   i1 = i0!=(OOC_INT64)0;
167   if (i1) goto l30;
168   i1=0u;
169   goto l44;
170 l30:
171   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3478))+48);
172   i1 = i1!=(OOC_INT64)0;
173   if (i1) goto l33;
174   i1=0u;
175   goto l35;
176 l33:
177   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3516))+48);
178   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3527))+40);
179   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3532))+16);
180   i1 = (
181   _cmp8((const void*)(_check_pointer(i1, 3536)),(const void*)(OOC_INT64)recordName))==0;
182 
183 l35:
184   if (i1) goto l37;
185   i1=0u;
186   goto l39;
187 l37:
188   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3571))+48);
189   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3582))+8);
190   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3590)))), &_td_OOC_SymbolTable__ModuleDesc);
191 
192 l39:
193   if (i1) goto l41;
194   i1=0u;
195   goto l42;
196 l41:
197   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 3624))+48);
198   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3635))+8);
199   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3647)))), &_td_OOC_SymbolTable__ModuleDesc, 3647)), 3654))+40);
200   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 3659))+16);
201   i1 = (
202   _cmp8((const void*)(_check_pointer(i1, 3663)),(const void*)(OOC_INT64)module))==0;
203 
204 l42:
205   i1 = !i1;
206 
207 l44:
208   if (i1) goto l27_loop;
209 l48:
210   return (i0!=(OOC_INT64)0);
211 l49:
212   _failed_function(3206); return 0;
213   ;
214 }
215 
OOC_SymbolTable_TypeRules__IsPointerType(OOC_SymbolTable__Type type,const OOC_CHAR8 module__ref[],OOC_LEN module_0d,const OOC_CHAR8 recordName__ref[],OOC_LEN recordName_0d)216 static OOC_CHAR8 OOC_SymbolTable_TypeRules__IsPointerType(OOC_SymbolTable__Type type, const OOC_CHAR8 module__ref[], OOC_LEN module_0d, const OOC_CHAR8 recordName__ref[], OOC_LEN recordName_0d) {
217   register OOC_INT64 i0,i1;
218   OOC_ALLOCATE_VPAR(module,OOC_CHAR8 ,module_0d)
219   OOC_ALLOCATE_VPAR(recordName,OOC_CHAR8 ,recordName_0d)
220   OOC_SymbolTable__Type r;
221 
222   OOC_INITIALIZE_VPAR(module__ref,module,OOC_CHAR8 ,module_0d)
223   OOC_INITIALIZE_VPAR(recordName__ref,recordName,OOC_CHAR8 ,recordName_0d)
224   i0 = (OOC_INT64)type;
225   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3941)))), &_td_OOC_SymbolTable__PointerDesc);
226   if (i1) goto l3;
227   i1=0u;
228   goto l5;
229 l3:
230   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 3976)))), &_td_OOC_SymbolTable__PointerDesc, 3976)), 3984))+72);
231   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 3994)))), &_td_OOC_SymbolTable__RecordDesc);
232 
233 l5:
234   if (i1) goto l7;
235   return 0u;
236   goto l24;
237 l7:
238   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 4034)))), &_td_OOC_SymbolTable__PointerDesc, 4034)), 4042))+72);
239   r = (OOC_SymbolTable__Type)i0;
240   i1 = i0!=(OOC_INT64)0;
241   if (i1) goto l10;
242   i1=0u;
243   goto l12;
244 l10:
245   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4093))+48);
246   i1 = i1!=(OOC_INT64)0;
247 
248 l12:
249   if (i1) goto l14;
250   i1=0u;
251   goto l16;
252 l14:
253   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4130))+48);
254   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 4141))+40);
255   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 4146))+16);
256   i1 = (
257   _cmp8((const void*)(_check_pointer(i1, 4150)),(const void*)(OOC_INT64)recordName))==0;
258 
259 l16:
260   if (i1) goto l18;
261   i1=0u;
262   goto l20;
263 l18:
264   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4184))+48);
265   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 4195))+8);
266   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 4203)))), &_td_OOC_SymbolTable__ModuleDesc);
267 
268 l20:
269   if (i1) goto l22;
270   i0=0u;
271   goto l23;
272 l22:
273   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4236))+48);
274   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4247))+8);
275   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 4259)))), &_td_OOC_SymbolTable__ModuleDesc, 4259)), 4266))+40);
276   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 4271))+16);
277   i0 = (
278   _cmp8((const void*)(_check_pointer(i0, 4275)),(const void*)(OOC_INT64)module))==0;
279 
280 l23:
281   return i0;
282 l24:
283   _failed_function(3822); return 0;
284   ;
285 }
286 
OOC_SymbolTable_TypeRules__IsObject(OOC_SymbolTable__Type type)287 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsObject(OOC_SymbolTable__Type type) {
288   register OOC_INT64 i0;
289 
290   i0 = (OOC_INT64)type;
291   i0 = OOC_SymbolTable_TypeRules__ExtendsLibType((OOC_SymbolTable__Type)i0, (OOC_CHAR8*)"Object", 7, (OOC_CHAR8*)"ObjectDesc", 11);
292   return i0;
293   ;
294 }
295 
OOC_SymbolTable_TypeRules__IsObjectType(OOC_SymbolTable__Type type)296 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsObjectType(OOC_SymbolTable__Type type) {
297   register OOC_INT64 i0;
298 
299   i0 = (OOC_INT64)type;
300   i0 = OOC_SymbolTable_TypeRules__IsPointerType((OOC_SymbolTable__Type)i0, (OOC_CHAR8*)"Object", 7, (OOC_CHAR8*)"ObjectDesc", 11);
301   return i0;
302   ;
303 }
304 
OOC_SymbolTable_TypeRules__IsException(OOC_SymbolTable__Type type)305 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsException(OOC_SymbolTable__Type type) {
306   register OOC_INT64 i0;
307 
308   i0 = (OOC_INT64)type;
309   i0 = OOC_SymbolTable_TypeRules__ExtendsLibType((OOC_SymbolTable__Type)i0, (OOC_CHAR8*)"Exception", 10, (OOC_CHAR8*)"ExceptionDesc", 14);
310   return i0;
311   ;
312 }
313 
OOC_SymbolTable_TypeRules__IsSTRING(OOC_SymbolTable__Type type)314 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsSTRING(OOC_SymbolTable__Type type) {
315   register OOC_INT64 i0;
316 
317   i0 = (OOC_INT64)type;
318   i0 = OOC_SymbolTable_TypeRules__ExtendsLibType((OOC_SymbolTable__Type)i0, (OOC_CHAR8*)"Object", 7, (OOC_CHAR8*)"StringDesc", 11);
319   return i0;
320   ;
321 }
322 
OOC_SymbolTable_TypeRules__IsTypeVar(OOC_SymbolTable__Type type)323 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsTypeVar(OOC_SymbolTable__Type type) {
324   register OOC_INT64 i0,i1,i2,i3,i4;
325   OOC_INT32 i;
326 
327   i0 = (OOC_INT64)type;
328   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5552)))), &_td_OOC_SymbolTable__TypeVarDesc);
329   if (i1) goto l33;
330   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5598)))), &_td_OOC_SymbolTable__TypeClosureDesc);
331   if (i1) goto l20;
332   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 5792)))), &_td_OOC_SymbolTable__QualTypeDesc);
333   if (i1) goto l7;
334   return 0u;
335   goto l34;
336 l7:
337   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5838))+88);
338   i = 0;
339   i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 5848)), 0);
340   i2 = 0<i1;
341   if (!i2) goto l18;
342   i2=0;
343 l10_loop:
344   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5881))+88);
345   i3 = _check_pointer(i3, 5891);
346   i4 = OOC_ARRAY_LENGTH(i3, 0);
347   i3 = (OOC_INT64)*(OOC_INT64*)(i3+((_check_index(i2, i4, OOC_UINT32, 5891))*16));
348   i3 = OOC_SymbolTable_TypeRules__IsTypeVar((OOC_SymbolTable__Type)i3);
349   if (!i3) goto l13;
350   return 1u;
351 l13:
352   i2 = i2+1;
353   i = i2;
354   i3 = i2<i1;
355   if (i3) goto l10_loop;
356 l18:
357   return 0u;
358   goto l34;
359 l20:
360   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5647))+88);
361   i = 0;
362   i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 5657)), 0);
363   i2 = 0<i1;
364   if (!i2) goto l31;
365   i2=0;
366 l23_loop:
367   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 5690))+88);
368   i3 = _check_pointer(i3, 5700);
369   i4 = OOC_ARRAY_LENGTH(i3, 0);
370   i3 = (OOC_INT64)*(OOC_INT64*)(i3+((_check_index(i2, i4, OOC_UINT32, 5700))*16));
371   i3 = OOC_SymbolTable_TypeRules__IsTypeVar((OOC_SymbolTable__Type)i3);
372   if (!i3) goto l26;
373   return 1u;
374 l26:
375   i2 = i2+1;
376   i = i2;
377   i3 = i2<i1;
378   if (i3) goto l23_loop;
379 l31:
380   return 0u;
381   goto l34;
382 l33:
383   return 1u;
384 l34:
385   _failed_function(5346); return 0;
386   ;
387 }
388 
OOC_SymbolTable_TypeRules__BaseCharType(OOC_SymbolTable__Type type)389 OOC_SymbolTable__PredefType OOC_SymbolTable_TypeRules__BaseCharType(OOC_SymbolTable__Type type) {
390   register OOC_INT64 i0,i1;
391 
392   i0 = (OOC_INT64)type;
393   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 6500)))), &_td_OOC_SymbolTable__PredefTypeDesc);
394   if (i1) goto l11;
395   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 6874)))), &_td_OOC_SymbolTable__ArrayDesc);
396   if (i1) goto l5;
397   return (OOC_SymbolTable__PredefType)(OOC_INT64)0;
398   goto l18;
399 l5:
400   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6903))+80);
401   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 6917)))), &_td_OOC_SymbolTable__PredefTypeDesc);
402   if (i1) goto l8;
403   return (OOC_SymbolTable__PredefType)(OOC_INT64)0;
404   goto l18;
405 l8:
406   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 6974))+80);
407   i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__BaseCharType((OOC_SymbolTable__Type)i0);
408   return (OOC_SymbolTable__PredefType)i0;
409   goto l18;
410 l11:
411   i0 = *(OOC_INT16*)((_check_pointer(i0, 6535))+72);
412   switch (i0) {
413   case 1:
414   case 13:
415     i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(1);
416     return (OOC_SymbolTable__PredefType)i0;
417     goto l18;
418   case 2:
419   case 14:
420     i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(2);
421     return (OOC_SymbolTable__PredefType)i0;
422     goto l18;
423   case 3:
424   case 15:
425     i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(3);
426     return (OOC_SymbolTable__PredefType)i0;
427     goto l18;
428   default:
429     return (OOC_SymbolTable__PredefType)(OOC_INT64)0;
430     goto l18;
431   }
432 l18:
433   _failed_function(6041); return 0;
434   ;
435 }
436 
OOC_SymbolTable_TypeRules__StringBase(OOC_SymbolTable__Type type)437 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__StringBase(OOC_SymbolTable__Type type) {
438   register OOC_INT64 i0,i1;
439 
440   i0 = (OOC_INT64)type;
441   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 7208)))), &_td_OOC_SymbolTable__PredefTypeDesc);
442   if (i1) goto l3;
443   _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 7198)))), 7198);
444   goto l10;
445 l3:
446   i0 = *(OOC_INT16*)((_check_pointer(i0, 7241))+72);
447   switch (i0) {
448   case 13:
449     i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(1);
450     return (OOC_SymbolTable__Type)i0;
451     goto l10;
452   case 14:
453     i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(2);
454     return (OOC_SymbolTable__Type)i0;
455     goto l10;
456   case 15:
457     i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(3);
458     return (OOC_SymbolTable__Type)i0;
459     goto l10;
460   default:
461     _failed_case(i0, 7232);
462     goto l10;
463   }
464 l10:
465   _failed_function(7099); return 0;
466   ;
467 }
468 
OOC_SymbolTable_TypeRules__MatchingStringConst(OOC_SymbolTable__Type type)469 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__MatchingStringConst(OOC_SymbolTable__Type type) {
470   register OOC_INT64 i0;
471   OOC_INT16 id;
472 
473   i0 = (OOC_INT64)type;
474   i0 = *(OOC_INT16*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 7603)))), &_td_OOC_SymbolTable__PredefTypeDesc, 7603)), 7614))+72);
475   switch (i0) {
476   case 1:
477     id = 13;
478     goto l6;
479   case 2:
480     id = 14;
481     goto l6;
482   case 3:
483     id = 15;
484     goto l6;
485   default:
486     _failed_case(i0, 7589);
487     goto l6;
488   }
489 l6:
490   i0 = id;
491   i0 = (OOC_INT64)OOC_SymbolTable_Predef__GetType(i0);
492   return (OOC_SymbolTable__Type)i0;
493   ;
494 }
495 
OOC_SymbolTable_TypeRules__IsIntegerType(OOC_SymbolTable__Type type)496 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsIntegerType(OOC_SymbolTable__Type type) {
497   register OOC_INT64 i0,i1;
498 
499   i0 = (OOC_INT64)type;
500   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 7966)))), &_td_OOC_SymbolTable__PredefTypeDesc);
501   if (i1) goto l3;
502   return 0u;
503   goto l4;
504 l3:
505   i0 = *(OOC_INT16*)((_check_pointer(i0, 8004))+72);
506   return (_in(i0,262384u));
507 l4:
508   _failed_function(7836); return 0;
509   ;
510 }
511 
OOC_SymbolTable_TypeRules__IsRealType(OOC_SymbolTable__Type type)512 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsRealType(OOC_SymbolTable__Type type) {
513   register OOC_INT64 i0,i1;
514 
515   i0 = (OOC_INT64)type;
516   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 8299)))), &_td_OOC_SymbolTable__PredefTypeDesc);
517   if (i1) goto l3;
518   return 0u;
519   goto l4;
520 l3:
521   i0 = *(OOC_INT16*)((_check_pointer(i0, 8337))+72);
522   return (_in(i0,768u));
523 l4:
524   _failed_function(8166); return 0;
525   ;
526 }
527 
OOC_SymbolTable_TypeRules__IsNumericType(OOC_SymbolTable__Type type)528 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsNumericType(OOC_SymbolTable__Type type) {
529   register OOC_INT64 i0,i1;
530 
531   i0 = (OOC_INT64)type;
532   i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i0);
533   if (i1) goto l3;
534   i0 = OOC_SymbolTable_TypeRules__IsRealType((OOC_SymbolTable__Type)i0);
535 
536   goto l4;
537 l3:
538   i0=1u;
539 l4:
540   return i0;
541   ;
542 }
543 
OOC_SymbolTable_TypeRules__IsSetType(OOC_SymbolTable__Type type)544 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsSetType(OOC_SymbolTable__Type type) {
545   register OOC_INT64 i0,i1;
546 
547   i0 = (OOC_INT64)type;
548   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 8763)))), &_td_OOC_SymbolTable__PredefTypeDesc);
549   if (i1) goto l3;
550   return 0u;
551   goto l4;
552 l3:
553   i0 = *(OOC_INT16*)((_check_pointer(i0, 8801))+72);
554   return (_in(i0,1024u));
555 l4:
556   _failed_function(8642); return 0;
557   ;
558 }
559 
OOC_SymbolTable_TypeRules__IncludesType(OOC_SymbolTable__Type large,OOC_SymbolTable__Type small)560 OOC_CHAR8 OOC_SymbolTable_TypeRules__IncludesType(OOC_SymbolTable__Type large, OOC_SymbolTable__Type small) {
561   register OOC_INT64 i0,i1,i2,i3,i4;
562   OOC_INT16 largeId;
563 
564   i0 = (OOC_INT64)large;
565   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9287)))), &_td_OOC_SymbolTable__PredefTypeDesc);
566   if (i1) goto l3;
567   i1=0u;
568   goto l5;
569 l3:
570   i1 = (OOC_INT64)small;
571   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 9315)))), &_td_OOC_SymbolTable__PredefTypeDesc);
572 
573 l5:
574   if (!i1) goto l30;
575   i1 = *(OOC_INT16*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9366)))), &_td_OOC_SymbolTable__PredefTypeDesc, 9366)), 9377))+72);
576   largeId = i1;
577   i2 = (OOC_INT64)small;
578   i3 = *(OOC_INT16*)((_check_pointer((_type_guard(i2, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 9409)))), &_td_OOC_SymbolTable__PredefTypeDesc, 9409)), 9420))+72);
579   i4 = OOC_SymbolTable_TypeRules__IsNumericType((OOC_SymbolTable__Type)i0);
580   if (i4) goto l24;
581   i4 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i0);
582   if (i4) goto l18;
583   i0 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i0);
584   if (!i0) goto l30;
585   i0 = OOC_SymbolTable_TypeRules__IsStringConst((OOC_SymbolTable__Type)i2);
586   if (i0) goto l15;
587   i0=0u;
588   goto l16;
589 l15:
590   i0 = i3<=i1;
591 
592 l16:
593   return i0;
594   goto l30;
595 l18:
596   i0 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i2);
597   if (i0) goto l21;
598   i0=0u;
599   goto l22;
600 l21:
601   i0 = i3<=i1;
602 
603 l22:
604   return i0;
605   goto l30;
606 l24:
607   i0 = OOC_SymbolTable_TypeRules__IsNumericType((OOC_SymbolTable__Type)i2);
608   if (i0) goto l27;
609   i0=0u;
610   goto l28;
611 l27:
612   i0 = i3<=i1;
613 
614 l28:
615   return i0;
616 l30:
617   return 0u;
618   ;
619 }
620 
OOC_SymbolTable_TypeRules__IsOpenArrayType(OOC_SymbolTable__Type type)621 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsOpenArrayType(OOC_SymbolTable__Type type) {
622   register OOC_INT64 i0,i1;
623 
624   i0 = (OOC_INT64)type;
625   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9963)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
626   type = (OOC_SymbolTable__Type)i0;
627   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 9992)))), &_td_OOC_SymbolTable__ArrayDesc);
628   if (i1) goto l3;
629   i0=0u;
630   goto l4;
631 l3:
632   i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10017)))), &_td_OOC_SymbolTable__ArrayDesc, 10017)), 10023))+72);
633 
634 l4:
635   return i0;
636   ;
637 }
638 
OOC_SymbolTable_TypeRules__IsArrayOfChar(OOC_SymbolTable__Type type,OOC_CHAR8 includeFixed)639 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsArrayOfChar(OOC_SymbolTable__Type type, OOC_CHAR8 includeFixed) {
640   register OOC_INT64 i0,i1;
641 
642   i0 = (OOC_INT64)type;
643   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10383)))), &_td_OOC_SymbolTable__ArrayDesc);
644   if (i1) goto l3;
645   i1=0u;
646   goto l9;
647 l3:
648   i1 = includeFixed;
649   if (i1) goto l6;
650   i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10433)))), &_td_OOC_SymbolTable__ArrayDesc, 10433)), 10439))+72);
651 
652   goto l9;
653 l6:
654   i1=1u;
655 l9:
656   if (i1) goto l11;
657   i0=0u;
658   goto l12;
659 l11:
660   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10485)))), &_td_OOC_SymbolTable__ArrayDesc, 10485)), 10491))+80);
661   i0 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i0);
662 
663 l12:
664   return i0;
665   ;
666 }
667 
OOC_SymbolTable_TypeRules__IsValidRecordBaseType(OOC_SymbolTable__Type type)668 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidRecordBaseType(OOC_SymbolTable__Type type) {
669   register OOC_INT64 i0,i1;
670 
671   i0 = (OOC_INT64)type;
672   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10723)))), &_td_OOC_SymbolTable__QualTypeDesc);
673   if (i1) goto l7;
674   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10820)))), &_td_OOC_SymbolTable__RecordDesc);
675   if (i1) goto l5;
676   i0=0u;
677   goto l6;
678 l5:
679   i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 10846)))), &_td_OOC_SymbolTable__RecordDesc, 10846)), 10853))+106);
680 
681 l6:
682   return i0;
683   goto l8;
684 l7:
685   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 10780))+72);
686   i0 = OOC_SymbolTable_TypeRules__IsValidRecordBaseType((OOC_SymbolTable__Type)i0);
687   return i0;
688 l8:
689   _failed_function(10540); return 0;
690   ;
691 }
692 
OOC_SymbolTable_TypeRules__IsValidParameterType(OOC_SymbolTable__Type type)693 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidParameterType(OOC_SymbolTable__Type type) {
694   register OOC_INT64 i0,i1;
695 
696   i0 = (OOC_INT64)type;
697   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11107)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
698   type = (OOC_SymbolTable__Type)i0;
699   i1 = OOC_SymbolTable_TypeRules__IsNamedType((OOC_SymbolTable__Type)i0);
700   if (i1) goto l3;
701   i1 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i0);
702 
703   goto l5;
704 l3:
705   i1=1u;
706 l5:
707   if (i1) goto l7;
708   i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11206)))), &_td_OOC_SymbolTable__FormalParsDesc);
709 
710   goto l8;
711 l7:
712   i0=1u;
713 l8:
714   return i0;
715   ;
716 }
717 
OOC_SymbolTable_TypeRules__IsValidReceiverType(OOC_SymbolTable__Type type)718 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidReceiverType(OOC_SymbolTable__Type type) {
719   register OOC_INT64 i0,i1;
720 
721   i0 = (OOC_INT64)type;
722   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11446)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
723   type = (OOC_SymbolTable__Type)i0;
724   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11483)))), &_td_OOC_SymbolTable__RecordDesc);
725   if (i1) goto l7;
726   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11516)))), &_td_OOC_SymbolTable__PointerDesc);
727   if (i1) goto l5;
728   i0=0u;
729   goto l8;
730 l5:
731   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11553)))), &_td_OOC_SymbolTable__PointerDesc, 11553)), 11561))+72);
732   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11553)))), &_td_OOC_SymbolTable__PointerDesc, 11553)), 11561))+72);
733   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 11570)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
734   i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11581)))), &_td_OOC_SymbolTable__RecordDesc);
735 
736   goto l8;
737 l7:
738   i0=1u;
739 l8:
740   return i0;
741   ;
742 }
743 
OOC_SymbolTable_TypeRules__IsValidResultType(OOC_SymbolTable__Type type)744 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidResultType(OOC_SymbolTable__Type type) {
745   register OOC_INT64 i0,i1;
746 
747   i0 = (OOC_INT64)type;
748   i1 = i0==(OOC_INT64)0;
749   if (i1) goto l3;
750   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 11934)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
751   i0 = OOC_SymbolTable_TypeRules__IsScalarType((OOC_SymbolTable__Type)i0);
752 
753   goto l4;
754 l3:
755   i0=1u;
756 l4:
757   return i0;
758   ;
759 }
760 
OOC_SymbolTable_TypeRules__IsValidPointerBaseType(OOC_SymbolTable__Type type)761 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidPointerBaseType(OOC_SymbolTable__Type type) {
762   register OOC_INT64 i0,i1;
763 
764   i0 = (OOC_INT64)type;
765   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12172)))), &_td_OOC_SymbolTable__QualTypeDesc);
766   if (i1) goto l7;
767   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12270)))), &_td_OOC_SymbolTable__ArrayDesc);
768   if (i1) goto l5;
769   i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12293)))), &_td_OOC_SymbolTable__RecordDesc);
770 
771   goto l6;
772 l5:
773   i0=1u;
774 l6:
775   return i0;
776   goto l8;
777 l7:
778   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 12230))+72);
779   i0 = OOC_SymbolTable_TypeRules__IsValidPointerBaseType((OOC_SymbolTable__Type)i0);
780   return i0;
781 l8:
782   _failed_function(11983); return 0;
783   ;
784 }
785 
OOC_SymbolTable_TypeRules__IsValidArrayElementType(OOC_SymbolTable__Type type,OOC_CHAR8 isOpenArray)786 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidArrayElementType(OOC_SymbolTable__Type type, OOC_CHAR8 isOpenArray) {
787   register OOC_INT64 i0,i1;
788 
789   i0 = isOpenArray;
790   if (i0) goto l7;
791   i0 = (OOC_INT64)type;
792   i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12696)))), &_td_OOC_SymbolTable__ArrayDesc));
793   if (i1) goto l5;
794   i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 12723)))), &_td_OOC_SymbolTable__ArrayDesc, 12723)), 12729))+72);
795   i0 = !i0;
796 
797   goto l6;
798 l5:
799   i0=1u;
800 l6:
801   return i0;
802   goto l8;
803 l7:
804   return 1u;
805 l8:
806   _failed_function(12358); return 0;
807   ;
808 }
809 
OOC_SymbolTable_TypeRules__IsValidCaseSelector(OOC_SymbolTable__Type type)810 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidCaseSelector(OOC_SymbolTable__Type type) {
811   register OOC_INT64 i0,i1;
812 
813   i0 = (OOC_INT64)type;
814   i1 = OOC_SymbolTable_TypeRules__IsIntegerType((OOC_SymbolTable__Type)i0);
815   if (i1) goto l3;
816   i0 = OOC_SymbolTable_TypeRules__IsCharType((OOC_SymbolTable__Type)i0);
817 
818   goto l4;
819 l3:
820   i0=1u;
821 l4:
822   return i0;
823   ;
824 }
825 
OOC_SymbolTable_TypeRules__IsValidTypeBound(OOC_SymbolTable__Type type)826 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidTypeBound(OOC_SymbolTable__Type type) {
827   register OOC_INT64 i0,i1;
828 
829   i0 = (OOC_INT64)type;
830   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13258)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
831   type = (OOC_SymbolTable__Type)i0;
832   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13283)))), &_td_OOC_SymbolTable__PointerDesc);
833   if (i1) goto l3;
834   return 0u;
835   goto l4;
836 l3:
837   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13327)))), &_td_OOC_SymbolTable__PointerDesc, 13327)), 13335))+72);
838   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13327)))), &_td_OOC_SymbolTable__PointerDesc, 13327)), 13335))+72);
839   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 13344)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
840   type = (OOC_SymbolTable__Type)i0;
841   return (OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13375)))), &_td_OOC_SymbolTable__RecordDesc));
842 l4:
843   _failed_function(13064); return 0;
844   ;
845 }
846 
OOC_SymbolTable_TypeRules__VariableInstance(OOC_SymbolTable__Type type)847 OOC_CHAR8 OOC_SymbolTable_TypeRules__VariableInstance(OOC_SymbolTable__Type type) {
848   register OOC_INT64 i0,i1;
849 
850   i0 = (OOC_INT64)type;
851   i1 = !(OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13708)))), &_td_OOC_SymbolTable__RecordDesc));
852   if (i1) goto l3;
853   i0 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 13736)))), &_td_OOC_SymbolTable__RecordDesc, 13736)), 13743))+105);
854   i0 = !i0;
855 
856   goto l4;
857 l3:
858   i0=1u;
859 l4:
860   return i0;
861   ;
862 }
863 
OOC_SymbolTable_TypeRules__SameType(OOC_SymbolTable__Type a,OOC_SymbolTable__Type b)864 OOC_CHAR8 OOC_SymbolTable_TypeRules__SameType(OOC_SymbolTable__Type a, OOC_SymbolTable__Type b) {
865   register OOC_INT64 i0,i1,i2,i3,i4,i5,i6;
866   OOC_SymbolTable__Type baseA;
867   OOC_SymbolTable__Type baseB;
868   OOC_INT32 i;
869   OOC_SymbolTable__TypeVar tv;
870 
871   i0 = (OOC_INT64)a;
872   i1 = (OOC_INT64)b;
873   i2 = i0==i1;
874   if (i2) goto l3;
875   i2=0u;
876   goto l5;
877 l3:
878   i2 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i0);
879   i2 = !i2;
880 
881 l5:
882   if (i2) goto l28;
883   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14555)))), &_td_OOC_SymbolTable__TypeClosureDesc);
884   if (i2) goto l9;
885   i2=0u;
886   goto l11;
887 l9:
888   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14580)))), &_td_OOC_SymbolTable__TypeClosureDesc);
889 
890 l11:
891   if (!i2) goto l29;
892   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14626)))), &_td_OOC_SymbolTable__TypeClosureDesc, 14626)), 14638))+72);
893   baseA = (OOC_SymbolTable__Type)i2;
894   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14670)))), &_td_OOC_SymbolTable__TypeClosureDesc, 14670)), 14682))+72);
895   baseB = (OOC_SymbolTable__Type)i3;
896   i4 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i3);
897   if (!i4) goto l29;
898   i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 14750))+56);
899   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 14767))+56);
900   _assert((i4==i3), 127, 14738);
901   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 14810))+56);
902   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 14819))+40);
903   i = 0;
904   i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 14826)), 0);
905   i4 = 0<i3;
906   if (!i4) goto l25;
907   i4=0;
908 l17_loop:
909   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 14855))+56);
910   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 14864))+40);
911   i5 = _check_pointer(i5, 14871);
912   i6 = OOC_ARRAY_LENGTH(i5, 0);
913   i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i4, i6, OOC_UINT32, 14871))*8);
914   tv = (OOC_SymbolTable__TypeVar)i5;
915   i6 = (OOC_INT64)OOC_SymbolTable__TypeClosureDesc_Lookup((OOC_SymbolTable__TypeClosure)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 14963)))), &_td_OOC_SymbolTable__TypeClosureDesc, 14963)), (OOC_SymbolTable__TypeVar)i5, (OOC_SymbolTable__TypeVar)i5);
916   i5 = (OOC_INT64)OOC_SymbolTable__TypeClosureDesc_Lookup((OOC_SymbolTable__TypeClosure)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 14905)))), &_td_OOC_SymbolTable__TypeClosureDesc, 14905)), (OOC_SymbolTable__TypeVar)i5, (OOC_SymbolTable__TypeVar)i5);
917   i5 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i5, (OOC_SymbolTable__Type)i6);
918   i5 = !i5;
919   if (!i5) goto l20;
920   return 0u;
921 l20:
922   i4 = i4+1;
923   i = i4;
924   i5 = i4<i3;
925   if (i5) goto l17_loop;
926 l25:
927   return 1u;
928   goto l29;
929 l28:
930   return 1u;
931 l29:
932   return 0u;
933   ;
934 }
935 
OOC_SymbolTable_TypeRules__EqualTypes(OOC_SymbolTable__Type a,OOC_SymbolTable__Type b)936 OOC_CHAR8 OOC_SymbolTable_TypeRules__EqualTypes(OOC_SymbolTable__Type a, OOC_SymbolTable__Type b) {
937   register OOC_INT64 i0,i1,i2,i3;
938 
939   i0 = (OOC_INT64)b;
940   i1 = (OOC_INT64)a;
941   i2 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
942   if (i2) goto l11;
943   i2 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i1);
944   if (i2) goto l5;
945   i2=0u;
946   goto l7;
947 l5:
948   i2 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i0);
949 
950 l7:
951   if (i2) goto l9;
952   i2=0u;
953   goto l13;
954 l9:
955   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15478)))), &_td_OOC_SymbolTable__ArrayDesc, 15478)), 15484))+80);
956   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15421)))), &_td_OOC_SymbolTable__ArrayDesc, 15421)), 15427))+80);
957   i2 = OOC_SymbolTable_TypeRules__EqualTypes((OOC_SymbolTable__Type)i3, (OOC_SymbolTable__Type)i2);
958 
959   goto l13;
960 l11:
961   i2=1u;
962 l13:
963   if (i2) goto l23;
964   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15516)))), &_td_OOC_SymbolTable__FormalParsDesc);
965   if (i2) goto l17;
966   i2=0u;
967   goto l19;
968 l17:
969   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15540)))), &_td_OOC_SymbolTable__FormalParsDesc);
970 
971 l19:
972   if (i2) goto l21;
973   i0=0u;
974   goto l24;
975 l21:
976   i0 = OOC_SymbolTable_TypeRules__FormalParamsMatch((OOC_SymbolTable__Type)(_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15599)))), &_td_OOC_SymbolTable__FormalParsDesc, 15599)), (OOC_SymbolTable__FormalPars)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15618)))), &_td_OOC_SymbolTable__FormalParsDesc, 15618)), 0u);
977 
978   goto l24;
979 l23:
980   i0=1u;
981 l24:
982   return i0;
983   ;
984 }
985 
OOC_SymbolTable_TypeRules__IsPointer(OOC_SymbolTable__Type type)986 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsPointer(OOC_SymbolTable__Type type) {
987   register OOC_INT64 i0,i1;
988 
989   i0 = (OOC_INT64)type;
990   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15915)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
991   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 15926)))), &_td_OOC_SymbolTable__PointerDesc);
992   if (i1) goto l3;
993   i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 15951)))), &_td_OOC_SymbolTable__TypeVarDesc);
994 
995   goto l4;
996 l3:
997   i0=1u;
998 l4:
999   return i0;
1000   ;
1001 }
1002 
OOC_SymbolTable_TypeRules__PointerBaseType(OOC_SymbolTable__Type pointer)1003 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__PointerBaseType(OOC_SymbolTable__Type pointer) {
1004   register OOC_INT64 i0,i1;
1005   OOC_SymbolTable__Type ptr;
1006 
1007   i0 = (OOC_INT64)pointer;
1008   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16152)))), &_td_OOC_SymbolTable__PointerDesc);
1009   if (i1) goto l3;
1010   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16229)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1011   ptr = (OOC_SymbolTable__Type)i1;
1012   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16278)))), &_td_OOC_SymbolTable__PointerDesc, 16278)), 16286))+72);
1013   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16261)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1014   return (OOC_SymbolTable__Type)i0;
1015   goto l4;
1016 l3:
1017   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16189))+72);
1018   return (OOC_SymbolTable__Type)i0;
1019 l4:
1020   _failed_function(15996); return 0;
1021   ;
1022 }
1023 
OOC_SymbolTable_TypeRules__IsRecord(OOC_SymbolTable__Type type)1024 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsRecord(OOC_SymbolTable__Type type) {
1025   register OOC_INT64 i0;
1026 
1027   i0 = (OOC_INT64)type;
1028   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16521)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1029   return (OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16532)))), &_td_OOC_SymbolTable__RecordDesc));
1030   ;
1031 }
1032 
OOC_SymbolTable_TypeRules__RecordBaseType(OOC_SymbolTable__Type record)1033 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__RecordBaseType(OOC_SymbolTable__Type record) {
1034   register OOC_INT64 i0,i1;
1035   OOC_SymbolTable__Type ptr;
1036 
1037   i0 = (OOC_INT64)record;
1038   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16727)))), &_td_OOC_SymbolTable__RecordDesc);
1039   if (i1) goto l3;
1040   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16801)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1041   ptr = (OOC_SymbolTable__Type)i1;
1042   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 16849)))), &_td_OOC_SymbolTable__RecordDesc, 16849)), 16856))+72);
1043   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 16832)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1044   return (OOC_SymbolTable__Type)i0;
1045   goto l4;
1046 l3:
1047   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 16762))+72);
1048   return (OOC_SymbolTable__Type)i0;
1049 l4:
1050   _failed_function(16575); return 0;
1051   ;
1052 }
1053 
OOC_SymbolTable_TypeRules__IsRecordPointer(OOC_SymbolTable__Type type)1054 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsRecordPointer(OOC_SymbolTable__Type type) {
1055   register OOC_INT64 i0,i1;
1056 
1057   i0 = (OOC_INT64)type;
1058   i1 = OOC_SymbolTable_TypeRules__IsPointer((OOC_SymbolTable__Type)i0);
1059   if (i1) goto l3;
1060   i0=0u;
1061   goto l4;
1062 l3:
1063   i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i0);
1064   i0 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i0);
1065 
1066 l4:
1067   return i0;
1068   ;
1069 }
1070 
OOC_SymbolTable_TypeRules__IsArray(OOC_SymbolTable__Type type)1071 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsArray(OOC_SymbolTable__Type type) {
1072   register OOC_INT64 i0;
1073 
1074   i0 = (OOC_INT64)type;
1075   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17311)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1076   return (OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17322)))), &_td_OOC_SymbolTable__ArrayDesc));
1077   ;
1078 }
1079 
OOC_SymbolTable_TypeRules__ArrayElementType(OOC_SymbolTable__Type array)1080 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__ArrayElementType(OOC_SymbolTable__Type array) {
1081   register OOC_INT64 i0,i1;
1082   OOC_SymbolTable__Type ptr;
1083 
1084   i0 = (OOC_INT64)array;
1085   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17514)))), &_td_OOC_SymbolTable__ArrayDesc);
1086   if (i1) goto l3;
1087   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17588)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1088   ptr = (OOC_SymbolTable__Type)i1;
1089   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 17635)))), &_td_OOC_SymbolTable__ArrayDesc, 17635)), 17641))+80);
1090   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17618)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1091   return (OOC_SymbolTable__Type)i0;
1092   goto l4;
1093 l3:
1094   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 17547))+80);
1095   return (OOC_SymbolTable__Type)i0;
1096 l4:
1097   _failed_function(17363); return 0;
1098   ;
1099 }
1100 
OOC_SymbolTable_TypeRules__IsInducedExtensionOf(OOC_SymbolTable__Type type,OOC_SymbolTable__Type base,OOC_CHAR8 ensureInduction)1101 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsInducedExtensionOf(OOC_SymbolTable__Type type, OOC_SymbolTable__Type base, OOC_CHAR8 ensureInduction) {
1102   register OOC_INT64 i0,i1,i2,i3,i4;
1103   OOC_SymbolTable__Type ptr;
1104   OOC_SymbolTable__Type qualBase;
1105 
1106   i0 = (OOC_INT64)type;
1107   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17920)))), &_td_OOC_SymbolTable__TypeVarDesc);
1108   if (!i1) goto l4;
1109   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 17964)))), &_td_OOC_SymbolTable__TypeVarDesc, 17964)), 17972))+72);
1110   type = (OOC_SymbolTable__Type)i0;
1111 
1112 l4:
1113   i1 = (OOC_INT64)base;
1114   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18002)))), &_td_OOC_SymbolTable__TypeVarDesc);
1115   if (!i2) goto l7;
1116   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 18046)))), &_td_OOC_SymbolTable__TypeVarDesc, 18046)), 18054))+72);
1117   base = (OOC_SymbolTable__Type)i1;
1118 l7:
1119   i1 = OOC_SymbolTable_TypeRules__IsPointer((OOC_SymbolTable__Type)i0);
1120   if (i1) goto l10;
1121   i1=0u;
1122   goto l12;
1123 l10:
1124   i1 = (OOC_INT64)base;
1125   i1 = OOC_SymbolTable_TypeRules__IsPointer((OOC_SymbolTable__Type)i1);
1126 
1127 l12:
1128   if (!i1) goto l15;
1129   i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i0);
1130   type = (OOC_SymbolTable__Type)i0;
1131   i1 = (OOC_INT64)base;
1132   i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__PointerBaseType((OOC_SymbolTable__Type)i1);
1133   base = (OOC_SymbolTable__Type)i1;
1134 
1135 l15:
1136   i1 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i0);
1137   if (i1) goto l18;
1138   i1=0u;
1139   goto l20;
1140 l18:
1141   i1 = (OOC_INT64)base;
1142   i1 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i1);
1143 
1144 l20:
1145   if (!i1) goto l53;
1146   i1 = i0!=(OOC_INT64)0;
1147   if (i1) goto l24;
1148   i1=0u;
1149   goto l26;
1150 l24:
1151   i1 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i0);
1152 
1153 l26:
1154   if (!i1) goto l53;
1155   i1 = (OOC_INT64)base;
1156   i2 = ensureInduction;
1157 
1158 l28_loop:
1159   i3 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1160   if (i3) goto l42;
1161   i3 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 18571)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1162   ptr = (OOC_SymbolTable__Type)i3;
1163   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i3, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 18613)))), &_td_OOC_SymbolTable__RecordDesc, 18613)), 18620))+72);
1164   qualBase = (OOC_SymbolTable__Type)i3;
1165   if (i2) goto l33;
1166   i4=0u;
1167   goto l35;
1168 l33:
1169   i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 18679)))), &_td_OOC_SymbolTable__TypeClosureDesc);
1170 
1171 l35:
1172   if (i4) goto l37;
1173   i4=0u;
1174   goto l39;
1175 l37:
1176   i4 = OOC_SymbolTable__TypeClosureDesc_ArgumentsInduced((OOC_SymbolTable__TypeClosure)(_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 18724)))), &_td_OOC_SymbolTable__TypeClosureDesc, 18724)), (OOC_SymbolTable__Type)i3);
1177   i4 = !i4;
1178 
1179 l39:
1180   if (!i4) goto l41;
1181   return 0u;
1182 l41:
1183   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 18843)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i3);
1184   type = (OOC_SymbolTable__Type)i0;
1185 
1186   goto l43;
1187 l42:
1188   return 1u;
1189 
1190 l43:
1191   i3 = i0!=(OOC_INT64)0;
1192   if (i3) goto l46;
1193   i3=0u;
1194   goto l48;
1195 l46:
1196   i3 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i0);
1197 
1198 l48:
1199   if (i3) goto l28_loop;
1200 l53:
1201   return 0u;
1202   ;
1203 }
1204 
OOC_SymbolTable_TypeRules__IsExtensionOf(OOC_SymbolTable__Type type,OOC_SymbolTable__Type base)1205 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsExtensionOf(OOC_SymbolTable__Type type, OOC_SymbolTable__Type base) {
1206   register OOC_INT64 i0,i1;
1207 
1208   i0 = (OOC_INT64)base;
1209   i1 = (OOC_INT64)type;
1210   i0 = OOC_SymbolTable_TypeRules__IsInducedExtensionOf((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0, 0u);
1211   return i0;
1212   ;
1213 }
1214 
OOC_SymbolTable_TypeRules__IsExtensionOfNoParams(OOC_SymbolTable__Type type,OOC_SymbolTable__Type base)1215 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsExtensionOfNoParams(OOC_SymbolTable__Type type, OOC_SymbolTable__Type base) {
1216   register OOC_INT64 i0,i1,i2;
1217 
1218   i0 = (OOC_INT64)type;
1219   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19523)))), &_td_OOC_SymbolTable__TypeVarDesc);
1220   if (!i1) goto l4;
1221   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19567)))), &_td_OOC_SymbolTable__TypeVarDesc, 19567)), 19575))+72);
1222   type = (OOC_SymbolTable__Type)i0;
1223 
1224 l4:
1225   i1 = (OOC_INT64)base;
1226   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19605)))), &_td_OOC_SymbolTable__TypeVarDesc);
1227   if (!i2) goto l7;
1228   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19649)))), &_td_OOC_SymbolTable__TypeVarDesc, 19649)), 19657))+72);
1229   base = (OOC_SymbolTable__Type)i1;
1230 l7:
1231   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19690)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1232   type = (OOC_SymbolTable__Type)i0;
1233   i1 = (OOC_INT64)base;
1234   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19718)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
1235   base = (OOC_SymbolTable__Type)i1;
1236   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19820)))), &_td_OOC_SymbolTable__PointerDesc);
1237   if (i2) goto l10;
1238   i2=0u;
1239   goto l12;
1240 l10:
1241   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19844)))), &_td_OOC_SymbolTable__PointerDesc);
1242 
1243 l12:
1244   if (!i2) goto l15;
1245   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19888)))), &_td_OOC_SymbolTable__PointerDesc, 19888)), 19896))+72);
1246   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19888)))), &_td_OOC_SymbolTable__PointerDesc, 19888)), 19896))+72);
1247   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 19905)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1248   type = (OOC_SymbolTable__Type)i0;
1249   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19940)))), &_td_OOC_SymbolTable__PointerDesc, 19940)), 19948))+72);
1250   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 19940)))), &_td_OOC_SymbolTable__PointerDesc, 19940)), 19948))+72);
1251   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i2, 19957)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
1252   base = (OOC_SymbolTable__Type)i1;
1253 
1254 l15:
1255   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 19991)))), &_td_OOC_SymbolTable__RecordDesc);
1256   if (i2) goto l18;
1257   i2=0u;
1258   goto l20;
1259 l18:
1260   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 20014)))), &_td_OOC_SymbolTable__RecordDesc);
1261 
1262 l20:
1263   if (!i2) goto l46;
1264   i2 = i0!=(OOC_INT64)0;
1265   if (i2) goto l24;
1266   i2=0u;
1267   goto l26;
1268 l24:
1269   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 20177)))), &_td_OOC_SymbolTable__RecordDesc);
1270 
1271 l26:
1272   if (!i2) goto l46;
1273 l28_loop:
1274   i2 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1275   if (i2) goto l35;
1276   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 20295)))), &_td_OOC_SymbolTable__RecordDesc, 20295)), 20302))+72);
1277   type = (OOC_SymbolTable__Type)i0;
1278   i2 = i0!=(OOC_INT64)0;
1279   if (!i2) goto l36;
1280   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 20368)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1281   type = (OOC_SymbolTable__Type)i0;
1282 
1283   goto l36;
1284 l35:
1285   return 1u;
1286 
1287 l36:
1288   i2 = i0!=(OOC_INT64)0;
1289   if (i2) goto l39;
1290   i2=0u;
1291   goto l41;
1292 l39:
1293   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 20177)))), &_td_OOC_SymbolTable__RecordDesc);
1294 
1295 l41:
1296   if (i2) goto l28_loop;
1297 l46:
1298   return 0u;
1299   ;
1300 }
1301 
OOC_SymbolTable_TypeRules__IsValidArrayIteratorRange(OOC_SymbolTable__Type type)1302 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidArrayIteratorRange(OOC_SymbolTable__Type type) {
1303   register OOC_INT64 i0,i1;
1304 
1305   i0 = (OOC_INT64)type;
1306   i1 = OOC_SymbolTable_TypeRules__IsArray((OOC_SymbolTable__Type)i0);
1307   if (i1) goto l3;
1308   return 0u;
1309   goto l4;
1310 l3:
1311   i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__ArrayElementType((OOC_SymbolTable__Type)i0);
1312   i0 = OOC_SymbolTable_TypeRules__IsValidResultType((OOC_SymbolTable__Type)i0);
1313   return i0;
1314 l4:
1315   _failed_function(20485); return 0;
1316   ;
1317 }
1318 
OOC_SymbolTable_TypeRules__FunctionResultType(OOC_SymbolTable__Type formalPars)1319 OOC_SymbolTable__Type OOC_SymbolTable_TypeRules__FunctionResultType(OOC_SymbolTable__Type formalPars) {
1320   register OOC_INT64 i0,i1;
1321   OOC_SymbolTable__Type ptr;
1322 
1323   i0 = (OOC_INT64)formalPars;
1324   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 20993)))), &_td_OOC_SymbolTable__FormalParsDesc);
1325   if (i1) goto l3;
1326   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 21081)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1327   ptr = (OOC_SymbolTable__Type)i1;
1328   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 21133)))), &_td_OOC_SymbolTable__FormalParsDesc, 21133)), 21144))+80);
1329   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 21116)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1330   return (OOC_SymbolTable__Type)i0;
1331   goto l4;
1332 l3:
1333   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 21036))+80);
1334   return (OOC_SymbolTable__Type)i0;
1335 l4:
1336   _failed_function(20823); return 0;
1337   ;
1338 }
1339 
OOC_SymbolTable_TypeRules__CallingConventionsMatch(OOC_INT8 a,OOC_INT8 b)1340 OOC_CHAR8 OOC_SymbolTable_TypeRules__CallingConventionsMatch(OOC_INT8 a, OOC_INT8 b) {
1341   register OOC_INT64 i0,i1;
1342 
1343   i0 = a;
1344   i1 = i0==(-1);
1345   if (i1) goto l3;
1346   i1 = b;
1347   i1 = i1==(-1);
1348 
1349   goto l5;
1350 l3:
1351   i1=1u;
1352 l5:
1353   if (i1) goto l11;
1354   i1 = _in(i0,5u);
1355   if (i1) goto l9;
1356   i1 = b;
1357   return (i0==i1);
1358   goto l12;
1359 l9:
1360   i0 = b;
1361   return (_in(i0,5u));
1362   goto l12;
1363 l11:
1364   return 0u;
1365 l12:
1366   _failed_function(21204); return 0;
1367   ;
1368 }
1369 
OOC_SymbolTable_TypeRules__FormalParamsMatch(OOC_SymbolTable__Type baseFParsClosure,OOC_SymbolTable__FormalPars procFPars,OOC_CHAR8 allowSpecialization)1370 OOC_CHAR8 OOC_SymbolTable_TypeRules__FormalParamsMatch(OOC_SymbolTable__Type baseFParsClosure, OOC_SymbolTable__FormalPars procFPars, OOC_CHAR8 allowSpecialization) {
1371   register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
1372   OOC_SymbolTable__Type ptr;
1373   OOC_SymbolTable__FormalPars baseFPars;
1374   OOC_SymbolTable__Type baseResult;
1375   OOC_INT32 i;
1376   OOC_INT32 j;
1377 
1378   i0 = (OOC_INT64)baseFParsClosure;
1379   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 23177)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1380   ptr = (OOC_SymbolTable__Type)i1;
1381   i1 = _type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 23214)))), &_td_OOC_SymbolTable__FormalParsDesc, 23214);
1382   baseFPars = (OOC_SymbolTable__FormalPars)i1;
1383   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23244))+80);
1384   i2 = i2==(OOC_INT64)0;
1385   if (i2) goto l3;
1386   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23356))+80);
1387   i2 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 23338)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i2);
1388   baseResult = (OOC_SymbolTable__Type)i2;
1389 
1390   goto l4;
1391 l3:
1392   baseResult = (OOC_SymbolTable__Type)(OOC_INT64)0;
1393   i2=(OOC_INT64)0;
1394 l4:
1395   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 23406))+96);
1396   i4 = (OOC_INT64)procFPars;
1397   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 23433))+96);
1398   i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 23414)), 0);
1399   i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 23441)), 0);
1400   i3 = i3!=i5;
1401   if (i3) goto l149;
1402   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 23511))+80);
1403   i3 = (i2==(OOC_INT64)0)!=(i3==(OOC_INT64)0);
1404   if (i3) goto l147;
1405   i3 = i2!=(OOC_INT64)0;
1406   if (i3) goto l11;
1407   i5=0u;
1408   goto l13;
1409 l11:
1410   i5 = allowSpecialization;
1411   i5 = !i5;
1412 
1413 l13:
1414   if (i5) goto l15;
1415   i5=0u;
1416   goto l17;
1417 l15:
1418   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 23676))+80);
1419   i5 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i5);
1420   i5 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i5);
1421   i5 = !i5;
1422 
1423 l17:
1424   if (i5) goto l145;
1425 l19:
1426   if (i3) goto l21;
1427   i3=0u;
1428   goto l23;
1429 l21:
1430   i3 = allowSpecialization;
1431 
1432 l23:
1433   if (i3) goto l25;
1434   i2=0u;
1435   goto l31;
1436 l25:
1437   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 23831))+80);
1438   i3 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i3);
1439   i3 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i2, (OOC_SymbolTable__Type)i3);
1440   if (i3) goto l28;
1441   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 23894))+80);
1442   i3 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i3);
1443   i2 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i3, (OOC_SymbolTable__Type)i2);
1444 
1445   goto l29;
1446 l28:
1447   i2=1u;
1448 l29:
1449   i2 = !i2;
1450 
1451 l31:
1452   if (i2) goto l143;
1453   i2 = *(OOC_UINT8*)((_check_pointer(i1, 23965))+104);
1454   i3 = *(OOC_UINT8*)((_check_pointer(i4, 23996))+104);
1455   i2 = i2!=i3;
1456   if (i2) goto l141;
1457   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24084))+96);
1458   i = 0;
1459   i2 = OOC_ARRAY_LENGTH((_check_pointer(i2, 24092)), 0);
1460   i3 = 0<i2;
1461   if (!i3) goto l49;
1462   i3=0;
1463 l37_loop:
1464   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24121))+96);
1465   i5 = _check_pointer(i5, 24129);
1466   i6 = OOC_ARRAY_LENGTH(i5, 0);
1467   i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i3, i6, OOC_UINT32, 24129))*8);
1468   i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 24169))+96);
1469   i6 = _check_pointer(i6, 24177);
1470   i7 = OOC_ARRAY_LENGTH(i6, 0);
1471   i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 24177))*8);
1472   i5 = *(OOC_UINT8*)((_check_pointer(i5, 24132))+107);
1473   i6 = *(OOC_UINT8*)((_check_pointer(i6, 24180))+107);
1474   i5 = i5!=i6;
1475   if (i5) goto l40;
1476   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 24318))+96);
1477   i5 = _check_pointer(i5, 24325);
1478   i6 = OOC_ARRAY_LENGTH(i5, 0);
1479   i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i3, i6, OOC_UINT32, 24325))*8);
1480   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 24328))+88);
1481   i5 = (OOC_INT64)OOC_SymbolTable__Expand((OOC_SymbolTable__Type)i5);
1482   i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24255))+96);
1483   i6 = _check_pointer(i6, 24262);
1484   i7 = OOC_ARRAY_LENGTH(i6, 0);
1485   i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 24262))*8);
1486   i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 24265))+88);
1487   i6 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 24237)))), OOC_SymbolTable__TypeDesc_Closure)),OOC_SymbolTable__TypeDesc_Closure)((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i6);
1488   i5 = OOC_SymbolTable_TypeRules__EqualTypes((OOC_SymbolTable__Type)i6, (OOC_SymbolTable__Type)i5);
1489   i5 = !i5;
1490 
1491   goto l42;
1492 l40:
1493   i5=1u;
1494 l42:
1495   if (!i5) goto l44;
1496   return 0u;
1497 l44:
1498   i3 = i3+1;
1499   i = i3;
1500   i5 = i3<i2;
1501   if (i5) goto l37_loop;
1502 l49:
1503   i0 = allowSpecialization;
1504   if (i0) goto l108;
1505   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25081))+112);
1506   i = 0;
1507   i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 25088)), 0);
1508   i2 = 0<i0;
1509   if (!i2) goto l79;
1510   i2=0;
1511 l54_loop:
1512   j = 0;
1513   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25148))+112);
1514   i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 25155)), 0);
1515   i3 = 0!=i3;
1516   if (i3) goto l57;
1517   i3=0u;
1518   goto l59;
1519 l57:
1520   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25248))+112);
1521   i3 = _check_pointer(i3, 25255);
1522   i5 = OOC_ARRAY_LENGTH(i3, 0);
1523   i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i5, OOC_UINT32, 25255))*8);
1524   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25196))+112);
1525   i5 = _check_pointer(i5, 25203);
1526   i6 = OOC_ARRAY_LENGTH(i5, 0);
1527   i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(0, i6, OOC_UINT32, 25203))*8);
1528   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 25258))+40);
1529   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 25206))+40);
1530   i3 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i5, (OOC_SymbolTable__Type)i3);
1531   i3 = !i3;
1532 
1533 l59:
1534   if (i3) goto l61;
1535   i3=0;
1536   goto l71;
1537 l61:
1538   i3=0;
1539 l62_loop:
1540   i3 = i3+1;
1541   j = i3;
1542   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25148))+112);
1543   i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 25155)), 0);
1544   i5 = i3!=i5;
1545   if (i5) goto l65;
1546   i5=0u;
1547   goto l67;
1548 l65:
1549   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25248))+112);
1550   i5 = _check_pointer(i5, 25255);
1551   i6 = OOC_ARRAY_LENGTH(i5, 0);
1552   i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i2, i6, OOC_UINT32, 25255))*8);
1553   i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25196))+112);
1554   i6 = _check_pointer(i6, 25203);
1555   i7 = OOC_ARRAY_LENGTH(i6, 0);
1556   i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 25203))*8);
1557   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 25258))+40);
1558   i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 25206))+40);
1559   i5 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i6, (OOC_SymbolTable__Type)i5);
1560   i5 = !i5;
1561 
1562 l67:
1563   if (i5) goto l62_loop;
1564 l71:
1565   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25334))+112);
1566   i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 25341)), 0);
1567   i3 = i3==i5;
1568   if (!i3) goto l74;
1569   return 0u;
1570 l74:
1571   i2 = i2+1;
1572   i = i2;
1573   i3 = i2<i0;
1574   if (i3) goto l54_loop;
1575 l79:
1576   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25454))+112);
1577   i = 0;
1578   i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 25461)), 0);
1579   i2 = 0<i0;
1580   if (!i2) goto l137;
1581   i2=0;
1582 l82_loop:
1583   j = 0;
1584   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25521))+112);
1585   i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 25528)), 0);
1586   i3 = 0!=i3;
1587   if (i3) goto l85;
1588   i3=0u;
1589   goto l87;
1590 l85:
1591   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25621))+112);
1592   i3 = _check_pointer(i3, 25628);
1593   i5 = OOC_ARRAY_LENGTH(i3, 0);
1594   i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i5, OOC_UINT32, 25628))*8);
1595   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25569))+112);
1596   i5 = _check_pointer(i5, 25576);
1597   i6 = OOC_ARRAY_LENGTH(i5, 0);
1598   i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(0, i6, OOC_UINT32, 25576))*8);
1599   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 25631))+40);
1600   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 25579))+40);
1601   i3 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i5, (OOC_SymbolTable__Type)i3);
1602   i3 = !i3;
1603 
1604 l87:
1605   if (i3) goto l89;
1606   i3=0;
1607   goto l99;
1608 l89:
1609   i3=0;
1610 l90_loop:
1611   i3 = i3+1;
1612   j = i3;
1613   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25521))+112);
1614   i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 25528)), 0);
1615   i5 = i3!=i5;
1616   if (i5) goto l93;
1617   i5=0u;
1618   goto l95;
1619 l93:
1620   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 25621))+112);
1621   i5 = _check_pointer(i5, 25628);
1622   i6 = OOC_ARRAY_LENGTH(i5, 0);
1623   i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i2, i6, OOC_UINT32, 25628))*8);
1624   i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25569))+112);
1625   i6 = _check_pointer(i6, 25576);
1626   i7 = OOC_ARRAY_LENGTH(i6, 0);
1627   i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 25576))*8);
1628   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 25631))+40);
1629   i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 25579))+40);
1630   i5 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i6, (OOC_SymbolTable__Type)i5);
1631   i5 = !i5;
1632 
1633 l95:
1634   if (i5) goto l90_loop;
1635 l99:
1636   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 25707))+112);
1637   i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 25714)), 0);
1638   i3 = i3==i5;
1639   if (!i3) goto l102;
1640   return 0u;
1641 l102:
1642   i2 = i2+1;
1643   i = i2;
1644   i3 = i2<i0;
1645   if (i3) goto l82_loop;
1646   goto l137;
1647 l108:
1648   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 24457))+112);
1649   i = 0;
1650   i0 = OOC_ARRAY_LENGTH((_check_pointer(i0, 24464)), 0);
1651   i2 = 0<i0;
1652   if (!i2) goto l137;
1653   i2=0;
1654 l111_loop:
1655   j = 0;
1656   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24524))+112);
1657   i3 = OOC_ARRAY_LENGTH((_check_pointer(i3, 24531)), 0);
1658   i3 = 0!=i3;
1659   if (i3) goto l114;
1660   i3=0u;
1661   goto l116;
1662 l114:
1663   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24634))+112);
1664   i3 = _check_pointer(i3, 24641);
1665   i5 = OOC_ARRAY_LENGTH(i3, 0);
1666   i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i5, OOC_UINT32, 24641))*8);
1667   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 24577))+112);
1668   i5 = _check_pointer(i5, 24584);
1669   i6 = OOC_ARRAY_LENGTH(i5, 0);
1670   i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(0, i6, OOC_UINT32, 24584))*8);
1671   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 24644))+40);
1672   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 24587))+40);
1673   i3 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i5, (OOC_SymbolTable__Type)i3);
1674   i3 = !i3;
1675 
1676 l116:
1677   if (i3) goto l118;
1678   i3=0;
1679   goto l128;
1680 l118:
1681   i3=0;
1682 l119_loop:
1683   i3 = i3+1;
1684   j = i3;
1685   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24524))+112);
1686   i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 24531)), 0);
1687   i5 = i3!=i5;
1688   if (i5) goto l122;
1689   i5=0u;
1690   goto l124;
1691 l122:
1692   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24634))+112);
1693   i5 = _check_pointer(i5, 24641);
1694   i6 = OOC_ARRAY_LENGTH(i5, 0);
1695   i5 = (OOC_INT64)*(OOC_INT64*)(i5+(_check_index(i2, i6, OOC_UINT32, 24641))*8);
1696   i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i4, 24577))+112);
1697   i6 = _check_pointer(i6, 24584);
1698   i7 = OOC_ARRAY_LENGTH(i6, 0);
1699   i6 = (OOC_INT64)*(OOC_INT64*)(i6+(_check_index(i3, i7, OOC_UINT32, 24584))*8);
1700   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i5, 24644))+40);
1701   i6 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i6, 24587))+40);
1702   i5 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i6, (OOC_SymbolTable__Type)i5);
1703   i5 = !i5;
1704 
1705 l124:
1706   if (i5) goto l119_loop;
1707 l128:
1708   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 24720))+112);
1709   i5 = OOC_ARRAY_LENGTH((_check_pointer(i5, 24727)), 0);
1710   i3 = i3==i5;
1711   if (!i3) goto l131;
1712   return 0u;
1713 l131:
1714   i2 = i2+1;
1715   i = i2;
1716   i3 = i2<i0;
1717   if (i3) goto l111_loop;
1718 l137:
1719   i0 = *(OOC_INT8*)((_check_pointer(i4, 25867))+106);
1720   i1 = *(OOC_INT8*)((_check_pointer(i1, 25847))+106);
1721   i0 = OOC_SymbolTable_TypeRules__CallingConventionsMatch(i1, i0);
1722   i0 = !i0;
1723   if (!i0) goto l140;
1724   return 0u;
1725 l140:
1726   return 1u;
1727   goto l150;
1728 l141:
1729   return 0u;
1730   goto l150;
1731 l143:
1732   return 0u;
1733   goto l150;
1734 l145:
1735   return 0u;
1736   goto l150;
1737 l147:
1738   return 0u;
1739   goto l150;
1740 l149:
1741   return 0u;
1742 l150:
1743   _failed_function(21779); return 0;
1744   ;
1745 }
1746 
OOC_SymbolTable_TypeRules__IsValidRedefinition(OOC_SymbolTable__Type baseFParsClosure,OOC_SymbolTable__FormalPars procFPars)1747 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidRedefinition(OOC_SymbolTable__Type baseFParsClosure, OOC_SymbolTable__FormalPars procFPars) {
1748   register OOC_INT64 i0,i1,i2,i3;
1749   OOC_SymbolTable__Type baseFPars;
1750 
1751   i0 = (OOC_INT64)baseFParsClosure;
1752   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 26302)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1753   baseFPars = (OOC_SymbolTable__Type)i1;
1754   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 26346)))), &_td_OOC_SymbolTable__FormalParsDesc, 26346)), 26357))+72);
1755   i2 = (OOC_INT64)procFPars;
1756   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i2, 26396))+72);
1757   i1 = *(OOC_UINT8*)((_check_pointer(i1, 26366))+107);
1758   i3 = *(OOC_UINT8*)((_check_pointer(i3, 26405))+107);
1759   i1 = i1==i3;
1760   if (i1) goto l3;
1761   i0=0u;
1762   goto l4;
1763 l3:
1764   i0 = OOC_SymbolTable_TypeRules__FormalParamsMatch((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__FormalPars)i2, 1u);
1765 
1766 l4:
1767   return i0;
1768   ;
1769 }
1770 
OOC_SymbolTable_TypeRules__IsValidForwardDecl(OOC_SymbolTable__FormalPars forward,OOC_SymbolTable__FormalPars proc)1771 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsValidForwardDecl(OOC_SymbolTable__FormalPars forward, OOC_SymbolTable__FormalPars proc) {
1772   register OOC_INT64 i0,i1;
1773 
1774   i0 = (OOC_INT64)forward;
1775   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 26718))+72);
1776   i1 = i1!=(OOC_INT64)0;
1777   if (i1) goto l3;
1778   i1 = (OOC_INT64)proc;
1779   i0 = OOC_SymbolTable_TypeRules__FormalParamsMatch((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__FormalPars)i0, 0u);
1780   return i0;
1781   goto l4;
1782 l3:
1783   i1 = (OOC_INT64)proc;
1784   i0 = OOC_SymbolTable_TypeRules__IsValidRedefinition((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__FormalPars)i0);
1785   return i0;
1786 l4:
1787   _failed_function(26518); return 0;
1788   ;
1789 }
1790 
OOC_SymbolTable_TypeRules__IsArrayType(OOC_SymbolTable__Type type)1791 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsArrayType(OOC_SymbolTable__Type type) {
1792   register OOC_INT64 i0;
1793 
1794   i0 = (OOC_INT64)type;
1795   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 27062)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1796   return (OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 27073)))), &_td_OOC_SymbolTable__ArrayDesc));
1797   ;
1798 }
1799 
OOC_SymbolTable_TypeRules__IsArrayCompatible(OOC_SymbolTable__Type argType,OOC_SymbolTable__Type fparType)1800 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsArrayCompatible(OOC_SymbolTable__Type argType, OOC_SymbolTable__Type fparType) {
1801   register OOC_INT64 i0,i1,i2;
1802 
1803   i0 = (OOC_INT64)fparType;
1804   i1 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i0);
1805   if (i1) goto l3;
1806   i1=0u;
1807   goto l5;
1808 l3:
1809   i1 = (OOC_INT64)argType;
1810   i1 = OOC_SymbolTable_TypeRules__IsArrayType((OOC_SymbolTable__Type)i1);
1811 
1812 l5:
1813   if (!i1) goto l17;
1814 l8_loop:
1815   i1 = (OOC_INT64)argType;
1816   i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__ArrayElementType((OOC_SymbolTable__Type)i1);
1817   argType = (OOC_SymbolTable__Type)i1;
1818   i0 = (OOC_INT64)OOC_SymbolTable_TypeRules__ArrayElementType((OOC_SymbolTable__Type)i0);
1819   i2 = OOC_SymbolTable_TypeRules__IsOpenArrayType((OOC_SymbolTable__Type)i0);
1820   if (i2) goto l11;
1821   i1=0u;
1822   goto l13;
1823 l11:
1824   i1 = OOC_SymbolTable_TypeRules__IsArrayType((OOC_SymbolTable__Type)i1);
1825 
1826 l13:
1827   if (i1) goto l8_loop;
1828 l17:
1829   i1 = (OOC_INT64)argType;
1830   i0 = OOC_SymbolTable_TypeRules__SameType((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
1831   return i0;
1832   ;
1833 }
1834 
OOC_SymbolTable_TypeRules__IsComponentOf(OOC_SymbolTable__Type subType,OOC_SymbolTable__Type superType,OOC_CHAR8 arrayCompat)1835 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsComponentOf(OOC_SymbolTable__Type subType, OOC_SymbolTable__Type superType, OOC_CHAR8 arrayCompat) {
1836   register OOC_INT64 i0,i1,i2,i3,i4;
1837   OOC_SymbolTable__Item field;
1838 
1839   i0 = (OOC_INT64)subType;
1840   i1 = (OOC_INT64)superType;
1841   i2 = OOC_SymbolTable_TypeRules__EqualTypes((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
1842   if (i2) goto l3;
1843   i2 = OOC_SymbolTable_TypeRules__IsExtensionOf((OOC_SymbolTable__Type)i1, (OOC_SymbolTable__Type)i0);
1844 
1845   goto l5;
1846 l3:
1847   i2=1u;
1848 l5:
1849   if (i2) goto l45;
1850   i2 = arrayCompat;
1851   if (i2) goto l9;
1852   i3=0u;
1853   goto l11;
1854 l9:
1855   i3 = OOC_SymbolTable_TypeRules__IsArrayCompatible((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1);
1856 
1857 l11:
1858   if (i3) goto l43;
1859   i3 = OOC_SymbolTable_TypeRules__IsArray((OOC_SymbolTable__Type)i1);
1860   if (i3) goto l41;
1861   i3 = OOC_SymbolTable_TypeRules__IsRecord((OOC_SymbolTable__Type)i1);
1862   if (i3) goto l17;
1863   return 0u;
1864   goto l46;
1865 l17:
1866   i3 = i1!=(OOC_INT64)0;
1867   if (!i3) goto l39;
1868 
1869 l20_loop:
1870   i1 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 28679)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i1);
1871   superType = (OOC_SymbolTable__Type)i1;
1872   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 28717))+16);
1873   field = (OOC_SymbolTable__Item)i3;
1874   i4 = i3!=(OOC_INT64)0;
1875   if (!i4) goto l34;
1876 l23_loop:
1877   i4 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i3, 28783)))), &_td_OOC_SymbolTable__FieldDeclDesc);
1878   if (!i4) goto l29;
1879   i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 28846))+88);
1880   i4 = OOC_SymbolTable_TypeRules__IsComponentOf((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i4, i2);
1881   if (!i4) goto l29;
1882   return 1u;
1883 l29:
1884   i3 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i3, 29016));
1885   field = (OOC_SymbolTable__Item)i3;
1886   i4 = i3!=(OOC_INT64)0;
1887   if (i4) goto l23_loop;
1888 l34:
1889   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer((_type_guard(i1, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 29077)))), &_td_OOC_SymbolTable__RecordDesc, 29077)), 29084))+72);
1890   superType = (OOC_SymbolTable__Type)i1;
1891   i3 = i1!=(OOC_INT64)0;
1892   if (i3) goto l20_loop;
1893 l39:
1894   return 0u;
1895   goto l46;
1896 l41:
1897   i1 = (OOC_INT64)OOC_SymbolTable_TypeRules__ArrayElementType((OOC_SymbolTable__Type)i1);
1898   i0 = OOC_SymbolTable_TypeRules__IsComponentOf((OOC_SymbolTable__Type)i0, (OOC_SymbolTable__Type)i1, i2);
1899   return i0;
1900   goto l46;
1901 l43:
1902   return 1u;
1903   goto l46;
1904 l45:
1905   return 1u;
1906 l46:
1907   _failed_function(27810); return 0;
1908   ;
1909 }
1910 
OOC_SymbolTable_TypeRules__IsByteCompatible(OOC_SymbolTable__Type type)1911 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsByteCompatible(OOC_SymbolTable__Type type) {
1912   register OOC_INT64 i0,i1;
1913 
1914   i0 = (OOC_INT64)type;
1915   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 29360)))), &_td_OOC_SymbolTable__PredefTypeDesc);
1916   if (i1) goto l3;
1917   return 0u;
1918   goto l8;
1919 l3:
1920   i1 = *(OOC_INT16*)((_check_pointer(i0, 29398))+72);
1921   i1 = i1==1;
1922   if (i1) goto l6;
1923   i0 = *(OOC_INT16*)((_check_pointer(i0, 29426))+72);
1924   i0 = i0==4;
1925 
1926   goto l7;
1927 l6:
1928   i0=1u;
1929 l7:
1930   return i0;
1931 l8:
1932   _failed_function(29193); return 0;
1933   ;
1934 }
1935 
OOC_SymbolTable_TypeRules__IsPtrCompatible(OOC_SymbolTable__Type type)1936 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsPtrCompatible(OOC_SymbolTable__Type type) {
1937   register OOC_INT64 i0;
1938 
1939   i0 = (OOC_INT64)type;
1940   i0 = OOC_SymbolTable_TypeRules__IsPointer((OOC_SymbolTable__Type)i0);
1941   return i0;
1942   ;
1943 }
1944 
OOC_SymbolTable_TypeRules__IsNilCompatible(OOC_SymbolTable__Type type)1945 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsNilCompatible(OOC_SymbolTable__Type type) {
1946   register OOC_INT64 i0,i1;
1947 
1948   i0 = (OOC_INT64)type;
1949   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 29969)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
1950   type = (OOC_SymbolTable__Type)i0;
1951   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 29994)))), &_td_OOC_SymbolTable__PredefTypeDesc);
1952   if (i1) goto l15;
1953   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30088)))), &_td_OOC_SymbolTable__PointerDesc);
1954   if (i1) goto l13;
1955   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30134)))), &_td_OOC_SymbolTable__FormalParsDesc);
1956   if (i1) goto l11;
1957   i0 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30183)))), &_td_OOC_SymbolTable__TypeVarDesc);
1958   if (i0) goto l9;
1959   return 0u;
1960   goto l20;
1961 l9:
1962   return 1u;
1963   goto l20;
1964 l11:
1965   return 1u;
1966   goto l20;
1967 l13:
1968   return 1u;
1969   goto l20;
1970 l15:
1971   i1 = *(OOC_INT16*)((_check_pointer(i0, 30032))+72);
1972   i1 = i1==12;
1973   if (i1) goto l18;
1974   i0 = *(OOC_INT16*)((_check_pointer(i0, 30059))+72);
1975   i0 = i0==16;
1976 
1977   goto l19;
1978 l18:
1979   i0=1u;
1980 l19:
1981   return i0;
1982 l20:
1983   _failed_function(29738); return 0;
1984   ;
1985 }
1986 
OOC_SymbolTable_TypeRules__IsReadOnly(OOC_SymbolTable__Module usingModule,OOC_SymbolTable__Declaration decl)1987 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsReadOnly(OOC_SymbolTable__Module usingModule, OOC_SymbolTable__Declaration decl) {
1988   register OOC_INT64 i0,i1;
1989 
1990   i0 = (OOC_INT64)decl;
1991   i1 = *(OOC_INT8*)((_check_pointer(i0, 30505))+52);
1992   i1 = i1==2;
1993   if (i1) goto l3;
1994   i0=0u;
1995   goto l4;
1996 l3:
1997   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30555)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i0);
1998   i1 = (OOC_INT64)usingModule;
1999   i0 = i0!=i1;
2000 
2001 l4:
2002   return i0;
2003   ;
2004 }
2005 
OOC_SymbolTable_TypeRules__IsReadOnlyType(OOC_SymbolTable__Module usingModule,OOC_SymbolTable__Type type)2006 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsReadOnlyType(OOC_SymbolTable__Module usingModule, OOC_SymbolTable__Type type) {
2007   register OOC_INT64 i0,i1;
2008 
2009   i0 = (OOC_INT64)type;
2010   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30816)))), &_td_OOC_SymbolTable__ArrayDesc);
2011   if (i1) goto l3;
2012   i1=0u;
2013   goto l5;
2014 l3:
2015   i1 = *(OOC_UINT8*)((_check_pointer((_type_guard(i0, ((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30849)))), &_td_OOC_SymbolTable__ArrayDesc, 30849)), 30855))+74);
2016 
2017 l5:
2018   if (i1) goto l7;
2019   i0=0u;
2020   goto l8;
2021 l7:
2022   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 30886)))), OOC_SymbolTable__ItemDesc_Module)),OOC_SymbolTable__ItemDesc_Module)((OOC_SymbolTable__Item)i0);
2023   i1 = (OOC_INT64)usingModule;
2024   i0 = i0!=i1;
2025 
2026 l8:
2027   return i0;
2028   ;
2029 }
2030 
OOC_SymbolTable_TypeRules__IsAtomicType(OOC_SymbolTable__Type type)2031 OOC_CHAR8 OOC_SymbolTable_TypeRules__IsAtomicType(OOC_SymbolTable__Type type) {
2032   register OOC_INT64 i0,i1,i2;
2033   OOC_CHAR8 result;
2034   OOC_SymbolTable__Item nested;
2035 
2036   i0 = (OOC_INT64)type;
2037   i0 = (OOC_INT64)OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31371)))), OOC_SymbolTable__TypeDesc_Deparam)),OOC_SymbolTable__TypeDesc_Deparam)((OOC_SymbolTable__Type)i0);
2038   type = (OOC_SymbolTable__Type)i0;
2039   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31395)))), &_td_OOC_SymbolTable__PointerDesc);
2040   if (i1) goto l48;
2041   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31441)))), &_td_OOC_SymbolTable__TypeVarDesc);
2042   if (i1) goto l46;
2043   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31485)))), &_td_OOC_SymbolTable__PredefTypeDesc);
2044   if (i1) goto l44;
2045   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31548)))), &_td_OOC_SymbolTable__ArrayDesc);
2046   if (i1) goto l42;
2047   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31618)))), &_td_OOC_SymbolTable__RecordDesc);
2048   if (i1) goto l11;
2049   result = 1u;
2050 
2051   goto l49;
2052 l11:
2053   result = 1u;
2054   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31665))+72);
2055   i1 = i1!=(OOC_INT64)0;
2056   if (i1) goto l14;
2057   i1=1u;
2058   goto l15;
2059 l14:
2060   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31719))+72);
2061   i1 = OOC_SymbolTable_TypeRules__IsAtomicType((OOC_SymbolTable__Type)i1);
2062   result = i1;
2063 
2064 l15:
2065   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31758))+16);
2066   nested = (OOC_SymbolTable__Item)i0;
2067   if (i1) goto l18;
2068   i2=0u;
2069   goto l20;
2070 l18:
2071   i2 = i0!=(OOC_INT64)0;
2072 
2073 l20:
2074   if (!i2) goto l49;
2075 l23_loop:
2076   i2 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 31827)))), &_td_OOC_SymbolTable__FieldDeclDesc);
2077   if (!i2) goto l31;
2078   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31877))+88);
2079   i2 = OOC_SymbolTable_TypeRules__IsAtomicType((OOC_SymbolTable__Type)i2);
2080   i2 = !i2;
2081   if (!i2) goto l31;
2082   result = 0u;
2083   i1=0u;
2084 l31:
2085   i0 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i0, 31987));
2086   nested = (OOC_SymbolTable__Item)i0;
2087   if (i1) goto l34;
2088   i2=0u;
2089   goto l36;
2090 l34:
2091   i2 = i0!=(OOC_INT64)0;
2092 
2093 l36:
2094   if (i2) goto l23_loop;
2095   goto l49;
2096 l42:
2097   i0 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 31594))+80);
2098   i0 = OOC_SymbolTable_TypeRules__IsAtomicType((OOC_SymbolTable__Type)i0);
2099   result = i0;
2100 
2101   goto l49;
2102 l44:
2103   i0 = *(OOC_INT16*)((_check_pointer(i0, 31520))+72);
2104   return (i0!=12);
2105   goto l49;
2106 l46:
2107   return 0u;
2108   goto l49;
2109 l48:
2110   result = 0u;
2111 l49:
2112   i0 = result;
2113   return i0;
2114   ;
2115 }
2116 
OOC_SymbolTable_TypeRules__AllocateType(OOC_SymbolTable__Type type)2117 void OOC_SymbolTable_TypeRules__AllocateType(OOC_SymbolTable__Type type) {
2118   register OOC_INT64 i0,i1,i2,i3,i4,i5,i6,i7;
2119   OOC_INT32 i;
2120   OOC_INT16 align;
2121   OOC_INT32 size;
2122   OOC_INT16 maxAlign;
2123   OOC_SymbolTable__Item nested;
2124   OOC_INT16 fieldAlign;
2125 
2126   i0 = (OOC_INT64)type;
2127   i1 = *(OOC_INT32*)((_check_pointer(i0, 33069))+64);
2128   i1 = i1==(-2);
2129   if (!i1) goto l97;
2130   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 33225)))), &_td_OOC_SymbolTable__PointerDesc);
2131   if (i1) goto l95;
2132   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 33603)))), &_td_OOC_SymbolTable__FormalParsDesc);
2133   if (i1) goto l82;
2134   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34010)))), &_td_OOC_SymbolTable__ArrayDesc);
2135   if (i1) goto l73;
2136   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34586)))), &_td_OOC_SymbolTable__RecordDesc);
2137   if (i1) goto l19;
2138   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37198)))), &_td_OOC_SymbolTable__TypeVarDesc);
2139   if (i1) goto l17;
2140   i1 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37319)))), &_td_OOC_SymbolTable__QualTypeDesc);
2141   if (i1) goto l15;
2142   _failed_with(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37313)))), 37313);
2143   goto l97;
2144 l15:
2145   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37362))+72);
2146   OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i1);
2147   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37419))+72);
2148   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37399))+72);
2149   i1 = *(OOC_INT16*)((_check_pointer(i1, 37428))+68);
2150   i2 = *(OOC_INT32*)((_check_pointer(i2, 37408))+64);
2151   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37386)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, i2, i1);
2152   goto l97;
2153 l17:
2154   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37240))+72);
2155   OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i1);
2156   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37291))+72);
2157   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 37274))+72);
2158   i1 = *(OOC_INT16*)((_check_pointer(i1, 37297))+68);
2159   i2 = *(OOC_INT32*)((_check_pointer(i2, 37280))+64);
2160   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 37261)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, i2, i1);
2161   goto l97;
2162 l19:
2163   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34691))+72);
2164   i1 = i1==(OOC_INT64)0;
2165   if (i1) goto l22;
2166   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 35036))+72);
2167   OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i1);
2168   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 35072))+72);
2169   i1 = *(OOC_INT16*)((_check_pointer(i1, 35082))+68);
2170   align = i1;
2171   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 35113))+72);
2172   i2 = *(OOC_INT32*)((_check_pointer(i2, 35123))+64);
2173   size = i2;
2174 
2175   goto l27;
2176 l22:
2177   align = 1;
2178   size = 0;
2179   i1 = *(OOC_UINT8*)((_check_pointer(i0, 34833))+108);
2180   if (i1) goto l25;
2181   i1=0;
2182   goto l26;
2183 l25:
2184   i1 = (OOC_INT64)OOC_SymbolTable__predefIdToType;
2185   i1 = _check_pointer(i1, 34961);
2186   i2 = OOC_ARRAY_LENGTH(i1, 0);
2187   i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(12, i2, OOC_UINT8, 34961))*8);
2188   i1 = *(OOC_INT32*)((_check_pointer(i1, 34973))+64);
2189   size = i1;
2190 
2191 l26:
2192   i2=i1;i1=1;
2193 l27:
2194   i3 = *(OOC_INT16*)((_check_pointer(i0, 35241))+110);
2195   i3 = i3==0;
2196   if (i3) goto l30;
2197   i3 = *(OOC_INT16*)((_check_pointer(i0, 35337))+110);
2198   maxAlign = i3;
2199 
2200   goto l31;
2201 l30:
2202   maxAlign = 32767;
2203   i3=32767;
2204 l31:
2205   i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 35386))+16);
2206   nested = (OOC_SymbolTable__Item)i4;
2207   i5 = i4!=(OOC_INT64)0;
2208   if (i5) goto l34;
2209   {register OOC_INT64 h0=i1;i1=i2;i2=h0;}
2210   goto l64;
2211 l34:
2212   {register OOC_INT64 h0=i1;i1=i4;i4=i2;i2=h0;}
2213 l35_loop:
2214   i5 = OOC_TYPE_TEST(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i1, 35454)))), &_td_OOC_SymbolTable__FieldDeclDesc);
2215   if (!i5) goto l59;
2216   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 35505))+88);
2217   OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i5);
2218   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 35546))+88);
2219   i5 = *(OOC_INT16*)((_check_pointer(i5, 35552))+68);
2220   fieldAlign = i5;
2221   i6 = i5>i3;
2222   if (!i6) goto l42;
2223   fieldAlign = i3;
2224   i5=i3;
2225 l42:
2226   i6 = i5>i2;
2227   if (!i6) goto l46;
2228   align = i5;
2229   i2=i5;
2230 l46:
2231   i6 = *(OOC_UINT8*)((_check_pointer(i0, 35874))+104);
2232   if (i6) goto l53;
2233   i6 = _mod(i4,i5);
2234   i7 = i6!=0;
2235   if (!i7) goto l52;
2236   i4 = i4+(i5-i6);
2237   size = i4;
2238 
2239 l52:
2240   OOC_SymbolTable__FieldDeclDesc_SetOffset((OOC_SymbolTable__FieldDecl)i1, i4);
2241   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 36557))+88);
2242   i5 = *(OOC_INT32*)((_check_pointer(i5, 36563))+64);
2243   i4 = i4+i5;
2244   size = i4;
2245 
2246   goto l59;
2247 l53:
2248   OOC_SymbolTable__FieldDeclDesc_SetOffset((OOC_SymbolTable__FieldDecl)i1, 0);
2249   i5 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 36104))+88);
2250   i5 = *(OOC_INT32*)((_check_pointer(i5, 36110))+64);
2251   i5 = i5>i4;
2252   if (!i5) goto l59;
2253   i4 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 36160))+88);
2254   i4 = *(OOC_INT32*)((_check_pointer(i4, 36166))+64);
2255   size = i4;
2256 
2257 l59:
2258   i1 = (OOC_INT64)*(OOC_INT64*)(_check_pointer(i1, 36657));
2259   nested = (OOC_SymbolTable__Item)i1;
2260   i5 = i1!=(OOC_INT64)0;
2261   if (i5) goto l35_loop;
2262 l63:
2263   i1=i4;
2264 l64:
2265   i3 = _mod(i1,i2);
2266   i4 = i3!=0;
2267   if (i4) goto l67;
2268   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 36886)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, i1, i2);
2269   goto l68;
2270 l67:
2271   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 36810)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, ((i1+i2)-i3), i2);
2272 l68:
2273   i1 = OOC_SymbolTable_TypeRules__IsAtomicType((OOC_SymbolTable__Type)i0);
2274   if (!i1) goto l97;
2275   *(OOC_UINT8*)((_check_pointer(i0, 37154))+109) = 1u;
2276   goto l97;
2277 l73:
2278   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34051))+80);
2279   OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i1);
2280   i1 = *(OOC_UINT8*)((_check_pointer(i0, 34082))+72);
2281   if (i1) goto l76;
2282   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34275))+80);
2283   i2 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34225))+80);
2284   i3 = *(OOC_INT32*)((_check_pointer(i0, 34212))+96);
2285   i2 = *(OOC_INT32*)((_check_pointer(i2, 34238))+64);
2286   i1 = *(OOC_INT16*)((_check_pointer(i1, 34288))+68);
2287   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34197)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, (i3*i2), i1);
2288   goto l77;
2289 l76:
2290   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 34147))+80);
2291   i1 = *(OOC_INT16*)((_check_pointer(i1, 34160))+68);
2292   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 34115)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, (-1), i1);
2293 l77:
2294   i1 = OOC_SymbolTable_TypeRules__IsAtomicType((OOC_SymbolTable__Type)i0);
2295   if (!i1) goto l97;
2296   *(OOC_UINT8*)((_check_pointer(i0, 34542))+112) = 1u;
2297   goto l97;
2298 l82:
2299   i1 = (OOC_INT64)OOC_SymbolTable__predefIdToType;
2300   i2 = _check_pointer(i1, 33724);
2301   i3 = OOC_ARRAY_LENGTH(i2, 0);
2302   i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(12, i3, OOC_UINT8, 33724))*8);
2303   i1 = _check_pointer(i1, 33664);
2304   i3 = OOC_ARRAY_LENGTH(i1, 0);
2305   i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(12, i3, OOC_UINT8, 33664))*8);
2306   i2 = *(OOC_INT16*)((_check_pointer(i2, 33736))+68);
2307   i1 = *(OOC_INT32*)((_check_pointer(i1, 33676))+64);
2308   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 33635)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, i1, i2);
2309   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33798))+72);
2310   i1 = i1!=(OOC_INT64)0;
2311   if (!i1) goto l85;
2312   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33849))+72);
2313   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i1, 33859))+88);
2314   OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i1);
2315 l85:
2316   i1 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33912))+96);
2317   i1 = OOC_ARRAY_LENGTH((_check_pointer(i1, 33920)), 0);
2318   i = 0;
2319   i2 = 0<i1;
2320   if (!i2) goto l97;
2321   i2=0;
2322 l88_loop:
2323   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i0, 33956))+96);
2324   i3 = _check_pointer(i3, 33964);
2325   i4 = OOC_ARRAY_LENGTH(i3, 0);
2326   i3 = (OOC_INT64)*(OOC_INT64*)(i3+(_check_index(i2, i4, OOC_UINT32, 33964))*8);
2327   i3 = (OOC_INT64)*(OOC_INT64*)((_check_pointer(i3, 33967))+88);
2328   OOC_SymbolTable_TypeRules__AllocateType((OOC_SymbolTable__Type)i3);
2329   i2 = i2+1;
2330   i = i2;
2331   i3 = i2<i1;
2332   if (i3) goto l88_loop;
2333   goto l97;
2334 l95:
2335   i1 = (OOC_INT64)OOC_SymbolTable__predefIdToType;
2336   i2 = _check_pointer(i1, 33343);
2337   i3 = OOC_ARRAY_LENGTH(i2, 0);
2338   i2 = (OOC_INT64)*(OOC_INT64*)(i2+(_check_index(12, i3, OOC_UINT8, 33343))*8);
2339   i1 = _check_pointer(i1, 33283);
2340   i3 = OOC_ARRAY_LENGTH(i1, 0);
2341   i1 = (OOC_INT64)*(OOC_INT64*)(i1+(_check_index(12, i3, OOC_UINT8, 33283))*8);
2342   i2 = *(OOC_INT16*)((_check_pointer(i2, 33355))+68);
2343   i1 = *(OOC_INT32*)((_check_pointer(i1, 33295))+64);
2344   OOC_TBCALL(((OOC_INT64)OOC_TBPROC_ADR(((OOC_INT64)OOC_TYPE_TAG((_check_pointer(i0, 33254)))), OOC_SymbolTable__TypeDesc_SetSize)),OOC_SymbolTable__TypeDesc_SetSize)((OOC_SymbolTable__Type)i0, i1, i2);
2345 l97:
2346   return;
2347   ;
2348 }
2349 
OOC_OOC_SymbolTable_TypeRules_init(void)2350 void OOC_OOC_SymbolTable_TypeRules_init(void) {
2351 
2352   return;
2353   ;
2354 }
2355 
OOC_OOC_SymbolTable_TypeRules_destroy(void)2356 void OOC_OOC_SymbolTable_TypeRules_destroy(void) {
2357 }
2358 
2359 /* --- */
2360