aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-sccvn.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2017-04-06 12:31:05 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2017-04-06 12:31:05 +0000
commit0f78434635f6e78cae50408a8bb76c35658551d4 (patch)
tree71e473dcdaf525f910f75285eed39cb0ba9aa850 /gcc/tree-ssa-sccvn.c
parent23a429c2b285953c026bfd01ded764e3b16eb1a8 (diff)
downloadgcc-0f78434635f6e78cae50408a8bb76c35658551d4.zip
gcc-0f78434635f6e78cae50408a8bb76c35658551d4.tar.gz
gcc-0f78434635f6e78cae50408a8bb76c35658551d4.tar.bz2
re PR middle-end/80262 (address space gets lost in memory access)
2017-04-06 Richard Biener <rguenther@suse.de> PR tree-optimization/80262 * tree-sra.c (build_ref_for_offset): Preserve address-space information. * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Drop useless address-space information on MEM_REF offsets. * gcc.target/i386/pr80262.c: New testcase. From-SVN: r246728
Diffstat (limited to 'gcc/tree-ssa-sccvn.c')
-rw-r--r--gcc/tree-ssa-sccvn.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index e7502de..bce247a 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -1233,8 +1233,8 @@ vn_reference_maybe_forwprop_address (vec<vn_reference_op_s> *ops,
&& tem[tem.length () - 2].opcode == MEM_REF)
{
vn_reference_op_t new_mem_op = &tem[tem.length () - 2];
- new_mem_op->op0 = fold_convert (TREE_TYPE (mem_op->op0),
- new_mem_op->op0);
+ new_mem_op->op0 = wide_int_to_tree (TREE_TYPE (mem_op->op0),
+ new_mem_op->op0);
}
else
gcc_assert (tem.last ().opcode == STRING_CST);