From 8907a722fdfbe6992b4c5ee7ee5fa939213154af Mon Sep 17 00:00:00 2001 From: Bill Schmidt Date: Mon, 5 Dec 2016 21:48:27 +0000 Subject: [PATCH] re PR tree-optimization/78646 (incorrect result type for pointer addition in slsr) 2016-12-05 Bill Schmidt Stefan Freudenberger PR tree-optimization/78646 * gimple-ssa-strength-reduction.c (replace_ref): The pointer addition used for the memory base expression should have the type of the candidate. Co-Authored-By: Stefan Freudenberger From-SVN: r243272 --- gcc/ChangeLog | 8 ++++++++ gcc/gimple-ssa-strength-reduction.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 57c2450c1be..beef9212587 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2016-12-05 Bill Schmidt + Stefan Freudenberger + + PR tree-optimization/78646 + * gimple-ssa-strength-reduction.c (replace_ref): The pointer + addition used for the memory base expression should have the type + of the candidate. + 2016-12-05 Waldemar Brodkorb PR target/71721 diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c index bdfdb9a82b1..21dcbb05056 100644 --- a/gcc/gimple-ssa-strength-reduction.c +++ b/gcc/gimple-ssa-strength-reduction.c @@ -1921,7 +1921,7 @@ replace_ref (tree *expr, slsr_cand_t c) if (align < TYPE_ALIGN (acc_type)) acc_type = build_aligned_type (acc_type, align); - add_expr = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (c->base_expr), + add_expr = fold_build2 (POINTER_PLUS_EXPR, c->cand_type, c->base_expr, c->stride); mem_ref = fold_build2 (MEM_REF, acc_type, add_expr, wide_int_to_tree (c->cand_type, c->index)); -- 2.30.2