aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2008-05-29 10:31:58 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2008-05-29 10:31:58 +0000
commit2f571334ff457850b9a7748b6af8c8d1d07c8f1c (patch)
tree9ac5b52b2f6b2f8b4637381bf6843792fdf1b16e /gcc/tree-ssa.c
parentb3d5f74124228eafaf92a3b63a18cd9265f2cf25 (diff)
downloadgcc-2f571334ff457850b9a7748b6af8c8d1d07c8f1c.zip
gcc-2f571334ff457850b9a7748b6af8c8d1d07c8f1c.tar.gz
gcc-2f571334ff457850b9a7748b6af8c8d1d07c8f1c.tar.bz2
re PR tree-optimization/36343 (Wrong code due to bad TBAA pruning of points-to-sets and use in call clobbering)
2008-05-29 Richard Guenther <rguenther@suse.de> PR tree-optimization/36343 PR tree-optimization/36346 PR tree-optimization/36347 * tree-flow.h (clobber_what_p_points_to): Declare. * tree-ssa-structalias.c (set_uids_in_ptset): Whether the pointed-to variable is dereferenced is irrelevant to whether the pointer can access the pointed-to variable. (clobber_what_p_points_to): New function. * tree-ssa-alias.c (set_initial_properties): Use it. * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust call clobber check for NMTs. * gcc.c-torture/execute/pr36343.c: New testcase. From-SVN: r136152
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r--gcc/tree-ssa.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index 1c01d71..f71e3af 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -571,7 +571,9 @@ verify_flow_sensitive_alias_info (void)
goto err;
}
- if (pi->value_escapes_p && pi->name_mem_tag)
+ if (pi->value_escapes_p
+ && pi->escape_mask & ~ESCAPE_TO_RETURN
+ && pi->name_mem_tag)
{
tree t = memory_partition (pi->name_mem_tag);
if (t == NULL_TREE)