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 @@
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.
......
......@@ -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;
......
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