1 // RUN: clang-cc %s -emit-llvm-bc -o - | opt -std-compile-opts -disable-output
2 
3 int foo(int i) {
4   int j = 0;
5   switch (i) {
6   case -1:
7     j = 1; break;
8   case 1 :
9     j = 2; break;
10   case 2:
11     j = 3; break;
12   default:
13     j = 42; break;
14   }
15   j = j + 1;
16   return j;
17 }
18 
19 
20 int foo2(int i) {
21   int j = 0;
22   switch (i) {
23   case 1 :
24     j = 2; break;
25   case 2 ... 10:
26     j = 3; break;
27   default:
28     j = 42; break;
29   }
30   j = j + 1;
31   return j;
32 }
33 
34 
35 int foo3(int i) {
36   int j = 0;
37   switch (i) {
38   default:
39     j = 42; break;
40   case 111:
41     j = 111; break;
42   case 0 ... 100:
43     j = 1; break;
44   case 222:
45     j = 222; break;
46   }
47   return j;
48 }
49 
50 
51 int foo4(int i) {
52   int j = 0;
53   switch (i) {
54   case 111:
55     j = 111; break;
56   case 0 ... 100:
57     j = 1; break;
58   case 222:
59     j = 222; break;
60   default:
61     j = 42; break;
62   case 501 ... 600:
63     j = 5; break;
64   }
65   return j;
66 }
67 
68 void foo5(){
69     switch(0){
70     default:
71         if (0) {
72 
73         }
74     }
75 }
76 
77 void foo6(){
78     switch(0){
79     }
80 }
81 
82 void foo7(){
83     switch(0){
84       foo7();
85     }
86 }
87 
88