summaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-04 11:08:54 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-04 11:08:54 +0000
commit9f23c21f051f7d759cbfb796072d7fd78916965c (patch)
tree4d833e374091660110b548adb01b088d67e3b7a4 /gcc/expr.c
parent15d138c9aa666c76c9cf608ffa59d7dcca9a0afa (diff)
downloadgcc-9f23c21f051f7d759cbfb796072d7fd78916965c.tar.gz
2010-08-04 Richard Guenther <rguenther@suse.de>
PR middle-end/45176 * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF points-to set for original MEM_REF. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162862 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index f0a3b9caa40..9134d6215b2 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -8665,7 +8665,7 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
set_mem_addr_space (temp, as);
base = get_base_address (TMR_ORIGINAL (exp));
if (base
- && INDIRECT_REF_P (base)
+ && (INDIRECT_REF_P (base) || TREE_CODE (base) == MEM_REF)
&& TMR_BASE (exp)
&& TREE_CODE (TMR_BASE (exp)) == SSA_NAME
&& POINTER_TYPE_P (TREE_TYPE (TMR_BASE (exp))))