| /* { dg-do compile } */ | |
| /* { dg-options "-O2 -fdump-tree-dse1-details" } */ | |
| struct X { struct A { int a[2]; } b[10]; }; | |
| void foo (struct X *x, int i) | |
| { | |
| struct A a; | |
| /* Confuse SRA here with using a variable index, otherwise it will mess | |
| with the IL too much. */ | |
| a.a[i] = 3; | |
| a.a[1] = 0; | |
| /* The following store is dead. */ | |
| x->b[i].a[0] = 1; | |
| x->b[i] = a; | |
| } | |
| /* { dg-final { scan-tree-dump "Deleted dead store" "dse1" } } */ |