[project @ 1998-11-26 09:17:22 by sof]
[ghc-hetmet.git] / ghc / runtime / gmp / mpz_get_si.c
index 9cddf4b..b2b87a7 100644 (file)
@@ -34,7 +34,7 @@ mpz_get_si (integer)
   if (size > 0)
     return integer->d[0] % ((mp_limb) 1 << (BITS_PER_MP_LIMB - 1));
   else if (size < 0)
-    return -(integer->d[0] % ((mp_limb) 1 << (BITS_PER_MP_LIMB - 1)));
+    return ~((integer->d[0] - 1) % ((mp_limb) 1 << (BITS_PER_MP_LIMB - 1)));
   else
     return 0;
 }