diff options
author | Martin Sebor <msebor@redhat.com> | 2019-06-19 21:46:09 +0000 |
---|---|---|
committer | Martin Sebor <msebor@gcc.gnu.org> | 2019-06-19 15:46:09 -0600 |
commit | c6f0626b11b25b4159489e4935086ea49d47c541 (patch) | |
tree | 4a6346297af4baa3dc1e4fe640c59515e9f57299 /gcc/tree-ssa-strlen.c | |
parent | 1bf32c1141e230743f9248f7f7bf8aab91823df5 (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.c | 5 |
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; |