diff options
author | Richard Biener <rguenther@suse.de> | 2019-07-19 16:19:39 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-07-19 16:19:39 +0000 |
commit | 6b68f00d4c2b375dad66bd6e72c01c309b4085c5 (patch) | |
tree | cd052e0c10954d036a233e8d22903b56484a31f4 /gcc/tree-ssa-sccvn.c | |
parent | d826ea32f6c98b59cbcb4140751374c583616239 (diff) | |
download | gcc-6b68f00d4c2b375dad66bd6e72c01c309b4085c5.zip gcc-6b68f00d4c2b375dad66bd6e72c01c309b4085c5.tar.gz gcc-6b68f00d4c2b375dad66bd6e72c01c309b4085c5.tar.bz2 |
re PR tree-optimization/91211 (wrong code with __builtin_memset() and __builtin_memcpy() at -O1 and above)
2019-07-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/91211
* tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
memset encoding size.
* gcc.dg/torture/pr91211.c: New testcase.
From-SVN: r273605
Diffstat (limited to 'gcc/tree-ssa-sccvn.c')
-rw-r--r-- | gcc/tree-ssa-sccvn.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index f12c9dd..5b0460d 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -1818,7 +1818,8 @@ vn_walk_cb_data::push_partial_def (const pd_data &pd, tree vuse, if (TREE_CODE (pd.rhs) == CONSTRUCTOR) /* Empty CONSTRUCTOR. */ memset (buffer + MAX (0, pd.offset), - 0, MIN ((HOST_WIDE_INT)sizeof (buffer), pd.size)); + 0, MIN ((HOST_WIDE_INT)sizeof (buffer), + pd.size + MIN (0, pd.offset))); else { unsigned pad = 0; |