27 |
scm_out_of_range (s_caller, num); |
scm_out_of_range (s_caller, num); |
28 |
#endif |
#endif |
29 |
|
|
30 |
if (sizeof (ITYPE) >= sizeof (scm_t_signed_bits)) |
#if SIZEOF_ITYPE >= SIZEOF_SCM_T_BITS |
31 |
/* can't fit anything too big for this type in an inum |
/* the target type is large enough to hold any possible inum */ |
32 |
anyway */ |
return (ITYPE) n; |
33 |
return (ITYPE) n; |
#else |
34 |
else |
/* an inum can be out of range, so check */ |
35 |
{ /* an inum can be out of range, so check */ |
#ifdef UNSIGNED |
36 |
if (((ITYPE)n) != n) |
/* n is known to be >= 0 */ |
37 |
scm_out_of_range (s_caller, num); |
if ((scm_t_bits) n > UNSIGNED_ITYPE_MAX) |
38 |
else |
scm_out_of_range (s_caller, num); |
39 |
return (ITYPE) n; |
#else |
40 |
} |
if (((ITYPE)n) != n) |
41 |
|
scm_out_of_range (s_caller, num); |
42 |
|
#endif |
43 |
|
return (ITYPE) n; |
44 |
|
#endif /* SIZEOF_ITYPE >= SIZEOF_SCM_T_BITS */ |
45 |
} |
} |
46 |
else if (SCM_BIGP (num)) |
else if (SCM_BIGP (num)) |
47 |
{ /* bignum */ |
{ /* bignum */ |
82 |
scm_out_of_range (s_caller, num); |
scm_out_of_range (s_caller, num); |
83 |
} |
} |
84 |
#endif |
#endif |
85 |
|
|
86 |
#else /* SIZEOF_ITYPE >= SIZEOF_SCM_T_BITS */ |
#else /* SIZEOF_ITYPE >= SIZEOF_SCM_T_BITS */ |
87 |
scm_out_of_range (s_caller, num); |
scm_out_of_range (s_caller, num); |
88 |
#endif |
#endif |
89 |
|
|
90 |
} |
} |