1 typedef unsigned int uint; 2 typedef unsigned long ulong; 3 4 static int uint_2_int(void) { return (int)123U; } 5 static int long_2_int(void) { return (int)123L; } 6 static int ulong_2_int(void) { return (int)123UL; } 7 static int vptr_2_int(void) { return (int)((void*)123); } 8 static int iptr_2_int(void) { return (int)((int*)128); } 9 static int float_2_int(void) { return (int)1.123F; } 10 static int double_2_int(void) { return (int)1.123L; } 11 static uint int_2_uint(void) { return (uint)123; } 12 static uint long_2_uint(void) { return (uint)123L; } 13 static uint ulong_2_uint(void) { return (uint)123UL; } 14 static uint vptr_2_uint(void) { return (uint)((void*)123); } 15 static uint iptr_2_uint(void) { return (uint)((int*)128); } 16 static uint float_2_uint(void) { return (uint)1.123F; } 17 static uint double_2_uint(void) { return (uint)1.123L; } 18 static long int_2_long(void) { return (long)123; } 19 static long uint_2_long(void) { return (long)123U; } 20 static long ulong_2_long(void) { return (long)123UL; } 21 static long vptr_2_long(void) { return (long)((void*)123); } 22 static long iptr_2_long(void) { return (long)((int*)128); } 23 static long float_2_long(void) { return (long)1.123F; } 24 static long double_2_long(void) { return (long)1.123L; } 25 static ulong int_2_ulong(void) { return (ulong)123; } 26 static ulong uint_2_ulong(void) { return (ulong)123U; } 27 static ulong long_2_ulong(void) { return (ulong)123L; } 28 static ulong vptr_2_ulong(void) { return (ulong)((void*)123); } 29 static ulong iptr_2_ulong(void) { return (ulong)((int*)128); } 30 static ulong float_2_ulong(void) { return (ulong)1.123F; } 31 static ulong double_2_ulong(void) { return (ulong)1.123L; } 32 static void * int_2_vptr(void) { return (void *)123; } 33 static void * uint_2_vptr(void) { return (void *)123U; } 34 static void * long_2_vptr(void) { return (void *)123L; } 35 static void * ulong_2_vptr(void) { return (void *)123UL; } 36 static void * iptr_2_vptr(void) { return (void *)((int*)128); } 37 static int * int_2_iptr(void) { return (int *)123; } 38 static int * uint_2_iptr(void) { return (int *)123U; } 39 static int * long_2_iptr(void) { return (int *)123L; } 40 static int * ulong_2_iptr(void) { return (int *)123UL; } 41 static int * vptr_2_iptr(void) { return (int *)((void*)123); } 42 static float int_2_float(void) { return (float)123; } 43 static float uint_2_float(void) { return (float)123U; } 44 static float long_2_float(void) { return (float)123L; } 45 static float ulong_2_float(void) { return (float)123UL; } 46 static float double_2_float(void) { return (float)1.123L; } 47 static double int_2_double(void) { return (double)123; } 48 static double uint_2_double(void) { return (double)123U; } 49 static double long_2_double(void) { return (double)123L; } 50 static double ulong_2_double(void) { return (double)123UL; } 51 static double float_2_double(void) { return (double)1.123F; } 52 53 /* 54 * check-name: cast-constants.c 55 * check-command: test-linearize -m64 $file 56 * check-assert: sizeof(void *) == 8 && sizeof(long) == 8 && sizeof(double) == 8 57 * 58 * check-output-start 59 uint_2_int: 60 .L0: 61 <entry-point> 62 ret.32 $123 63 64 65 long_2_int: 66 .L2: 67 <entry-point> 68 ret.32 $123 69 70 71 ulong_2_int: 72 .L4: 73 <entry-point> 74 ret.32 $123 75 76 77 vptr_2_int: 78 .L6: 79 <entry-point> 80 ret.32 $123 81 82 83 iptr_2_int: 84 .L8: 85 <entry-point> 86 ret.32 $128 87 88 89 float_2_int: 90 .L10: 91 <entry-point> 92 ret.32 $1 93 94 95 double_2_int: 96 .L12: 97 <entry-point> 98 ret.32 $1 99 100 101 int_2_uint: 102 .L14: 103 <entry-point> 104 ret.32 $123 105 106 107 long_2_uint: 108 .L16: 109 <entry-point> 110 ret.32 $123 111 112 113 ulong_2_uint: 114 .L18: 115 <entry-point> 116 ret.32 $123 117 118 119 vptr_2_uint: 120 .L20: 121 <entry-point> 122 ret.32 $123 123 124 125 iptr_2_uint: 126 .L22: 127 <entry-point> 128 ret.32 $128 129 130 131 float_2_uint: 132 .L24: 133 <entry-point> 134 ret.32 $1 135 136 137 double_2_uint: 138 .L26: 139 <entry-point> 140 ret.32 $1 141 142 143 int_2_long: 144 .L28: 145 <entry-point> 146 ret.64 $123 147 148 149 uint_2_long: 150 .L30: 151 <entry-point> 152 ret.64 $123 153 154 155 ulong_2_long: 156 .L32: 157 <entry-point> 158 ret.64 $123 159 160 161 vptr_2_long: 162 .L34: 163 <entry-point> 164 ret.64 $123 165 166 167 iptr_2_long: 168 .L36: 169 <entry-point> 170 ret.64 $128 171 172 173 float_2_long: 174 .L38: 175 <entry-point> 176 ret.64 $1 177 178 179 double_2_long: 180 .L40: 181 <entry-point> 182 ret.64 $1 183 184 185 int_2_ulong: 186 .L42: 187 <entry-point> 188 ret.64 $123 189 190 191 uint_2_ulong: 192 .L44: 193 <entry-point> 194 ret.64 $123 195 196 197 long_2_ulong: 198 .L46: 199 <entry-point> 200 ret.64 $123 201 202 203 vptr_2_ulong: 204 .L48: 205 <entry-point> 206 ret.64 $123 207 208 209 iptr_2_ulong: 210 .L50: 211 <entry-point> 212 ret.64 $128 213 214 215 float_2_ulong: 216 .L52: 217 <entry-point> 218 ret.64 $1 219 220 221 double_2_ulong: 222 .L54: 223 <entry-point> 224 ret.64 $1 225 226 227 int_2_vptr: 228 .L56: 229 <entry-point> 230 ret.64 $123 231 232 233 uint_2_vptr: 234 .L58: 235 <entry-point> 236 ret.64 $123 237 238 239 long_2_vptr: 240 .L60: 241 <entry-point> 242 ret.64 $123 243 244 245 ulong_2_vptr: 246 .L62: 247 <entry-point> 248 ret.64 $123 249 250 251 iptr_2_vptr: 252 .L64: 253 <entry-point> 254 ret.64 $128 255 256 257 int_2_iptr: 258 .L66: 259 <entry-point> 260 ret.64 $123 261 262 263 uint_2_iptr: 264 .L68: 265 <entry-point> 266 ret.64 $123 267 268 269 long_2_iptr: 270 .L70: 271 <entry-point> 272 ret.64 $123 273 274 275 ulong_2_iptr: 276 .L72: 277 <entry-point> 278 ret.64 $123 279 280 281 vptr_2_iptr: 282 .L74: 283 <entry-point> 284 ret.64 $123 285 286 287 int_2_float: 288 .L76: 289 <entry-point> 290 setfval.32 %r39 <- 1.230000e+02 291 ret.32 %r39 292 293 294 uint_2_float: 295 .L78: 296 <entry-point> 297 setfval.32 %r41 <- 1.230000e+02 298 ret.32 %r41 299 300 301 long_2_float: 302 .L80: 303 <entry-point> 304 setfval.32 %r43 <- 1.230000e+02 305 ret.32 %r43 306 307 308 ulong_2_float: 309 .L82: 310 <entry-point> 311 setfval.32 %r45 <- 1.230000e+02 312 ret.32 %r45 313 314 315 double_2_float: 316 .L84: 317 <entry-point> 318 setfval.32 %r47 <- 1.123000e+00 319 ret.32 %r47 320 321 322 int_2_double: 323 .L86: 324 <entry-point> 325 setfval.64 %r49 <- 1.230000e+02 326 ret.64 %r49 327 328 329 uint_2_double: 330 .L88: 331 <entry-point> 332 setfval.64 %r51 <- 1.230000e+02 333 ret.64 %r51 334 335 336 long_2_double: 337 .L90: 338 <entry-point> 339 setfval.64 %r53 <- 1.230000e+02 340 ret.64 %r53 341 342 343 ulong_2_double: 344 .L92: 345 <entry-point> 346 setfval.64 %r55 <- 1.230000e+02 347 ret.64 %r55 348 349 350 float_2_double: 351 .L94: 352 <entry-point> 353 setfval.64 %r57 <- 1.123000e+00 354 ret.64 %r57 355 356 357 * check-output-end 358 */ 359