aboutsummaryrefslogtreecommitdiff
path: root/gcc/alias.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2008-04-23 14:06:02 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2008-04-23 14:06:02 +0000
commita7a512beff448f28fc2f9f192e19e30cbf971eba (patch)
tree92b446ae6c5a7e1732e139eb7761d3c20bb21399 /gcc/alias.c
parentf3f75f693d12f58acbb37d393280081621eb3f58 (diff)
downloadgcc-a7a512beff448f28fc2f9f192e19e30cbf971eba.zip
gcc-a7a512beff448f28fc2f9f192e19e30cbf971eba.tar.gz
gcc-a7a512beff448f28fc2f9f192e19e30cbf971eba.tar.bz2
alias.c (alias_set_subset_of): Correctly handle asking if zero is a subset of an alias set with zero child.
2008-04-23 Richard Guenther <rguenther@suse.de> * alias.c (alias_set_subset_of): Correctly handle asking if zero is a subset of an alias set with zero child. * tree-ssa-alias.c (have_common_aliases_p): Simplify logic. (compute_flow_insensitive_aliasing): Correctly walk all pointers. Do not unnecessarily union sets. From-SVN: r134597
Diffstat (limited to 'gcc/alias.c')
-rw-r--r--gcc/alias.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/alias.c b/gcc/alias.c
index 2e4f5ae..7b14f26 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -305,8 +305,9 @@ alias_set_subset_of (alias_set_type set1, alias_set_type set2)
/* Otherwise, check if set1 is a subset of set2. */
ase = get_alias_set_entry (set2);
if (ase != 0
- && (splay_tree_lookup (ase->children,
- (splay_tree_key) set1)))
+ && ((ase->has_zero_child && set1 == 0)
+ || splay_tree_lookup (ase->children,
+ (splay_tree_key) set1)))
return true;
return false;
}