diff --git a/src/bigint.c b/src/bigint.c index bec9e77b6..2ac5130c6 100644 --- a/src/bigint.c +++ b/src/bigint.c @@ -390,10 +390,10 @@ ulshift(mrb_state *mrb, mpz_t *c1, mpz_t *a, int n) mpz_set(mrb,c1,a); else { mpz_t c; size_t i; - mp_limb rm = (((mp_limb)1<sz + 1)); for (i=0; isz; i++) { - c.p[i] = (((mp_limb)a->p[i] << n) | cc) & LMAX; + c.p[i] = (((mp_ulimb)a->p[i] << n) | cc) & LMAX; cc = (a->p[i] & rm) >> (DIGITBITS -n); } c.p[i] = cc;