aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-alias.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2009-05-29 13:31:47 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2009-05-29 13:31:47 +0000
commit71dcd6099ae3f4147d80081042d33d5da3454d4d (patch)
treed9efa565deff91ac8ab90373b07900898033d715 /gcc/tree-ssa-alias.c
parenta900ae6bfb6cd39869d521ec912c09fb7a345f6c (diff)
downloadgcc-71dcd6099ae3f4147d80081042d33d5da3454d4d.zip
gcc-71dcd6099ae3f4147d80081042d33d5da3454d4d.tar.gz
gcc-71dcd6099ae3f4147d80081042d33d5da3454d4d.tar.bz2
tree-ssa-alias.c (nonaliasing_component_refs_p): Remove short-cutting on the first component.
2009-05-29 Richard Guenther <rguenther@suse.de> * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove short-cutting on the first component. From-SVN: r147976
Diffstat (limited to 'gcc/tree-ssa-alias.c')
-rw-r--r--gcc/tree-ssa-alias.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index e68fb51..0b8c251 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -539,8 +539,7 @@ nonaliasing_component_refs_p (tree ref1, tree type1,
/* Now search for the type1 in the access path of ref2. This
would be a common base for doing offset based disambiguation on. */
- /* Skip the outermost ref - we would have caught that earlier. */
- refp = &TREE_OPERAND (ref2, 0);
+ refp = &ref2;
while (handled_component_p (*refp)
&& same_type_for_tbaa (TREE_TYPE (*refp), type1) == 0)
refp = &TREE_OPERAND (*refp, 0);
@@ -556,7 +555,7 @@ nonaliasing_component_refs_p (tree ref1, tree type1,
return ranges_overlap_p (offset1, max_size1, offset2, max_size2);
}
/* If we didn't find a common base, try the other way around. */
- refp = &TREE_OPERAND (ref1, 0);
+ refp = &ref1;
while (handled_component_p (*refp)
&& same_type_for_tbaa (TREE_TYPE (*refp), type2) == 0)
refp = &TREE_OPERAND (*refp, 0);