/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized -fno-tree-sra" } */

/* Even without SRA being enabled, we should be able to eliminate every structure store and load here. */
extern void foo (const int);
int main(void)
{
	struct a
	{
		int e;
		int f;
		int g;
	}  a;
	struct a b;
	int x, c;
	a.e = 50;
	a.f = 9;
	a.g = a.e * a.f;
	foo (a.f);
	foo (a.g);
	x = a.f;
	c = a.e;
	foo (x);
	foo (c);
	a.e = 5;
	a.f = 40;
	a.g = 90;
	foo (a.e);
	foo (a.f);
	foo (a.g);
	c = a.f;
	foo (c);
	b.e = 9;
	a.e = b.e + 1 * c;
	a.f = 30;
	foo (a.e);
	foo (a.f);
	x = a.e * a.f;
	foo (x);

}
/* { dg-final { scan-tree-dump-times "a.e" 0 "optimized" } } */
/* { dg-final { scan-tree-dump-times "a.f" 0 "optimized" } } */
/* { dg-final { scan-tree-dump-times "a.g" 0 "optimized" } } */
/* { dg-final { scan-tree-dump-times "b.e" 0 "optimized" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
