OSDN Git Service

(int_fits_type_p): Properly handle case of variable bounds for types.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Feb 1994 00:23:30 +0000 (00:23 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Feb 1994 00:23:30 +0000 (00:23 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6508 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/tree.c

index d363f84..bd14895 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