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