From 0c8eb9985d66ce596412f676313d1dcbeaebd210 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 24 Aug 2004 11:23:11 -0700 Subject: [PATCH] * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning. From-SVN: r86504 --- gcc/fortran/ChangeLog | 4 ++++ gcc/fortran/trans-const.c | 11 ++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 1c95c96f1a2..7d9fdfe9816 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,7 @@ +2004-08-24 Richard Henderson + + * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning. + 2004-08-24 Tobias Schlueter * resolve.c (merge_argument_lists): Revert unintentionally diff --git a/gcc/fortran/trans-const.c b/gcc/fortran/trans-const.c index c2a68b7732a..110c0db4237 100644 --- a/gcc/fortran/trans-const.c +++ b/gcc/fortran/trans-const.c @@ -187,21 +187,22 @@ gfc_conv_mpz_to_tree (mpz_t i, int kind) else if (sizeof (mp_limb_t) == 2 * sizeof (HOST_WIDE_INT)) { mp_limb_t limb0 = mpz_getlimbn (i, 0); - int count = (sizeof (mp_limb_t) - sizeof (HOST_WIDE_INT)) * CHAR_BIT; + int shift = (sizeof (mp_limb_t) - sizeof (HOST_WIDE_INT)) * CHAR_BIT; low = limb0; - high = limb0 >> count; + high = limb0 >> shift; } else if (sizeof (mp_limb_t) < sizeof (HOST_WIDE_INT)) { + int shift = sizeof (mp_limb_t) * CHAR_BIT; int n, count = sizeof (HOST_WIDE_INT) / sizeof (mp_limb_t); for (low = n = 0; n < count; ++n) { - low <<= sizeof (mp_limb_t) * CHAR_BIT; + low <<= shift; low |= mpz_getlimbn (i, n); } - for (high = 0; n < 2*count; ++n) + for (high = 0, n = count; n < 2*count; ++n) { - high <<= sizeof (mp_limb_t) * CHAR_BIT; + high <<= shift; high |= mpz_getlimbn (i, n); } } -- 2.30.2