diff options
author | Richard Biener <rguenther@suse.de> | 2019-07-25 06:57:46 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-07-25 06:57:46 +0000 |
commit | 599331c858294dec6ac94400e63d275c4836607f (patch) | |
tree | 3a0942185b334ece9867e390ceb6af35d1945837 /gcc | |
parent | b631bdb3c16e85f35d38e39b3d315c35e4a5747c (diff) | |
download | gcc-599331c858294dec6ac94400e63d275c4836607f.zip gcc-599331c858294dec6ac94400e63d275c4836607f.tar.gz gcc-599331c858294dec6ac94400e63d275c4836607f.tar.bz2 |
re PR tree-optimization/91236 (ICE in walk_non_aliased_vuses at gcc/tree-ssa-alias.c:3395 on aarch64)
2019-07-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/91236
* tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
size of CONSTRUCTOR write. Fix buffer size we pass to
native_encode_expr.
From-SVN: r273787
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-ssa-sccvn.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 45221a4..16757b0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-07-25 Richard Biener <rguenther@suse.de> + + PR tree-optimization/91236 + * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix + size of CONSTRUCTOR write. Fix buffer size we pass to + native_encode_expr. + 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> * config.gcc (msp430*-*-*): Fix non-GNU style in r273774. diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index 9369c36..bafbea2 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -1818,7 +1818,7 @@ 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), + 0, MIN ((HOST_WIDE_INT)sizeof (buffer) - MAX (0, pd.offset), pd.size + MIN (0, pd.offset))); else { @@ -1833,7 +1833,7 @@ vn_walk_cb_data::push_partial_def (const pd_data &pd, tree vuse, pad = GET_MODE_SIZE (mode) - pd.size; } len = native_encode_expr (pd.rhs, buffer + MAX (0, pd.offset), - sizeof (buffer - MAX (0, pd.offset)), + sizeof (buffer) - MAX (0, pd.offset), MAX (0, -pd.offset) + pad); if (len <= 0 || len < (pd.size - MAX (0, -pd.offset))) { |