]> git.pld-linux.org Git - packages/gcc.git/commitdiff
- outdated.
authorPaweł Sikora <pluto@pld-linux.org>
Fri, 4 Nov 2005 14:33:30 +0000 (14:33 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    gcc-pr22429.patch -> 1.2

gcc-pr22429.patch [deleted file]

diff --git a/gcc-pr22429.patch b/gcc-pr22429.patch
deleted file mode 100644 (file)
index beda5b8..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-The problem here is fold (build_range_check) converts
-"-1073741824 <= n && n <= 1073741823" to "n + 1073741824 >= 0"
-which makes depends on signed overflow being defined.  Fold later converts
-it to "n >= -1073741824" by my recent patch which is wrong.
-This patch fixes the problem by using unsigned types if signed overflow
-is undefined.
-
-OK? Bootstrapped and tested on x86_64-pc-linux-gnu with no regressions.
-
-Thanks,
-Andrew Pinski
-
-       * fold-const.c (build_range_check): Use unsigned when signed
-       overflow is undefined also.  If etype is subtype, make sure that
-       the subtraction is in the supper type.
-
---- a/gcc/fold-const.c 2005-10-19 08:15:39.000000000 +0000
-+++ b/gcc/fold-const.c 2005-10-19 08:29:46.574021728 +0000
-@@ -4005,7 +4005,8 @@
-     }
-   value = const_binop (MINUS_EXPR, high, low, 0);
--  if (value != 0 && TREE_OVERFLOW (value) && ! TYPE_UNSIGNED (etype))
-+  if (value != 0 && (!flag_wrapv || TREE_OVERFLOW (value))
-+      && ! TYPE_UNSIGNED (etype))
-     {
-       tree utype, minv, maxv;
-@@ -4016,6 +4017,11 @@
-       case INTEGER_TYPE:
-       case ENUMERAL_TYPE:
-       case CHAR_TYPE:
-+        /* There is no requirement that LOW be within the range of ETYPE
-+           if the latter is a subtype.  It must, however, be within the base
-+           type of ETYPE.  So be sure we do the subtraction in that type.  */
-+        if (TREE_TYPE (etype))
-+          etype = TREE_TYPE (etype);
-         utype = lang_hooks.types.unsigned_type (etype);
-         maxv = fold_convert (utype, TYPE_MAX_VALUE (etype));
-         maxv = range_binop (PLUS_EXPR, NULL_TREE, maxv, 1,
This page took 0.046463 seconds and 4 git commands to generate.