re PR rtl-optimization/23561 (nonoverlapping_memrefs_p returns true even for overlapp...
authorJakub Jelinek <jakub@redhat.com>
Fri, 26 Aug 2005 22:02:44 +0000 (00:02 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 26 Aug 2005 22:02:44 +0000 (00:02 +0200)
commit435bb2a125f54edb565053b7c40afda765fe96bd
tree98ccbe9ec79be85a6d0adc7e6a8ae4dd1aafc086
parentff8afde0ea2f2673e458e610e9680fa90bc3c2dc
re PR rtl-optimization/23561 (nonoverlapping_memrefs_p returns true even for overlapping memory references)

PR rtl-optimization/23561
* builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
at most LEN bytes long memory fits into the field.
(expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.

* gcc.c-torture/execute/20050826-1.c: New test.

From-SVN: r103541
gcc/ChangeLog
gcc/builtins.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/20050826-1.c [new file with mode: 0644]