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