aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-ssa-warn-restrict.c
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2019-09-21 22:32:59 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2019-09-21 16:32:59 -0600
commit810118592aaa82a6dc460cf6234aa738bf9bbbea (patch)
tree520a60e61d8c61a5162d4ca8cbb0b7d09e60b3a1 /gcc/gimple-ssa-warn-restrict.c
parente4df9be4e2bb9f379d2737282f765f1ef6d8d2dd (diff)
downloadgcc-810118592aaa82a6dc460cf6234aa738bf9bbbea.zip
gcc-810118592aaa82a6dc460cf6234aa738bf9bbbea.tar.gz
gcc-810118592aaa82a6dc460cf6234aa738bf9bbbea.tar.bz2
PR middle-end/91830 - Bogus -Warray-bounds on strcpy into a member
PR middle-end/91830 - Bogus -Warray-bounds on strcpy into a member of a subobject compiling binutils gcc/ChangeLog: * gcc/gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): Simplify computation of the offset of the referenced subobject. gcc/testsuite/ChangeLog: * gcc/testsuite/gcc.dg/Warray-bounds-47.c: New test. From-SVN: r276022
Diffstat (limited to 'gcc/gimple-ssa-warn-restrict.c')
-rw-r--r--gcc/gimple-ssa-warn-restrict.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/gcc/gimple-ssa-warn-restrict.c b/gcc/gimple-ssa-warn-restrict.c
index 4f6e535..f452deb 100644
--- a/gcc/gimple-ssa-warn-restrict.c
+++ b/gcc/gimple-ssa-warn-restrict.c
@@ -517,14 +517,8 @@ builtin_memref::set_base_and_offset (tree expr)
struct S { char a, b[3]; } s[2];
strcpy (s[1].b, "1234");
REFOFF is set to s[1].b - (char*)s. */
- tree basetype = TREE_TYPE (TREE_TYPE (base));
- if (tree basesize = TYPE_SIZE_UNIT (basetype))
- if (TREE_CODE (basesize) == INTEGER_CST)
- {
- offset_int size = wi::to_offset (basesize);
- offset_int off = tree_to_shwi (memrefoff);
- refoff += size * (off / size);
- }
+ offset_int off = tree_to_shwi (memrefoff);
+ refoff += off;
}
if (!integer_zerop (memrefoff))