1/* { dg-do compile } */ 2/* { dg-options "-O2 -fdump-ipa-icf" } */ 3 4void f1() 5{ 6} 7 8void f2() 9{ 10} 11 12static void (*a)(void)=&f1; 13static void (*b)(void)=&f1; 14static void (*c)(void)=&f2; 15static void (*d)(void)=&f2; 16 17int main() 18{ 19 a(); 20 b(); 21 c(); 22 d(); 23 24 return 0; 25} 26 27/* { dg-final { scan-ipa-dump "Equal symbols: 3" "icf" } } */ 28/* { dg-final { scan-ipa-dump "Semantic equality hit:f2->f1" "icf" } } */ 29/* { dg-final { scan-ipa-dump "Semantic equality hit:d->c" "icf" } } */ 30/* { dg-final { scan-ipa-dump "Semantic equality hit:b->a" "icf" } } */ 31/* { dg-final { cleanup-ipa-dump "icf" } } */ 32