summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-strlen.c
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2019-06-19 21:46:09 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2019-06-19 15:46:09 -0600
commitc6f0626b11b25b4159489e4935086ea49d47c541 (patch)
tree4a6346297af4baa3dc1e4fe640c59515e9f57299 /gcc/tree-ssa-strlen.c
parent1bf32c1141e230743f9248f7f7bf8aab91823df5 (diff)
re PR tree-optimization/90626 (fold strcmp(a, b) == 0 to zero when one string length is exact and the other is unequal)
PR tree-optimization/90626 gcc/ChangeLog: * tree-ssa-strlen.c (strxcmp_unequal): Fix typos. From-SVN: r272487
Diffstat (limited to 'gcc/tree-ssa-strlen.c')
-rw-r--r--gcc/tree-ssa-strlen.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c
index 80e7f9992d4..74cd6c44874 100644
--- a/gcc/tree-ssa-strlen.c
+++ b/gcc/tree-ssa-strlen.c
@@ -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;