/* PR/101293 */ | |
/* { dg-do compile } */ | |
/* { dg-options "-O2 -fdump-tree-lim2-details" } */ | |
struct X { int i; int j; }; | |
void foo(struct X *x, int n) | |
{ | |
for (int i = 0; i < n; ++i) | |
{ | |
int *p = &x->j; | |
int tem = *p; | |
x->j += tem * i; | |
} | |
} | |
/* Make sure LIM can handle unifying MEM[x, 4] and MEM[x].j */ | |
/* { dg-final { scan-tree-dump "Executing store motion" "lim2" } } */ |