1f08c3bdfSopenharmony_cistruct s {
2f08c3bdfSopenharmony_ci	int c[1];
3f08c3bdfSopenharmony_ci};
4f08c3bdfSopenharmony_ci
5f08c3bdfSopenharmony_cistatic struct s x, y;
6f08c3bdfSopenharmony_cistatic int p;
7f08c3bdfSopenharmony_ci
8f08c3bdfSopenharmony_cistatic void foo0(void)
9f08c3bdfSopenharmony_ci{
10f08c3bdfSopenharmony_ci	(x = y).c;		// x = y;
11f08c3bdfSopenharmony_ci}
12f08c3bdfSopenharmony_ci
13f08c3bdfSopenharmony_cistatic void foo1(void)
14f08c3bdfSopenharmony_ci{
15f08c3bdfSopenharmony_ci	int *t = (x = y).c;	// x = y;
16f08c3bdfSopenharmony_ci}
17f08c3bdfSopenharmony_ci
18f08c3bdfSopenharmony_cistatic void foo2(void)
19f08c3bdfSopenharmony_ci{
20f08c3bdfSopenharmony_ci	(x = y).c + 1;		// x = y;
21f08c3bdfSopenharmony_ci}
22f08c3bdfSopenharmony_ci
23f08c3bdfSopenharmony_cistatic void foo3(void)
24f08c3bdfSopenharmony_ci{
25f08c3bdfSopenharmony_ci	(x = y).c[0];		// x = y;
26f08c3bdfSopenharmony_ci}
27f08c3bdfSopenharmony_ci
28f08c3bdfSopenharmony_cistatic void foo4(void)
29f08c3bdfSopenharmony_ci{
30f08c3bdfSopenharmony_ci	(p ? x : y).c[0];	// ;
31f08c3bdfSopenharmony_ci}
32f08c3bdfSopenharmony_ci
33f08c3bdfSopenharmony_cistatic void foo5(void)
34f08c3bdfSopenharmony_ci{
35f08c3bdfSopenharmony_ci	(p, y).c[0];		// ;
36f08c3bdfSopenharmony_ci}
37f08c3bdfSopenharmony_ci
38f08c3bdfSopenharmony_ci/*
39f08c3bdfSopenharmony_ci * check-name: kill-stores1
40f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file
41f08c3bdfSopenharmony_ci *
42f08c3bdfSopenharmony_ci * check-output-ignore
43f08c3bdfSopenharmony_ci * check-output-pattern(4): load\\.
44f08c3bdfSopenharmony_ci * check-output-pattern(4): load\\..*0\\[y\\]
45f08c3bdfSopenharmony_ci * check-output-pattern(4): store\\.
46f08c3bdfSopenharmony_ci * check-output-pattern(4): store\\..*0\\[x\\]
47f08c3bdfSopenharmony_ci * check-output-excludes: select\\.
48f08c3bdfSopenharmony_ci */
49