1 typedef _Bool bool; 2 typedef unsigned char uchar; 3 typedef unsigned short ushort; 4 typedef unsigned int uint; 5 typedef unsigned long ulong; 6 typedef long long longlong; 7 typedef unsigned long long ulonglong; 8 9 #define DEFINE_CAST(from, to) \ 10 static to from##2##to(from x) { \ 11 return x; \ 12 } 13 14 #define DEFINE_CASTS(from) \ 15 DEFINE_CAST(from, bool) \ 16 DEFINE_CAST(from, char) \ 17 DEFINE_CAST(from, uchar) \ 18 DEFINE_CAST(from, short) \ 19 DEFINE_CAST(from, ushort) \ 20 DEFINE_CAST(from, int) \ 21 DEFINE_CAST(from, uint) \ 22 DEFINE_CAST(from, long) \ 23 DEFINE_CAST(from, ulong) \ 24 DEFINE_CAST(from, longlong) \ 25 DEFINE_CAST(from, ulonglong) \ 26 /* 27 DEFINE_CAST(from, float) \ 28 DEFINE_CAST(from, double) 29 */ 30 31 DEFINE_CASTS(bool) 32 DEFINE_CASTS(char) 33 DEFINE_CASTS(uchar) 34 DEFINE_CASTS(short) 35 DEFINE_CASTS(ushort) 36 DEFINE_CASTS(int) 37 DEFINE_CASTS(uint) 38 DEFINE_CASTS(long) 39 DEFINE_CASTS(ulong) 40 DEFINE_CASTS(longlong) 41 DEFINE_CASTS(ulonglong) 42 /* 43 DEFINE_CASTS(float) 44 DEFINE_CASTS(double) 45 */ 46 47 /* 48 * check-name: Cast code generation 49 * check-command: sparsec -c $file -o tmp.o 50 */ 51