1/* { dg-do compile } */ 2/* { dg-options "-O2 -fdump-ipa-icf" } */ 3 4static int zip(); 5static int zap(); 6static int two(); 7 8__attribute__ ((noinline)) 9int foo() 10{ 11 return zip(); 12} 13 14__attribute__ ((noinline)) 15int bar() 16{ 17 return zap(); 18} 19 20__attribute__ ((noinline)) 21int baz() 22{ 23 return two(); 24} 25 26__attribute__ ((noinline)) 27int zip() 28{ 29 return 0; 30} 31 32__attribute__ ((noinline)) 33int zap() 34{ 35 return 0; 36} 37 38__attribute__ ((noinline)) 39int two() 40{ 41 return 2; 42} 43 44int main() 45{ 46 return foo() + bar(); 47} 48 49/* { dg-final { scan-ipa-dump "Semantic equality hit:bar->foo" "icf" } } */ 50/* { dg-final { scan-ipa-dump "Semantic equality hit:zap->zip" "icf" } } */ 51/* { dg-final { scan-ipa-dump "Equal symbols: 2" "icf" } } */ 52/* { dg-final { cleanup-ipa-dump "icf" } } */ 53