1/* { dg-do run } */
2/* { dg-options "-O0 -fipa-icf -fdump-ipa-icf"  } */
3
4struct S
5{
6  int a;
7};
8
9int
10foo3 (struct S x, struct S y, struct S z)
11{
12  if (z.a != 9)
13    __builtin_abort ();
14  return 0;
15}
16
17int
18bar3 (struct S x, struct S y, struct S z)
19{
20  return foo3 (y, x, z);
21}
22
23int
24baz3 (struct S x, struct S y, struct S z)
25{
26  return foo3 (y, z, x);
27}
28
29int
30main (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/* { dg-final { cleanup-ipa-dump "icf" } } */
42