]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
authorRichard Guenther <rguenther@suse.de>
Tue, 17 Aug 2010 09:50:12 +0000 (09:50 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 17 Aug 2010 09:50:12 +0000 (09:50 +0000)
2010-08-17  Richard Guenther  <rguenther@suse.de>

* fold-const.c (fold_comparison): Strip nops inside
POINTER_PLUS_EXPR.

From-SVN: r163298

gcc/ChangeLog
gcc/fold-const.c

index e6f43ed6d788589febc6457ae16720a5a58a3d5b..f46429ee208d2084b278830f7f08861dd746bda1 100644 (file)
@@ -1,3 +1,8 @@
+2010-08-17  Richard Guenther  <rguenther@suse.de>
+
+       * fold-const.c (fold_comparison): Strip nops inside
+       POINTER_PLUS_EXPR.
+
 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
 
        PR c/40563
index d63411ea89aa708964fa72290600cb9332601c0d..02ddac57da44958594db558e6970c0d94178acdb 100644 (file)
@@ -8683,6 +8683,7 @@ fold_comparison (location_t loc, enum tree_code code, tree type,
       else if (TREE_CODE (arg0) == POINTER_PLUS_EXPR)
        {
          base0 = TREE_OPERAND (arg0, 0);
+         STRIP_SIGN_NOPS (base0);
          if (TREE_CODE (base0) == ADDR_EXPR)
            {
              base0 = TREE_OPERAND (base0, 0);
@@ -8705,6 +8706,7 @@ fold_comparison (location_t loc, enum tree_code code, tree type,
       else if (TREE_CODE (arg1) == POINTER_PLUS_EXPR)
        {
          base1 = TREE_OPERAND (arg1, 0);
+         STRIP_SIGN_NOPS (base1);
          if (TREE_CODE (base1) == ADDR_EXPR)
            {
              base1 = TREE_OPERAND (base1, 0);