1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-ipa-icf-optimized" } */
3
4 __attribute__ ((noinline))
5 int fce(int a, int b)
6 {
7 return a + b;
8 }
9
10 __attribute__ ((noinline))
11 int f0(int a)
12 {
13 return fce(a, 5) + fce(a, 7);
14 }
15
16 __attribute__ ((noinline))
17 int f1(int a)
18 {
19 return fce(a, 5) + fce(a, 7);
20 }
21
22 int main(int argc, char **argv)
23 {
24 return f0(argc) * f1(argc);
25 }
26
27 /* { dg-final { scan-ipa-dump "Semantic equality hit:f0/\[0-9+\]+->f1/\[0-9+\]+" "icf" } } */
28 /* { dg-final { scan-ipa-dump "Equal symbols: 1" "icf" } } */