fold-const: Optimize &"foo"[0] == "foo" [PR89074]
authorJakub Jelinek <jakub@redhat.com>
Wed, 19 Jan 2022 08:26:13 +0000 (09:26 +0100)
committerJakub Jelinek <jakub@redhat.com>
Wed, 19 Jan 2022 08:26:13 +0000 (09:26 +0100)
commitb834435c8fa4cb9424787fe3044a49fef7992de8
tree229604493332e62ed597166cf8cac53a00edeac6
parent29a6db635f5eb38ba34d15a6ee35b00e753740e4
fold-const: Optimize &"foo"[0] == "foo" [PR89074]

This is a non-C++ related part from the PR89074 address_compare changes.
For "foo" == "foo" we already optimize this from the (cmp @0 @0)
simplification, because we use operand_equal_p in that case
and operand_equal_p also compares the STRING_CSTs bytes rather than
just addresses.

2022-01-19  Jakub Jelinek  <jakub@redhat.com>

PR c++/89074
* fold-const.cc (address_compare): Consider different STRING_CSTs
with the same lengths that memcmp the same as equal, not different.

* gcc.dg/tree-ssa/pr89074.c: New test.
gcc/fold-const.cc
gcc/testsuite/gcc.dg/tree-ssa/pr89074.c [new file with mode: 0644]