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