Merge remote-tracking branch 'origin/stable-2.0'
[bpt/guile.git] / libguile / numbers.c
index 20877d3..63a6501 100644 (file)
@@ -179,7 +179,7 @@ static mpz_t z_negative_one;
 
 /* Clear the `mpz_t' embedded in bignum PTR.  */
 static void
-finalize_bignum (GC_PTR ptr, GC_PTR data)
+finalize_bignum (void *ptr, void *data)
 {
   SCM bignum;
 
@@ -8906,7 +8906,8 @@ SCM_PRIMITIVE_GENERIC (scm_angle, "angle", 1, 0, 0,
     }
   else if (SCM_REALP (z))
     {
-      if (SCM_REAL_VALUE (z) >= 0)
+      double x = SCM_REAL_VALUE (z);
+      if (x > 0.0 || double_is_non_negative_zero (x))
         return flo0;
       else
         return scm_from_double (atan2 (0.0, -1.0));