tree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type as objects that cannot overlap.
2016-12-01 Richard Biener <rguenther@suse.de> * tree-ssa-alias.c (indirect_refs_may_alias_p): Do not treat arrays with same type as objects that cannot overlap. * gcc.dg/torture/alias-2.c: New testcase. From-SVN: r243107
This commit is contained in:
parent
a1fc386ac2
commit
a41e62e743
1 changed files with 4 additions and 1 deletions
|
@ -1355,7 +1355,10 @@ indirect_refs_may_alias_p (tree ref1 ATTRIBUTE_UNUSED, tree base1,
|
|||
&& same_type_for_tbaa (TREE_TYPE (base1), TREE_TYPE (ptrtype1)) == 1
|
||||
&& same_type_for_tbaa (TREE_TYPE (base2), TREE_TYPE (ptrtype2)) == 1
|
||||
&& same_type_for_tbaa (TREE_TYPE (ptrtype1),
|
||||
TREE_TYPE (ptrtype2)) == 1)
|
||||
TREE_TYPE (ptrtype2)) == 1
|
||||
/* But avoid treating arrays as "objects", instead assume they
|
||||
can overlap by an exact multiple of their element size. */
|
||||
&& TREE_CODE (TREE_TYPE (ptrtype1)) != ARRAY_TYPE)
|
||||
return ranges_overlap_p (offset1, max_size1, offset2, max_size2);
|
||||
|
||||
/* Do type-based disambiguation. */
|
||||
|
|
Loading…
Add table
Reference in a new issue