1 /* { dg-options "-O2 -fdump-tree-vrp1" } */
2 /* { dg-final { scan-tree-dump "case 9 ... 10:" "vrp1" } } */
3 /* { dg-final { scan-tree-dump "case 17 ... 18:" "vrp1" } } */
4 /* { dg-final { scan-tree-dump "case 27 ... 30:" "vrp1" } } */
5
6 extern void foo (void);
7 extern void bar (void);
8
9 void
test1(int i)10 test1 (int i)
11 {
12 if (i != 7 && i != 8)
13 switch (i)
14 {
15 case 1:
16 case 2:
17 foo ();
18 break;
19 case 7: /* Redundant label. */
20 case 8: /* Redundant label. */
21 case 9:
22 case 10:
23 bar ();
24 break;
25 }
26 }
27
28 void
test3(int i)29 test3 (int i)
30 {
31 if (i != 19 && i != 20)
32 switch (i)
33 {
34 case 1:
35 case 2:
36 foo ();
37 break;
38 case 17:
39 case 18:
40 case 19: /* Redundant label. */
41 case 20: /* Redundant label. */
42 bar ();
43 break;
44 }
45 }
46
47 void
test2(int i)48 test2 (int i)
49 {
50 if (i != 28 && i != 29)
51 switch (i)
52 {
53 case 1:
54 case 2:
55 foo ();
56 break;
57 /* No redundancy. */
58 case 27:
59 case 28:
60 case 29:
61 case 30:
62 bar ();
63 break;
64 }
65 }
66