diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c index f01469774..a969e3bb4 100644 --- a/libguile/bytevectors.c +++ b/libguile/bytevectors.c @@ -1667,7 +1667,7 @@ double_from_foreign_endianness (const union scm_ieee754_double *source) /* FIXME: SCM_VALIDATE_REAL rejects integers, etc. grrr */ #define VALIDATE_REAL(pos, v) \ do { \ - SCM_ASSERT_TYPE (scm_is_true (scm_rational_p (v)), v, pos, FUNC_NAME, "real"); \ + SCM_ASSERT_TYPE (scm_is_real (v), v, pos, FUNC_NAME, "real"); \ } while (0) /* Templace getters and setters. */ diff --git a/test-suite/tests/srfi-4.test b/test-suite/tests/srfi-4.test index d7e5b1adf..0cdfb6699 100644 --- a/test-suite/tests/srfi-4.test +++ b/test-suite/tests/srfi-4.test @@ -352,7 +352,10 @@ (pass-if "make-f32vector" (equal? (list->f32vector '(7 7 7 7)) - (make-f32vector 4 7)))) + (make-f32vector 4 7))) + + (pass-if "+inf.0, -inf.0, +nan.0 in f32vector" + (f32vector? #f32(+inf.0 -inf.0 +nan.0)))) (with-test-prefix "f64 vectors" @@ -389,4 +392,7 @@ (pass-if "make-f64vector" (equal? (list->f64vector '(7 7 7 7)) - (make-f64vector 4 7)))) + (make-f64vector 4 7))) + + (pass-if "+inf.0, -inf.0, +nan.0 in f64vector" + (f64vector? #f64(+inf.0 -inf.0 +nan.0))))