gcc.dg/tree-ssa/forwprop-12.c looks for reconstruction of an ARRAY_REF from pointer arithmetic and dereference. That's not safe because ARRAY_REFs carry special semantics we later exploit during data dependence analysis.
The following removes the testcase, closing the bug as WONTFIX. Pushed. PR tree-optimization/41320 * gcc.dg/tree-ssa/forwprop-12.c: Remove. --- gcc/testsuite/gcc.dg/tree-ssa/forwprop-12.c | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 gcc/testsuite/gcc.dg/tree-ssa/forwprop-12.c diff --git a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-12.c b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-12.c deleted file mode 100644 index de16c6848f2..00000000000 --- a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-12.c +++ /dev/null @@ -1,21 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O -fdump-tree-forwprop1" } */ - -struct X { int a[256]; }; - -int foo(struct X *p, __SIZE_TYPE__ i) -{ - int *q = &p->a[0]; - int *q2 = (int *)((void *)q + i*4 + 32); - return *q2; -} - -int bar(struct X *p, int i) -{ - return *((int *)p + i + 8); -} - -/* We should have propagated the base array address through the - address arithmetic into the memory access as an array access. */ - -/* { dg-final { scan-tree-dump-times "->a\\\[D\\\." 2 "forwprop1" { xfail *-*-* } } } */ -- 2.35.3