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