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)17void foo(void) 18 { 19 printf("Foo()"); 20 } 21 22 __attribute__ ((noinline)) order(int x,int y)23int order(int x, int y) 24 { 25 return x < y ? 2 : 4; 26 } 27 28 __attribute__ ((noinline)) order2(int y,int x)29int order2(int y, int x) 30 { 31 return x < y ? 2 : 4; 32 } 33 34 __attribute__ ((noinline)) x1(int x)35void 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)45void 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)54int 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