]> gcc.gnu.org Git - gcc.git/commitdiff
(force_to_mode, case ASHIFTRT): Verify mode bitsize is within
authorRichard Kenner <kenner@gcc.gnu.org>
Thu, 26 Oct 1995 12:29:18 +0000 (08:29 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Thu, 26 Oct 1995 12:29:18 +0000 (08:29 -0400)
HOST_BITS_PER_WIDE_INT before shifting by it.

From-SVN: r10513

gcc/combine.c

index 3cdfb32dd3e92a9da9811f74fd3dc78323bac265..a7d6ff4d721c9f6221f50742132758224bfc134b 100644 (file)
@@ -6018,8 +6018,9 @@ force_to_mode (x, mode, mask, reg, just_select)
     case ASHIFTRT:
       /* If we are just looking for the sign bit, we don't need this shift at
         all, even if it has a variable count.  */
-      if (mask == ((HOST_WIDE_INT) 1
-                  << (GET_MODE_BITSIZE (GET_MODE (x)) - 1)))
+      if (GET_MODE_BITSIZE (GET_MODE (x)) <= HOST_BITS_PER_WIDE_INT
+         && (mask == ((HOST_WIDE_INT) 1
+                      << (GET_MODE_BITSIZE (GET_MODE (x)) - 1))))
        return force_to_mode (XEXP (x, 0), mode, mask, reg, next_select);
 
       /* If this is a shift by a constant, get a mask that contains those bits
This page took 0.067926 seconds and 5 git commands to generate.