diff options
Diffstat (limited to 'libguile/numbers.h')
-rw-r--r-- | libguile/numbers.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libguile/numbers.h b/libguile/numbers.h index 10e8eddc9..8bf211d6f 100644 --- a/libguile/numbers.h +++ b/libguile/numbers.h @@ -126,12 +126,14 @@ * differ in one bit: This way, checking if an object is an inexact number can * be done quickly (using the TYP16S macro). */ -/* Number subtype 1 to 3 (note the dependency on the predicate SCM_NUMP) */ +/* Number subtype 1 to 3 (note the dependency on the predicates SCM_INEXACTP + * and SCM_NUMP) */ #define scm_tc16_big (scm_tc7_number + 1 * 256L) #define scm_tc16_real (scm_tc7_number + 2 * 256L) #define scm_tc16_complex (scm_tc7_number + 3 * 256L) -#define SCM_INEXACTP(x) (!SCM_IMP (x) && SCM_TYP16S (x) == scm_tc16_real) +#define SCM_INEXACTP(x) \ + (!SCM_IMP (x) && (0xfeff & SCM_CELL_TYPE (x)) == scm_tc16_real) #define SCM_REALP(x) (!SCM_IMP (x) && SCM_TYP16 (x) == scm_tc16_real) #define SCM_COMPLEXP(x) (!SCM_IMP (x) && SCM_TYP16 (x) == scm_tc16_complex) |