diff options
author | Martin Sebor <msebor@redhat.com> | 2019-09-21 22:32:59 +0000 |
---|---|---|
committer | Martin Sebor <msebor@gcc.gnu.org> | 2019-09-21 16:32:59 -0600 |
commit | 810118592aaa82a6dc460cf6234aa738bf9bbbea (patch) | |
tree | 520a60e61d8c61a5162d4ca8cbb0b7d09e60b3a1 /gcc/gimple-ssa-warn-restrict.c | |
parent | e4df9be4e2bb9f379d2737282f765f1ef6d8d2dd (diff) | |
download | gcc-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.c | 10 |
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)) |