@@ -108,13 +108,15 @@ let ic2 = int_constant_expr 2
108108let ic4 = int_constant_expr 4
109109let ic8 = int_constant_expr 8
110110let ic16 = int_constant_expr 16
111+ let ic32 = int_constant_expr 32
111112
112113
113114let symbolic_sizes = {
114115 sizeof_short = mkvar " sizeof_short" ;
115116 sizeof_int = mkvar " sizeof_int" ;
116117 sizeof_bool = mkvar " sizeof_bool" ;
117118 sizeof_long = mkvar " sizeof_long" ;
119+ sizeof_int128 = mkvar " sizeof_int128" ;
118120
119121 sizeof_longlong = mkvar " sizeof_longlong" ;
120122 sizeof_ptr = mkvar " sizeof_ptr" ;
@@ -123,13 +125,18 @@ let symbolic_sizes = {
123125 sizeof_double = mkvar " sizeof_double" ;
124126
125127 sizeof_longdouble = mkvar " sizeof_longdouble" ;
128+ sizeof_complex_float = mkvar " sizeof_complex_float" ;
129+ sizeof_complex_double = mkvar " sizeof_complex_double" ;
130+ sizeof_complex_longdouble = mkvar " sizeof_complex_longdouble" ;
131+
126132 sizeof_void = mkvar " sizeof_void" ;
127133 sizeof_fun = mkvar " sizeof_fun" ;
128134
129135 alignof_short = mkvar " alignof_short" ;
130136 alignof_int = mkvar " alignof_int" ;
131137 alignof_bool = mkvar " alignof_bool" ;
132138 alignof_long = mkvar " alignof_long" ;
139+ alignof_int128 = mkvar " alignof_int128" ;
133140
134141 alignof_longlong = mkvar " alignof_longlong" ;
135142 alignof_ptr = mkvar " alignof_ptr" ;
@@ -138,74 +145,96 @@ let symbolic_sizes = {
138145
139146 alignof_double = mkvar " alignof_double" ;
140147 alignof_longdouble = mkvar " alignof_longdouble" ;
148+ alignof_complex_float = mkvar " alignof_complex_float" ;
149+ alignof_complex_double = mkvar " alignof_complex_double" ;
150+ alignof_complex_longdouble = mkvar " alignof_complex_longdouble" ;
151+
141152 alignof_str = mkvar " alignof_str" ;
142153 alignof_fun = mkvar " alignof_fun" ;
143154 alignof_aligned = mkvar " alignof_aligned"
144155 }
145156
146157
147- let linux_64_machine_sizes = { (* sizes in bytes for linux server, from cil output *)
158+ (* sizes in bytes for linux server, from cil output *)
159+ let linux_64_machine_sizes = {
148160 sizeof_short = ic2;
149161 sizeof_int = ic4;
150162 sizeof_bool = ic1;
151163 sizeof_long = ic8;
164+ sizeof_int128 = ic16;
152165
153166 sizeof_longlong = ic8;
154167 sizeof_ptr = ic8;
155168 sizeof_enum = ic4;
156169 sizeof_float = ic4;
157170 sizeof_double = ic8;
158-
159171 sizeof_longdouble = ic16;
172+ sizeof_complex_float = ic8;
173+ sizeof_complex_double = ic16;
174+ sizeof_complex_longdouble = ic32;
175+
160176 sizeof_void = ic1;
161177 sizeof_fun = ic1;
162178
163179 alignof_short = ic2;
164180 alignof_int = ic4;
165181 alignof_bool = ic1;
166182 alignof_long = ic8;
183+ alignof_int128 = ic16;
167184
168185 alignof_longlong = ic8;
169186 alignof_ptr = ic8;
170187 alignof_enum = ic4;
171188 alignof_float = ic4;
172-
173189 alignof_double = ic8;
174190 alignof_longdouble = ic16;
191+ alignof_complex_float = ic8;
192+ alignof_complex_double = ic16;
193+ alignof_complex_longdouble = ic32;
194+
175195 alignof_str = ic1;
176196 alignof_fun = ic1;
177197 alignof_aligned = ic16
178198 }
179199
180200
181- let linux_32_machine_sizes = { (* sizes in bytes for linux 32 bits, derived from 64 bits *)
201+ (* sizes in bytes for linux 32 bits, derived from 64 bits *)
202+ let linux_32_machine_sizes = {
182203 sizeof_short = ic2;
183204 sizeof_int = ic4;
184205 sizeof_bool = ic1;
185206 sizeof_long = ic4;
207+ sizeof_int128 = ic16;
186208
187209 sizeof_longlong = ic8;
188210 sizeof_ptr = ic4;
189211 sizeof_enum = ic4;
190212 sizeof_float = ic4;
191213 sizeof_double = ic8;
192-
193214 sizeof_longdouble = ic8;
215+ sizeof_complex_float = ic8;
216+ sizeof_complex_double = ic16;
217+ sizeof_complex_longdouble = ic16;
218+
194219 sizeof_void = ic1;
195220 sizeof_fun = ic1;
196221
197222 alignof_short = ic2;
198223 alignof_int = ic4;
199224 alignof_bool = ic1;
200225 alignof_long = ic4;
226+ alignof_int128 = ic16;
201227
202228 alignof_longlong = ic8;
203229 alignof_ptr = ic4;
204230 alignof_enum = ic4;
205231 alignof_float = ic4;
206-
207232 alignof_double = ic8;
208233 alignof_longdouble = ic8;
234+ alignof_complex_float = ic8;
235+ alignof_complex_double = ic16;
236+ alignof_complex_longdouble = ic16;
237+
209238 alignof_str = ic1;
210239 alignof_fun = ic1;
211240 alignof_aligned = ic8
@@ -217,29 +246,37 @@ let linux_16_machine_sizes = {
217246 sizeof_int = ic2;
218247 sizeof_bool = ic1;
219248 sizeof_long = ic4;
249+ sizeof_int128 = ic16;
220250
221251 sizeof_longlong = ic4;
222252 sizeof_ptr = ic2;
223253 sizeof_enum = ic2;
224254 sizeof_float = ic2;
225255 sizeof_double = ic4;
226-
227256 sizeof_longdouble = ic4;
257+ sizeof_complex_float = ic4;
258+ sizeof_complex_double = ic8;
259+ sizeof_complex_longdouble = ic8;
260+
228261 sizeof_void = ic1;
229262 sizeof_fun = ic1;
230263
231264 alignof_short = ic2;
232265 alignof_int = ic2;
233266 alignof_bool = ic1;
234267 alignof_long = ic4;
268+ alignof_int128 = ic16;
235269
236270 alignof_longlong = ic4;
237271 alignof_ptr = ic2;
238272 alignof_enum = ic2;
239273 alignof_float = ic2;
240-
241274 alignof_double = ic4;
242275 alignof_longdouble = ic4;
276+ alignof_complex_float = ic4;
277+ alignof_complex_double = ic8;
278+ alignof_complex_longdouble = ic8;
279+
243280 alignof_str = ic1;
244281 alignof_fun = ic1;
245282 alignof_aligned = ic4
0 commit comments