1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-ipa-icf"  } */
3 
4 #include <stdio.h>
5 
6 struct container
7 {
8   int x;
9   int y;
10 };
11 
12 static struct container max;
13 static int array[3][3];
14 static int array2[123];
15 
16 __attribute__ ((noinline))
foo(void)17 void foo(void)
18 {
19   printf("Foo()");
20 }
21 
22 __attribute__ ((noinline))
order(int x,int y)23 int order(int x, int y)
24 {
25   return x < y ? 2 : 4;
26 }
27 
28 __attribute__ ((noinline))
order2(int y,int x)29 int order2(int y, int x)
30 {
31   return x < y ? 2 : 4;
32 }
33 
34 __attribute__ ((noinline))
x1(int x)35 void x1(int x)
36 {
37   int i;
38   for(i = 0; i < 20; ++i)
39     array2[i] = i;
40 
41   array2[2] = 13;
42 }
43 
44 __attribute__ ((noinline))
x2(int a)45 void x2(int a)
46 {
47   int i;
48   for(i = 0; i < 20; ++i)
49     array2[i] = i;
50 
51   array2[2] = 13;
52 }
53 
main(int argc,char ** argv)54 int main(int argc, char **argv)
55 {
56   return 0;
57 }
58 
59 /* { dg-final { scan-ipa-dump "Semantic equality hit:x1->x2" "icf"  } } */
60 /* { dg-final { scan-ipa-dump "Equal symbols: 1" "icf"  } } */
61