]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c-typeck.c (null_pointer_constant_p): Replace use of TREE_CONSTANT_OVERFLOW with...
authorRoger Sayle <roger@eyesopen.com>
Sat, 13 Jan 2007 05:39:57 +0000 (05:39 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sat, 13 Jan 2007 05:39:57 +0000 (05:39 +0000)
* c-typeck.c (null_pointer_constant_p): Replace use of
TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
(build_c_cast): Likewise.

From-SVN: r120747

gcc/ChangeLog
gcc/c-typeck.c

index 17baae3bb98f4c55b63e0713687c910567948f4e..fcaf921c281ddab39d77f92acd54935e0aad7243 100644 (file)
@@ -1,3 +1,9 @@
+2007-01-12  Roger Sayle  <roger@eyesopen.com>
+
+       * c-typeck.c (null_pointer_constant_p): Replace use of
+       TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
+       (build_c_cast): Likewise.
+
 2007-01-12  Roger Sayle  <roger@eyesopen.com>
 
        * tree.h (force_fit_type_double): Remove unused final argument.
index 50db7d4a6ae72fbb56b5b595a181e8d4689f99d9..66b109ecf3ea86754b3564a5d0929b850233effe 100644 (file)
@@ -1,6 +1,6 @@
 /* Build expressions with type checking for C compiler.
    Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -117,7 +117,7 @@ null_pointer_constant_p (tree expr)
      yet available everywhere required.  */
   tree type = TREE_TYPE (expr);
   return (TREE_CODE (expr) == INTEGER_CST
-         && !TREE_CONSTANT_OVERFLOW (expr)
+         && !TREE_OVERFLOW (expr)
          && integer_zerop (expr)
          && (INTEGRAL_TYPE_P (type)
              || (TREE_CODE (type) == POINTER_TYPE
@@ -3588,15 +3588,16 @@ build_c_cast (tree type, tree expr)
       /* Ignore any integer overflow caused by the cast.  */
       if (TREE_CODE (value) == INTEGER_CST)
        {
-         if (CONSTANT_CLASS_P (ovalue)
-             && (TREE_OVERFLOW (ovalue) || TREE_CONSTANT_OVERFLOW (ovalue)))
+         if (CONSTANT_CLASS_P (ovalue) && TREE_OVERFLOW (ovalue))
            {
-             /* Avoid clobbering a shared constant.  */
-             value = copy_node (value);
-             TREE_OVERFLOW (value) = TREE_OVERFLOW (ovalue);
-             TREE_CONSTANT_OVERFLOW (value) = TREE_CONSTANT_OVERFLOW (ovalue);
+             if (!TREE_OVERFLOW (value))
+               {
+                 /* Avoid clobbering a shared constant.  */
+                 value = copy_node (value);
+                 TREE_OVERFLOW (value) = TREE_OVERFLOW (ovalue);
+               }
            }
-         else if (TREE_OVERFLOW (value) || TREE_CONSTANT_OVERFLOW (value))
+         else if (TREE_OVERFLOW (value))
            /* Reset VALUE's overflow flags, ensuring constant sharing.  */
            value = build_int_cst_wide (TREE_TYPE (value),
                                        TREE_INT_CST_LOW (value),