(int_fits_type_p): Properly handle case of variable bounds for types.
authorRichard Kenner <kenner@gcc.gnu.org>
Wed, 9 Feb 1994 00:23:30 +0000 (19:23 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 9 Feb 1994 00:23:30 +0000 (19:23 -0500)
From-SVN: r6508

gcc/tree.c

index d363f8442ee4b9e3654a1e2d760613d34b2970f5..bd14895e186452a4eb44ae24f0b26b422fa9268a 100644 (file)
@@ -3606,13 +3606,15 @@ int_fits_type_p (c, type)
      tree c, type;
 {
   if (TREE_UNSIGNED (type))
-    return (!INT_CST_LT_UNSIGNED (TYPE_MAX_VALUE (type), c)
-           && !INT_CST_LT_UNSIGNED (c, TYPE_MIN_VALUE (type))
-           && (TREE_INT_CST_HIGH (c) >= 0 || TREE_UNSIGNED (TREE_TYPE (c))));
+    return (! (TREE_CODE (TYPE_MAX_VALUE (type)) == INTEGER_CST
+              && INT_CST_LT_UNSIGNED (TYPE_MAX_VALUE (type), c))
+           && ! (TREE_CODE (TYPE_MIN_VALUE (type)) == INTEGER_CST
+                 && INT_CST_LT_UNSIGNED (c, TYPE_MIN_VALUE (type))));
   else
-    return (!INT_CST_LT (TYPE_MAX_VALUE (type), c)
-           && !INT_CST_LT (c, TYPE_MIN_VALUE (type))
-           && (TREE_INT_CST_HIGH (c) >= 0 || !TREE_UNSIGNED (TREE_TYPE (c))));
+    return (! (TREE_CODE (TYPE_MAX_VALUE (type)) == INTEGER_CST
+              && INT_CST_LT (TYPE_MAX_VALUE (type), c))
+           && ! (TREE_CODE (TYPE_MIN_VALUE (type)) == INTEGER_CST
+                 && INT_CST_LT (c, TYPE_MIN_VALUE (type))));
 }
 
 /* Return the innermost context enclosing DECL that is