aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1996-04-16 17:31:44 -0700
committerJim Wilson <wilson@gcc.gnu.org>1996-04-16 17:31:44 -0700
commit8b295000784bf5c967a00c38cc2bedef5a00772b (patch)
treed7805e815c3c2f8aeb01e32296c9899f472b6f29
parent2830ec16fe286ce7b69daf98e95c72afd9b103e7 (diff)
downloadgcc-8b295000784bf5c967a00c38cc2bedef5a00772b.zip
gcc-8b295000784bf5c967a00c38cc2bedef5a00772b.tar.gz
gcc-8b295000784bf5c967a00c38cc2bedef5a00772b.tar.bz2
(do_store_flag): Rewrite last change to avoid compiler
warnings. From-SVN: r11832
-rw-r--r--gcc/expr.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 831be61..f539b49 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -10578,7 +10578,11 @@ do_store_flag (exp, target, mode, only_cheap)
fail for negative values. */
if (BITS_PER_WORD < HOST_BITS_PER_WIDE_INT
&& BITS_PER_WORD == GET_MODE_BITSIZE (TYPE_MODE (type)))
- tem = tem & (((HOST_WIDE_INT) 1 << BITS_PER_WORD) - 1);
+ /* We don't use the obvious constant shift to generate the mask,
+ because that generates compiler warnings when BITS_PER_WORD is
+ greater than or equal to HOST_BITS_PER_WIDE_INT, even though this
+ code is unreachable in that case. */
+ tem = tem & GET_MODE_MASK (word_mode);
bitnum = exact_log2 (tem);
/* If INNER is a right shift of a constant and it plus BITNUM does