nitc: fix calling extern constructors from extern code in separate compiler
[nit.git] / c_src / environ.sep.1.c
1 #include "environ.sep.0.h"
2 /* method environ#String#environ for (self: String): String */
3 val* environ__String__environ(val* self) {
4 val* var /* : String */;
5 char* var1 /* : NativeString */;
6 char* var2 /* : NativeString */;
7 void* var4 /* : NativeString for extern */;
8 char* var_res /* var res: NativeString */;
9 static char* varonce;
10 static int varonce_guard;
11 char* var5 /* : NativeString */;
12 static val* varonce6;
13 val* var7 /* : String */;
14 char* var8 /* : NativeString */;
15 long var9 /* : Int */;
16 val* var10 /* : FlatString */;
17 char* var11 /* : NativeString */;
18 char* var12 /* : NativeString */;
19 void* var14 /* : NativeString for extern */;
20 char* var_nulstr /* var nulstr: NativeString */;
21 short int var15 /* : Bool */;
22 short int var16 /* : Bool */;
23 val* var_other /* var other: nullable Object */;
24 val* var18 /* : nullable Object */;
25 short int var19 /* : Bool */;
26 val* var_other21 /* var other: nullable Object */;
27 short int var22 /* : Bool */;
28 val* var24 /* : Object */;
29 short int var25 /* : Bool */;
30 short int var26 /* : Bool */;
31 val* var27 /* : String */;
32 static val* varonce28;
33 val* var29 /* : String */;
34 char* var30 /* : NativeString */;
35 long var31 /* : Int */;
36 val* var32 /* : FlatString */;
37 {
38 var1 = string__FlatString__to_cstring(self);
39 }
40 {
41 { /* Inline environ#NativeString#get_environ (var1) on <var1:NativeString> */
42 var4 = string_NativeString_NativeString_get_environ_0(var1);
43 var2 = var4;
44 goto RET_LABEL3;
45 RET_LABEL3:(void)0;
46 }
47 }
48 var_res = var2;
49 if (varonce_guard) {
50 var5 = varonce;
51 } else {
52 if (varonce6) {
53 var7 = varonce6;
54 } else {
55 var8 = "";
56 var9 = 0;
57 var10 = string__NativeString__to_s_with_length(var8, var9);
58 var7 = var10;
59 varonce6 = var7;
60 }
61 {
62 var11 = string__FlatString__to_cstring(var7);
63 }
64 {
65 { /* Inline environ#NativeString#get_environ (var11) on <var11:NativeString> */
66 var14 = string_NativeString_NativeString_get_environ_0(var11);
67 var12 = var14;
68 goto RET_LABEL13;
69 RET_LABEL13:(void)0;
70 }
71 }
72 var5 = var12;
73 varonce = var5;
74 varonce_guard = 1;
75 }
76 var_nulstr = var5;
77 {
78 { /* Inline kernel#Object#!= (var_res,var_nulstr) on <var_res:NativeString> */
79 var18 = BOX_string__NativeString(var_nulstr); /* autobox from NativeString to nullable Object */
80 var_other = var18;
81 { /* Inline kernel#Object#== (var_res,var_other) on <var_res:NativeString> */
82 var_other21 = var_other;
83 {
84 { /* Inline kernel#Object#is_same_instance (var_res,var_other21) on <var_res:NativeString> */
85 var24 = BOX_string__NativeString(var_res); /* autobox from NativeString to Object */
86 var25 = var24 == var_other21 || (var_other21 != NULL && var24->class == var_other21->class && ((var24->class->box_kind == 1 && ((struct instance_kernel__Int*)var24)->value == ((struct instance_kernel__Int*)var_other21)->value) || (var24->class->box_kind == 2 && ((struct instance_kernel__Bool*)var24)->value == ((struct instance_kernel__Bool*)var_other21)->value) || (var24->class->box_kind == 3 && ((struct instance_kernel__Char*)var24)->value == ((struct instance_kernel__Char*)var_other21)->value) || (var24->class->box_kind == 4 && ((struct instance_kernel__Float*)var24)->value == ((struct instance_kernel__Float*)var_other21)->value) || (var24->class->box_kind == 5 && ((struct instance_string__NativeString*)var24)->value == ((struct instance_string__NativeString*)var_other21)->value) || (var24->class->box_kind == 6 && ((struct instance_kernel__Pointer*)var24)->value == ((struct instance_kernel__Pointer*)var_other21)->value)));
87 var22 = var25;
88 goto RET_LABEL23;
89 RET_LABEL23:(void)0;
90 }
91 }
92 var19 = var22;
93 goto RET_LABEL20;
94 RET_LABEL20:(void)0;
95 }
96 var26 = !var19;
97 var16 = var26;
98 goto RET_LABEL17;
99 RET_LABEL17:(void)0;
100 }
101 var15 = var16;
102 }
103 if (var15){
104 {
105 var27 = string__NativeString__to_s(var_res);
106 }
107 var = var27;
108 goto RET_LABEL;
109 } else {
110 if (varonce28) {
111 var29 = varonce28;
112 } else {
113 var30 = "";
114 var31 = 0;
115 var32 = string__NativeString__to_s_with_length(var30, var31);
116 var29 = var32;
117 varonce28 = var29;
118 }
119 var = var29;
120 goto RET_LABEL;
121 }
122 RET_LABEL:;
123 return var;
124 }
125 /* method environ#String#environ for (self: Object): String */
126 val* VIRTUAL_environ__String__environ(val* self) {
127 val* var /* : String */;
128 val* var1 /* : String */;
129 var1 = environ__String__environ(self);
130 var = var1;
131 RET_LABEL:;
132 return var;
133 }
134 /* method environ#NativeString#get_environ for (self: NativeString): NativeString */
135 char* environ__NativeString__get_environ(char* self) {
136 char* var /* : NativeString */;
137 void* var1 /* : NativeString for extern */;
138 var1 = string_NativeString_NativeString_get_environ_0(self);
139 var = var1;
140 goto RET_LABEL;
141 RET_LABEL:;
142 return var;
143 }
144 /* method environ#NativeString#get_environ for (self: Object): NativeString */
145 char* VIRTUAL_environ__NativeString__get_environ(val* self) {
146 char* var /* : NativeString */;
147 char* var1 /* : NativeString */;
148 void* var3 /* : NativeString for extern */;
149 char* var4 /* : NativeString */;
150 { /* Inline environ#NativeString#get_environ (self) on <self:Object(NativeString)> */
151 var4 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
152 var3 = string_NativeString_NativeString_get_environ_0(var4);
153 var1 = var3;
154 goto RET_LABEL2;
155 RET_LABEL2:(void)0;
156 }
157 var = var1;
158 RET_LABEL:;
159 return var;
160 }