yann@1440: diff --git a/mpz/remove.c b/mpz/remove.c yann@1440: --- a/mpz/remove.c yann@1440: +++ b/mpz/remove.c yann@1440: @@ -23,7 +23,7 @@ yann@1440: unsigned long int yann@1440: mpz_remove (mpz_ptr dest, mpz_srcptr src, mpz_srcptr f) yann@1440: { yann@1440: - mpz_t fpow[40]; /* inexhaustible...until year 2020 or so */ yann@1440: + mpz_t fpow[GMP_LIMB_BITS]; /* Really MP_SIZE_T_BITS */ yann@1440: mpz_t x, rem; yann@1440: unsigned long int pwr; yann@1440: int p; yann@1440: @@ -69,7 +69,7 @@ yann@1440: mpz_set (dest, x); yann@1440: } yann@1440: yann@1440: - pwr = (1 << p) - 1; yann@1440: + pwr = (1L << p) - 1; yann@1440: yann@1440: mpz_clear (fpow[p]); yann@1440: yann@1440: diff --git a/mpz/remove.c b/mpz/remove.c yann@1440: --- a/mpz/remove.c yann@1440: +++ b/mpz/remove.c yann@1440: @@ -80,7 +80,7 @@ yann@1440: mpz_tdiv_qr (x, rem, dest, fpow[p]); yann@1440: if (SIZ (rem) == 0) yann@1440: { yann@1440: - pwr += 1 << p; yann@1440: + pwr += 1L << p; yann@1440: mpz_set (dest, x); yann@1440: } yann@1440: mpz_clear (fpow[p]);