Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / gcc / testsuite / gcc.dg / lto / pr55703_0.c
1 /* { dg-lto-do run } */
2 /* { dg-lto-options { { -O2 -flto -fno-tree-copy-prop -fno-tree-dce } } } */
3
4 int try (int num) {
5   __label__ lab1, lab2, lab3, lab4, lab5, lab6, default_lab;
6
7   void *do_switch (int num) {
8     switch(num) {
9     case 1:
10       return &&lab1;
11     case 2:
12       return &&lab2;
13     case 3:
14       return &&lab3;
15     case 4:
16       return &&lab4;
17     case 5:
18       return &&lab5;
19     case 6:
20       return &&lab6;
21     default:
22       return &&default_lab;
23     }
24   }
25
26   goto *do_switch (num);
27
28  lab1:
29   return 1;
30
31  lab2:
32   return 2;
33
34  lab3:
35   return 3;
36
37  lab4:
38   return 4;
39
40  lab5:
41   return 5;
42
43  lab6:
44   return 6;
45
46  default_lab:
47   return -1;
48 }
49
50 main()
51 {
52   int i;
53   for (i = 1; i <= 6; i++)
54     {
55       if (try (i) != i)
56         __builtin_abort();
57     }
58   __builtin_exit(0);
59 }