1/* { dg-do compile } */ 2/* { dg-options "-O2 -fdump-ipa-icf" } */ 3 4#include <stdio.h> 5 6__attribute__ ((noinline)) 7int bar(int a) 8{ 9 void *l = &&error; 10 11 if(a == 4) 12 goto *l; 13 14 return 150; 15 16error: 17 return a; 18failure: 19 return a + 2; 20} 21 22__attribute__ ((noinline)) 23int foo(int a) 24{ 25 void *l = &&error; 26 27 if(a == 4) 28 goto *l; 29 30 return 150; 31 32error: 33 return a; 34failure: 35 return a + 2; 36} 37 38int main(int argc, char **argv) 39{ 40 printf("value: %d\n", foo(argc)); 41 42 return 0; 43} 44 45/* { dg-final { scan-ipa-dump "Equal symbols: 0" "icf" } } */ 46/* { dg-final { cleanup-ipa-dump "icf" } } */ 47