Mercurial > projects > ldc
annotate dmd/impcnvgen.c @ 1064:f0b6549055ab
Make LDC work with LLVM trunk (s/LinkOnceLinkage/LinkOnceOdrLinkage/)
Also moved the #defines for linkage types into a separate header instead of
mars.h so we can #include revisions.h without having to rebuild the entire
frontend every time we update.
(I'm using revisions.h to get the LLVM revision for use in preprocessor
conditionals. It should work with LLVM release 2.5, old trunk and new trunk)
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Sun, 08 Mar 2009 16:13:10 +0100 |
parents | a26b0c5d5942 |
children |
rev | line source |
---|---|
1 | 1 |
2 // Copyright (c) 1999-2006 by Digital Mars | |
3 // All Rights Reserved | |
4 // written by Walter Bright | |
5 // http://www.digitalmars.com | |
6 // License for redistribution is by either the Artistic License | |
7 // in artistic.txt, or the GNU General Public License in gnu.txt. | |
8 // See the included readme.txt for details. | |
9 | |
10 #include <stdio.h> | |
11 #include <stdlib.h> | |
12 | |
13 #include "mtype.h" | |
14 | |
15 enum TY impcnvResult[TMAX][TMAX]; | |
16 enum TY impcnvType1[TMAX][TMAX]; | |
17 enum TY impcnvType2[TMAX][TMAX]; | |
18 int impcnvWarn[TMAX][TMAX]; | |
19 | |
20 int integral_promotion(int t) | |
21 { | |
22 switch (t) | |
23 { | |
24 case Tchar: | |
25 case Twchar: | |
26 case Tbit: | |
27 case Tbool: | |
28 case Tint8: | |
29 case Tuns8: | |
30 case Tint16: | |
31 case Tuns16: return Tint32; | |
32 case Tdchar: return Tuns32; | |
33 default: return t; | |
34 } | |
35 } | |
36 | |
37 void init() | |
38 { int i, j; | |
39 | |
40 // Set conversion tables | |
41 for (i = 0; i < TMAX; i++) | |
42 for (j = 0; j < TMAX; j++) | |
43 { impcnvResult[i][j] = Terror; | |
44 impcnvType1[i][j] = Terror; | |
45 impcnvType2[i][j] = Terror; | |
46 impcnvWarn[i][j] = 0; | |
47 } | |
48 | |
49 #define X(t1,t2, nt1,nt2, rt) \ | |
50 impcnvResult[t1][t2] = rt; \ | |
51 impcnvType1[t1][t2] = nt1; \ | |
52 impcnvType2[t1][t2] = nt2; | |
53 | |
54 /* ======================= */ | |
55 | |
56 X(Tbit,Tbit, Tint32,Tint32, Tint32) | |
57 X(Tbit,Tint8, Tint32,Tint32, Tint32) | |
58 X(Tbit,Tuns8, Tint32,Tint32, Tint32) | |
59 X(Tbit,Tint16, Tint32,Tint32, Tint32) | |
60 X(Tbit,Tuns16, Tint32,Tint32, Tint32) | |
61 X(Tbit,Tint32, Tint32,Tint32, Tint32) | |
62 X(Tbit,Tuns32, Tuns32,Tuns32, Tuns32) | |
63 X(Tbit,Tint64, Tint64,Tint64, Tint64) | |
64 X(Tbit,Tuns64, Tuns64,Tuns64, Tuns64) | |
65 | |
66 X(Tbit,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
67 X(Tbit,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
68 X(Tbit,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
69 X(Tbit,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
70 X(Tbit,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
71 X(Tbit,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
72 X(Tbit,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
73 X(Tbit,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
74 X(Tbit,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
75 | |
76 /* ======================= */ | |
77 | |
78 X(Tbool,Tbool, Tbool,Tbool, Tbool) | |
79 X(Tbool,Tint8, Tint32,Tint32, Tint32) | |
80 X(Tbool,Tuns8, Tint32,Tint32, Tint32) | |
81 X(Tbool,Tint16, Tint32,Tint32, Tint32) | |
82 X(Tbool,Tuns16, Tint32,Tint32, Tint32) | |
83 X(Tbool,Tint32, Tint32,Tint32, Tint32) | |
84 X(Tbool,Tuns32, Tuns32,Tuns32, Tuns32) | |
85 X(Tbool,Tint64, Tint64,Tint64, Tint64) | |
86 X(Tbool,Tuns64, Tuns64,Tuns64, Tuns64) | |
87 | |
88 X(Tbool,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
89 X(Tbool,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
90 X(Tbool,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
91 X(Tbool,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
92 X(Tbool,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
93 X(Tbool,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
94 X(Tbool,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
95 X(Tbool,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
96 X(Tbool,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
97 | |
98 /* ======================= */ | |
99 | |
100 X(Tint8,Tint8, Tint32,Tint32, Tint32) | |
101 X(Tint8,Tuns8, Tint32,Tint32, Tint32) | |
102 X(Tint8,Tint16, Tint32,Tint32, Tint32) | |
103 X(Tint8,Tuns16, Tint32,Tint32, Tint32) | |
104 X(Tint8,Tint32, Tint32,Tint32, Tint32) | |
105 X(Tint8,Tuns32, Tuns32,Tuns32, Tuns32) | |
106 X(Tint8,Tint64, Tint64,Tint64, Tint64) | |
107 X(Tint8,Tuns64, Tuns64,Tuns64, Tuns64) | |
108 | |
109 X(Tint8,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
110 X(Tint8,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
111 X(Tint8,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
112 X(Tint8,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
113 X(Tint8,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
114 X(Tint8,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
115 X(Tint8,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
116 X(Tint8,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
117 X(Tint8,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
118 | |
119 /* ======================= */ | |
120 | |
121 X(Tuns8,Tuns8, Tint32,Tint32, Tint32) | |
122 X(Tuns8,Tint16, Tint32,Tint32, Tint32) | |
123 X(Tuns8,Tuns16, Tint32,Tint32, Tint32) | |
124 X(Tuns8,Tint32, Tint32,Tint32, Tint32) | |
125 X(Tuns8,Tuns32, Tuns32,Tuns32, Tuns32) | |
126 X(Tuns8,Tint64, Tint64,Tint64, Tint64) | |
127 X(Tuns8,Tuns64, Tuns64,Tuns64, Tuns64) | |
128 | |
129 X(Tuns8,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
130 X(Tuns8,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
131 X(Tuns8,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
132 X(Tuns8,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
133 X(Tuns8,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
134 X(Tuns8,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
135 X(Tuns8,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
136 X(Tuns8,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
137 X(Tuns8,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
138 | |
139 /* ======================= */ | |
140 | |
141 X(Tint16,Tint16, Tint32,Tint32, Tint32) | |
142 X(Tint16,Tuns16, Tint32,Tint32, Tint32) | |
143 X(Tint16,Tint32, Tint32,Tint32, Tint32) | |
144 X(Tint16,Tuns32, Tuns32,Tuns32, Tuns32) | |
145 X(Tint16,Tint64, Tint64,Tint64, Tint64) | |
146 X(Tint16,Tuns64, Tuns64,Tuns64, Tuns64) | |
147 | |
148 X(Tint16,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
149 X(Tint16,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
150 X(Tint16,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
151 X(Tint16,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
152 X(Tint16,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
153 X(Tint16,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
154 X(Tint16,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
155 X(Tint16,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
156 X(Tint16,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
157 | |
158 /* ======================= */ | |
159 | |
160 X(Tuns16,Tuns16, Tint32,Tint32, Tint32) | |
161 X(Tuns16,Tint32, Tint32,Tint32, Tint32) | |
162 X(Tuns16,Tuns32, Tuns32,Tuns32, Tuns32) | |
163 X(Tuns16,Tint64, Tint64,Tint64, Tint64) | |
164 X(Tuns16,Tuns64, Tuns64,Tuns64, Tuns64) | |
165 | |
166 X(Tuns16,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
167 X(Tuns16,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
168 X(Tuns16,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
169 X(Tuns16,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
170 X(Tuns16,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
171 X(Tuns16,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
172 X(Tuns16,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
173 X(Tuns16,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
174 X(Tuns16,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
175 | |
176 /* ======================= */ | |
177 | |
178 X(Tint32,Tint32, Tint32,Tint32, Tint32) | |
179 X(Tint32,Tuns32, Tuns32,Tuns32, Tuns32) | |
180 X(Tint32,Tint64, Tint64,Tint64, Tint64) | |
181 X(Tint32,Tuns64, Tuns64,Tuns64, Tuns64) | |
182 | |
183 X(Tint32,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
184 X(Tint32,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
185 X(Tint32,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
186 X(Tint32,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
187 X(Tint32,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
188 X(Tint32,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
189 X(Tint32,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
190 X(Tint32,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
191 X(Tint32,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
192 | |
193 /* ======================= */ | |
194 | |
195 X(Tuns32,Tuns32, Tuns32,Tuns32, Tuns32) | |
196 X(Tuns32,Tint64, Tint64,Tint64, Tint64) | |
197 X(Tuns32,Tuns64, Tuns64,Tuns64, Tuns64) | |
198 | |
199 X(Tuns32,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
200 X(Tuns32,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
201 X(Tuns32,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
202 X(Tuns32,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
203 X(Tuns32,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
204 X(Tuns32,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
205 X(Tuns32,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
206 X(Tuns32,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
207 X(Tuns32,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
208 | |
209 /* ======================= */ | |
210 | |
211 X(Tint64,Tint64, Tint64,Tint64, Tint64) | |
212 X(Tint64,Tuns64, Tuns64,Tuns64, Tuns64) | |
213 | |
214 X(Tint64,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
215 X(Tint64,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
216 X(Tint64,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
217 X(Tint64,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
218 X(Tint64,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
219 X(Tint64,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
220 X(Tint64,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
221 X(Tint64,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
222 X(Tint64,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
223 | |
224 /* ======================= */ | |
225 | |
226 X(Tuns64,Tuns64, Tuns64,Tuns64, Tuns64) | |
227 | |
228 X(Tuns64,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
229 X(Tuns64,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
230 X(Tuns64,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
231 X(Tuns64,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
232 X(Tuns64,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
233 X(Tuns64,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
234 X(Tuns64,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
235 X(Tuns64,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
236 X(Tuns64,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
237 | |
238 /* ======================= */ | |
239 | |
240 X(Tfloat32,Tfloat32, Tfloat32,Tfloat32, Tfloat32) | |
241 X(Tfloat32,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
242 X(Tfloat32,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
243 | |
244 X(Tfloat32,Timaginary32, Tfloat32,Timaginary32, Tfloat32) | |
245 X(Tfloat32,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
246 X(Tfloat32,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
247 | |
248 X(Tfloat32,Tcomplex32, Tfloat32,Tcomplex32, Tcomplex32) | |
249 X(Tfloat32,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
250 X(Tfloat32,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
251 | |
252 /* ======================= */ | |
253 | |
254 X(Tfloat64,Tfloat64, Tfloat64,Tfloat64, Tfloat64) | |
255 X(Tfloat64,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
256 | |
257 X(Tfloat64,Timaginary32, Tfloat64,Timaginary64, Tfloat64) | |
258 X(Tfloat64,Timaginary64, Tfloat64,Timaginary64, Tfloat64) | |
259 X(Tfloat64,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
260 | |
261 X(Tfloat64,Tcomplex32, Tfloat64,Tcomplex64, Tcomplex64) | |
262 X(Tfloat64,Tcomplex64, Tfloat64,Tcomplex64, Tcomplex64) | |
263 X(Tfloat64,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
264 | |
265 /* ======================= */ | |
266 | |
267 X(Tfloat80,Tfloat80, Tfloat80,Tfloat80, Tfloat80) | |
268 | |
269 X(Tfloat80,Timaginary32, Tfloat80,Timaginary80, Tfloat80) | |
270 X(Tfloat80,Timaginary64, Tfloat80,Timaginary80, Tfloat80) | |
271 X(Tfloat80,Timaginary80, Tfloat80,Timaginary80, Tfloat80) | |
272 | |
273 X(Tfloat80,Tcomplex32, Tfloat80,Tcomplex80, Tcomplex80) | |
274 X(Tfloat80,Tcomplex64, Tfloat80,Tcomplex80, Tcomplex80) | |
275 X(Tfloat80,Tcomplex80, Tfloat80,Tcomplex80, Tcomplex80) | |
276 | |
277 /* ======================= */ | |
278 | |
279 X(Timaginary32,Timaginary32, Timaginary32,Timaginary32, Timaginary32) | |
280 X(Timaginary32,Timaginary64, Timaginary64,Timaginary64, Timaginary64) | |
281 X(Timaginary32,Timaginary80, Timaginary80,Timaginary80, Timaginary80) | |
282 | |
283 X(Timaginary32,Tcomplex32, Timaginary32,Tcomplex32, Tcomplex32) | |
284 X(Timaginary32,Tcomplex64, Timaginary64,Tcomplex64, Tcomplex64) | |
285 X(Timaginary32,Tcomplex80, Timaginary80,Tcomplex80, Tcomplex80) | |
286 | |
287 /* ======================= */ | |
288 | |
289 X(Timaginary64,Timaginary64, Timaginary64,Timaginary64, Timaginary64) | |
290 X(Timaginary64,Timaginary80, Timaginary80,Timaginary80, Timaginary80) | |
291 | |
292 X(Timaginary64,Tcomplex32, Timaginary64,Tcomplex64, Tcomplex64) | |
293 X(Timaginary64,Tcomplex64, Timaginary64,Tcomplex64, Tcomplex64) | |
294 X(Timaginary64,Tcomplex80, Timaginary80,Tcomplex80, Tcomplex80) | |
295 | |
296 /* ======================= */ | |
297 | |
298 X(Timaginary80,Timaginary80, Timaginary80,Timaginary80, Timaginary80) | |
299 | |
300 X(Timaginary80,Tcomplex32, Timaginary80,Tcomplex80, Tcomplex80) | |
301 X(Timaginary80,Tcomplex64, Timaginary80,Tcomplex80, Tcomplex80) | |
302 X(Timaginary80,Tcomplex80, Timaginary80,Tcomplex80, Tcomplex80) | |
303 | |
304 /* ======================= */ | |
305 | |
306 X(Tcomplex32,Tcomplex32, Tcomplex32,Tcomplex32, Tcomplex32) | |
307 X(Tcomplex32,Tcomplex64, Tcomplex64,Tcomplex64, Tcomplex64) | |
308 X(Tcomplex32,Tcomplex80, Tcomplex80,Tcomplex80, Tcomplex80) | |
309 | |
310 /* ======================= */ | |
311 | |
312 X(Tcomplex64,Tcomplex64, Tcomplex64,Tcomplex64, Tcomplex64) | |
313 X(Tcomplex64,Tcomplex80, Tcomplex80,Tcomplex80, Tcomplex80) | |
314 | |
315 /* ======================= */ | |
316 | |
317 X(Tcomplex80,Tcomplex80, Tcomplex80,Tcomplex80, Tcomplex80) | |
318 | |
319 #undef X | |
320 | |
321 #define Y(t1,t2) impcnvWarn[t1][t2] = 1; | |
322 Y(Tint8, Tbit) | |
323 Y(Tuns8, Tbit) | |
324 Y(Tint16, Tbit) | |
325 Y(Tuns16, Tbit) | |
326 Y(Tint32, Tbit) | |
327 Y(Tuns32, Tbit) | |
328 Y(Tint64, Tbit) | |
329 Y(Tuns64, Tbit) | |
330 | |
331 Y(Tuns8, Tint8) | |
332 Y(Tint16, Tint8) | |
333 Y(Tuns16, Tint8) | |
334 Y(Tint32, Tint8) | |
335 Y(Tuns32, Tint8) | |
336 Y(Tint64, Tint8) | |
337 Y(Tuns64, Tint8) | |
338 | |
339 Y(Tint8, Tuns8) | |
340 Y(Tint16, Tuns8) | |
341 Y(Tuns16, Tuns8) | |
342 Y(Tint32, Tuns8) | |
343 Y(Tuns32, Tuns8) | |
344 Y(Tint64, Tuns8) | |
345 Y(Tuns64, Tuns8) | |
346 | |
717
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
347 Y(Tint8, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
348 Y(Tint16, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
349 Y(Tuns16, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
350 Y(Tint32, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
351 Y(Tuns32, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
352 Y(Tint64, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
353 Y(Tuns64, Tchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
354 |
1 | 355 Y(Tuns16, Tint16) |
356 Y(Tint32, Tint16) | |
357 Y(Tuns32, Tint16) | |
358 Y(Tint64, Tint16) | |
359 Y(Tuns64, Tint16) | |
360 | |
361 Y(Tint16, Tuns16) | |
362 Y(Tint32, Tuns16) | |
363 Y(Tuns32, Tuns16) | |
364 Y(Tint64, Tuns16) | |
365 Y(Tuns64, Tuns16) | |
366 | |
717
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
367 Y(Tint16, Twchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
368 Y(Tint32, Twchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
369 Y(Tuns32, Twchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
370 Y(Tint64, Twchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
371 Y(Tuns64, Twchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
372 |
1 | 373 // Y(Tuns32, Tint32) |
374 Y(Tint64, Tint32) | |
375 Y(Tuns64, Tint32) | |
376 | |
377 // Y(Tint32, Tuns32) | |
378 Y(Tint64, Tuns32) | |
379 Y(Tuns64, Tuns32) | |
380 | |
717
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
381 Y(Tint64, Tdchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
382 Y(Tuns64, Tdchar) |
a26b0c5d5942
Merged DMD 1.036.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
1
diff
changeset
|
383 |
1 | 384 Y(Tint64, Tuns64) |
385 Y(Tuns64, Tint64) | |
386 | |
387 for (i = 0; i < TMAX; i++) | |
388 for (j = 0; j < TMAX; j++) | |
389 { | |
390 if (impcnvResult[i][j] == Terror) | |
391 { | |
392 impcnvResult[i][j] = impcnvResult[j][i]; | |
393 impcnvType1[i][j] = impcnvType2[j][i]; | |
394 impcnvType2[i][j] = impcnvType1[j][i]; | |
395 } | |
396 } | |
397 } | |
398 | |
399 int main() | |
400 { FILE *fp; | |
401 int i; | |
402 int j; | |
403 | |
404 init(); | |
405 | |
406 fp = fopen("impcnvtab.c","w"); | |
407 | |
408 fprintf(fp,"// This file is generated by impcnvgen.c\n"); | |
409 fprintf(fp,"#include \"mtype.h\"\n"); | |
410 | |
411 fprintf(fp,"unsigned char Type::impcnvResult[TMAX][TMAX] =\n{\n"); | |
412 for (i = 0; i < TMAX; i++) | |
413 { | |
414 for (j = 0; j < TMAX; j++) | |
415 { | |
416 fprintf(fp, "%d,",impcnvResult[i][j]); | |
417 } | |
418 fprintf(fp, "\n"); | |
419 } | |
420 fprintf(fp,"};\n"); | |
421 | |
422 fprintf(fp,"unsigned char Type::impcnvType1[TMAX][TMAX] =\n{\n"); | |
423 for (i = 0; i < TMAX; i++) | |
424 { | |
425 for (j = 0; j < TMAX; j++) | |
426 { | |
427 fprintf(fp, "%d,",impcnvType1[i][j]); | |
428 } | |
429 fprintf(fp, "\n"); | |
430 } | |
431 fprintf(fp,"};\n"); | |
432 | |
433 fprintf(fp,"unsigned char Type::impcnvType2[TMAX][TMAX] =\n{\n"); | |
434 for (i = 0; i < TMAX; i++) | |
435 { | |
436 for (j = 0; j < TMAX; j++) | |
437 { | |
438 fprintf(fp, "%d,",impcnvType2[i][j]); | |
439 } | |
440 fprintf(fp, "\n"); | |
441 } | |
442 fprintf(fp,"};\n"); | |
443 | |
444 fprintf(fp,"unsigned char Type::impcnvWarn[TMAX][TMAX] =\n{\n"); | |
445 for (i = 0; i < TMAX; i++) | |
446 { | |
447 for (j = 0; j < TMAX; j++) | |
448 { | |
449 fprintf(fp, "%d,",impcnvWarn[i][j]); | |
450 } | |
451 fprintf(fp, "\n"); | |
452 } | |
453 fprintf(fp,"};\n"); | |
454 | |
455 fclose(fp); | |
456 return EXIT_SUCCESS; | |
457 } |