Commit c6f0626b by Martin Sebor Committed by Martin Sebor

re PR tree-optimization/90626 (fold strcmp(a, b) == 0 to zero when one string…

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
parent 1bf32c11
...@@ -12,6 +12,9 @@ ...@@ -12,6 +12,9 @@
2019-06-19 Martin Sebor <msebor@redhat.com> 2019-06-19 Martin Sebor <msebor@redhat.com>
PR tree-optimization/90626 PR tree-optimization/90626
* tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
PR tree-optimization/90626
* tree-ssa-strlen.c (strxcmp_unequal): New function. * tree-ssa-strlen.c (strxcmp_unequal): New function.
(handle_builtin_string_cmp): Call it. (handle_builtin_string_cmp): Call it.
......
...@@ -2981,7 +2981,7 @@ strxcmp_unequal (int idx1, int idx2, unsigned HOST_WIDE_INT n) ...@@ -2981,7 +2981,7 @@ strxcmp_unequal (int idx1, int idx2, unsigned HOST_WIDE_INT n)
if (idx2 < 0) if (idx2 < 0)
{ {
len2 = ~idx2; len2 = ~idx2;
nulterm1 = true; nulterm2 = true;
} }
else if (strinfo *si = get_strinfo (idx2)) else if (strinfo *si = get_strinfo (idx2))
{ {
...@@ -3003,7 +3003,8 @@ strxcmp_unequal (int idx1, int idx2, unsigned HOST_WIDE_INT n) ...@@ -3003,7 +3003,8 @@ strxcmp_unequal (int idx1, int idx2, unsigned HOST_WIDE_INT n)
if (len2 > n) if (len2 > n)
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 /* The string lengths are definitely unequal and the result can
be folded to one (since it's used for comparison with zero). */ be folded to one (since it's used for comparison with zero). */
return true; return true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment