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