(integer_all_onesp): Test to size of mode, not TYPE_PRECISION.
authorRichard Kenner <kenner@gcc.gnu.org>
Fri, 21 Apr 1995 12:11:06 +0000 (08:11 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Fri, 21 Apr 1995 12:11:06 +0000 (08:11 -0400)
From-SVN: r9427

gcc/tree.c

index 3310e88bd766c9350dbb4533ea85401039a09b81..1b32348c7e56aca0924168c9a91c3bedcbd8b6f9 100644 (file)
@@ -1530,7 +1530,9 @@ integer_all_onesp (expr)
   if (!uns)
     return TREE_INT_CST_LOW (expr) == -1 && TREE_INT_CST_HIGH (expr) == -1;
 
-  prec = TYPE_PRECISION (TREE_TYPE (expr));
+  /* Note that using TYPE_PRECISION here is wrong.  We care about the
+     actual bits, not the (arbitrary) range of the type.  */
+  prec = GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (expr)));
   if (prec >= HOST_BITS_PER_WIDE_INT)
     {
       int high_value, shift_amount;