]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
fold-const.c (fold_binary): Fix types in strlen vs.
authorRichard Guenther <rguenth@gcc.gnu.org>
Wed, 1 Jun 2005 09:34:15 +0000 (09:34 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 1 Jun 2005 09:34:15 +0000 (09:34 +0000)
2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>

* fold-const.c (fold_binary): Fix types in strlen vs.
zero comparison folding.

From-SVN: r100436

gcc/ChangeLog
gcc/fold-const.c

index b7065525ee5e4887241d95953499a1bf2eaa2110..c906a255fbdbedd51aa0834c3cfa3340a841c972 100644 (file)
@@ -1,3 +1,8 @@
+2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * fold-const.c (fold_binary): Fix types in strlen vs.
+       zero comparison folding.
+
 2005-06-01  Richard Henderson  <rth@redhat.com>
 
        * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
index 97caf1515a293faeadd28f5c694d939f8633a179..18e92e27c6ab8916726236e9b8c83b2f436e4544 100644 (file)
@@ -9915,11 +9915,11 @@ fold_binary (enum tree_code code, tree type, tree op0, tree op1)
              && (arglist = TREE_OPERAND (arg0, 1))
              && TREE_CODE (TREE_TYPE (TREE_VALUE (arglist))) == POINTER_TYPE
              && ! TREE_CHAIN (arglist))
-           return fold_build2 (code, type,
-                               build1 (INDIRECT_REF, char_type_node,
-                                       TREE_VALUE (arglist)),
-                               fold_convert (char_type_node,
-                                             integer_zero_node));
+           {
+             tree iref = build_fold_indirect_ref (TREE_VALUE (arglist));
+             return fold_build2 (code, type, iref,
+                                 build_int_cst (TREE_TYPE (iref), 0));
+           }
        }
 
       /* We can fold X/C1 op C2 where C1 and C2 are integer constants