PR tree-optimization/83698 - bogus offset in -Wrestrict messages for strcat of unknow...
commit484051f7fd0513e33c839394ee1ca41b5ee40b31
authormsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Feb 2018 23:22:15 +0000 (14 23:22 +0000)
committermsebor <msebor@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Feb 2018 23:22:15 +0000 (14 23:22 +0000)
tree4abe2f0ee56e212baf1980d760fbb71436a2cbfb
parentd19c7e92ee2bd90d45c3632f280eef4de8bd5b83
PR tree-optimization/83698 - bogus offset in -Wrestrict messages for strcat of unknown strings

gcc/ChangeLog:

PR tree-optimization/83698
* gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For
arrays constrain the offset range to their bounds.
(builtin_access::strcat_overlap): Adjust the bounds of overlap offset.
(builtin_access::overlap): Avoid setting the size of overlap if it's
already been set.
(maybe_diag_overlap): Also consider arrays when deciding what values
of offsets to include in diagnostics.

gcc/testsuite/ChangeLog:

PR tree-optimization/83698
* gcc.dg/Wrestrict-7.c: New test.
* c-c++-common/Wrestrict.c: Adjust expected values for strcat.
* gcc.target/i386/chkp-stropt-17.c: Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@257676 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/gimple-ssa-warn-restrict.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/Wrestrict.c
gcc/testsuite/gcc.dg/Wrestrict-7.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/chkp-stropt-17.c