1 /* { dg-do run } */
2 /* { dg-options "-O0 -fipa-icf -fdump-ipa-icf" } */
3
4 struct S
5 {
6 int a;
7 };
8
9 int
foo3(struct S x,struct S y,struct S z)10 foo3 (struct S x, struct S y, struct S z)
11 {
12 if (z.a != 9)
13 __builtin_abort ();
14 return 0;
15 }
16
17 int
bar3(struct S x,struct S y,struct S z)18 bar3 (struct S x, struct S y, struct S z)
19 {
20 return foo3 (y, x, z);
21 }
22
23 int
baz3(struct S x,struct S y,struct S z)24 baz3 (struct S x, struct S y, struct S z)
25 {
26 return foo3 (y, z, x);
27 }
28
29 int
main(void)30 main (void)
31 {
32 struct S
33 a = { 3 },
34 b = { 6 },
35 c = { 9 };
36
37 return bar3 (b, a, c);
38 }
39
40 /* { dg-final { scan-ipa-dump "Equal symbols: 0" "icf" } } */
41