Hi,
actually since Rainer's testcase has TARGET_MEM_REF I think the problem
may be due to fact that we now can get TARGET_MEM_REF ofsetting the
array housed in decl while previously we gave up on types mismatch.
Does the following help?
Index: tree-ssa-alias.c
===================================================================
--- tree-ssa-alias.c (revision 272265)
+++ tree-ssa-alias.c (working copy)
@@ -1393,8 +1393,10 @@
But avoid treating variable length arrays as "objects", instead assume
they
can overlap by an exact multiple of their element size.
See gcc.dg/torture/alias-2.c. */
- if ((TREE_CODE (base1) != TARGET_MEM_REF
- || (!TMR_INDEX (base1) && !TMR_INDEX2 (base1)))
+ if (((TREE_CODE (base1) != TARGET_MEM_REF
+ || (!TMR_INDEX (base1) && !TMR_INDEX2 (base1)))
+ && (TREE_CODE (dbase2) != TARGET_MEM_REF
+ || (!TMR_INDEX (dbase2) && !TMR_INDEX2 (dbase2))))
&& same_type_for_tbaa (TREE_TYPE (base1), TREE_TYPE (dbase2)) == 1
&& (TREE_CODE (TREE_TYPE (base1)) != ARRAY_TYPE
|| (TYPE_SIZE (TREE_TYPE (base1))