re PR tree-optimization/90626 (fold strcmp(a, b) == 0 to zero when one string length...
authorMartin Sebor <msebor@redhat.com>
Wed, 19 Jun 2019 21:46:09 +0000 (21:46 +0000)
committerMartin Sebor <msebor@gcc.gnu.org>
Wed, 19 Jun 2019 21:46:09 +0000 (15:46 -0600)
PR tree-optimization/90626

gcc/ChangeLog:
* tree-ssa-strlen.c (strxcmp_unequal): Fix typos.

From-SVN: r272487

gcc/ChangeLog
gcc/tree-ssa-strlen.c

index 3f868ba..5b67ad0 100644 (file)
@@ -12,6 +12,9 @@
 2019-06-19  Martin Sebor  <msebor@redhat.com>
 
        PR tree-optimization/90626
+       * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
+
+       PR tree-optimization/90626
        * tree-ssa-strlen.c (strxcmp_unequal): New function.
        (handle_builtin_string_cmp): Call it.
 
index 80e7f99..74cd6c4 100644 (file)
@@ -2981,7 +2981,7 @@ strxcmp_unequal (int idx1, int idx2, unsigned HOST_WIDE_INT n)
   if (idx2 < 0)
     {
       len2 = ~idx2;
-      nulterm1 = true;
+      nulterm2 = true;
     }
   else if (strinfo *si = get_strinfo (idx2))
     {
@@ -3003,7 +3003,8 @@ strxcmp_unequal (int idx1, int idx2, unsigned HOST_WIDE_INT n)
   if (len2 > n)
     len2 = n;
 
-  if (len1 != len2 && (nulterm1 || nulterm2))
+  if ((len1 < len2 && nulterm1)
+      || (len2 < len1 && nulterm2))
     /* The string lengths are definitely unequal and the result can
        be folded to one (since it's used for comparison with zero).  */
     return true;