diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7f756464b05421aeb06360bbbb783559175ea8c8..b42de54c2c472dc5899609e3cc287aa881cae4d5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2008-06-03  Richard Guenther  <rguenther@suse.de>
+
+	* tree-ssa-structalias.c (find_func_aliases): Add constraints
+	for the lhs of calls if the return type contains pointers.
+
 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
 
 	* doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index b6d73ce66f4f138db0b2cbd640f2d6d6f473314a..0e422146f9b3c509567de9c77aacde0636162ba3 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -3726,7 +3726,7 @@ find_func_aliases (tree origt)
 	  if (TREE_CODE (t) == GIMPLE_MODIFY_STMT)
 	    {
 	      handle_rhs_call (GIMPLE_STMT_OPERAND (t, 1));
-	      if (POINTER_TYPE_P (TREE_TYPE (GIMPLE_STMT_OPERAND (t, 1))))
+	      if (could_have_pointers (GIMPLE_STMT_OPERAND (t, 1)))
 		handle_lhs_call (GIMPLE_STMT_OPERAND (t, 0));
 	    }
 	  else