aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2009-06-17 10:29:22 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2009-06-17 10:29:22 +0000
commit4d61856d0a221c695bbb5193ae18403d07cde0d4 (patch)
tree824902ba221886d42966346c76169bbff0889f86 /gcc
parent3cb8677cc030b145391ac547f159609b03dbbd6c (diff)
downloadgcc-4d61856d0a221c695bbb5193ae18403d07cde0d4.zip
gcc-4d61856d0a221c695bbb5193ae18403d07cde0d4.tar.gz
gcc-4d61856d0a221c695bbb5193ae18403d07cde0d4.tar.bz2
re PR c++/40389 (optimizer bug (possibly))
2009-06-17 Richard Guenther <rguenther@suse.de> PR tree-optimization/40389 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case to addressable types. * gimple.c (walk_stmt_load_store_addr_ops): Likewise. From-SVN: r148597
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/gimple.c2
-rw-r--r--gcc/tree-ssa-structalias.c2
3 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6fab0ba..c21b72e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2009-06-17 Richard Guenther <rguenther@suse.de>
+ PR tree-optimization/40389
+ * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
+ to addressable types.
+ * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
+
+2009-06-17 Richard Guenther <rguenther@suse.de>
+
PR middle-end/40460
* tree-chrec.h (build_polynomial_chrec): If we cannot determine
if there is no evolution of left in the loop bail out.
diff --git a/gcc/gimple.c b/gcc/gimple.c
index 91057b4..4f18b78 100644
--- a/gcc/gimple.c
+++ b/gcc/gimple.c
@@ -3267,7 +3267,7 @@ walk_stmt_load_store_addr_ops (gimple stmt, void *data,
if (visit_addr
&& gimple_call_return_slot_opt_p (stmt)
&& gimple_call_lhs (stmt) != NULL_TREE
- && TREE_ADDRESSABLE (gimple_call_lhs (stmt)))
+ && TREE_ADDRESSABLE (TREE_TYPE (gimple_call_lhs (stmt))))
ret |= visit_addr (stmt, gimple_call_lhs (stmt), data);
}
else if (gimple_code (stmt) == GIMPLE_ASM)
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index f60b24c..60863d5 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -3362,7 +3362,7 @@ handle_rhs_call (gimple stmt, VEC(ce_s, heap) **results)
/* And if we applied NRV the address of the return slot escapes as well. */
if (gimple_call_return_slot_opt_p (stmt)
&& gimple_call_lhs (stmt) != NULL_TREE
- && TREE_ADDRESSABLE (gimple_call_lhs (stmt)))
+ && TREE_ADDRESSABLE (TREE_TYPE (gimple_call_lhs (stmt))))
{
VEC(ce_s, heap) *tmpc = NULL;
struct constraint_expr lhsc, *c;