TestCaseSwitch.java revision 2772:3bdbc3b8aa14
1/* /nodynamiccopyright/ */ 2 3public class TestCaseSwitch { 4 5 @AliveRange(varName="o", bytecodeStart=31, bytecodeLength=16) 6 @AliveRange(varName="o", bytecodeStart=50, bytecodeLength=15) 7 @AliveRange(varName="o", bytecodeStart=68, bytecodeLength=1) 8 @AliveRange(varName="oo", bytecodeStart=39, bytecodeLength=8) 9 @AliveRange(varName="uu", bytecodeStart=59, bytecodeLength=6) 10 void m1(String[] args) { 11 Object o; 12 switch (args.length) { 13 case 0: 14 o = "0"; 15 o.hashCode(); 16 Object oo = "oo"; 17 oo.hashCode(); 18 break; 19 case 1: 20 o = "1"; 21 o.hashCode(); 22 Object uu = "uu"; 23 uu.hashCode(); 24 break; 25 } 26 o = "return"; 27 } 28 29 @AliveRange(varName="o", bytecodeStart=95, bytecodeLength=18) 30 @AliveRange(varName="o", bytecodeStart=116, bytecodeLength=15) 31 @AliveRange(varName="o", bytecodeStart=134, bytecodeLength=1) 32 @AliveRange(varName="oo", bytecodeStart=104, bytecodeLength=9) 33 @AliveRange(varName="uu", bytecodeStart=125, bytecodeLength=6) 34 void m2(String[] args) { 35 Object o; 36 switch (args[0]) { 37 case "string0": 38 o = "0"; 39 o.hashCode(); 40 Object oo = "oo"; 41 oo.hashCode(); 42 break; 43 case "string1": 44 o = "1"; 45 o.hashCode(); 46 Object uu = "uu"; 47 uu.hashCode(); 48 break; 49 } 50 o = "return"; 51 } 52 53 @AliveRange(varName="o", bytecodeStart=35, bytecodeLength=8) 54 @AliveRange(varName="o", bytecodeStart=46, bytecodeLength=8) 55 @AliveRange(varName="o", bytecodeStart=78, bytecodeLength=5) 56 @AliveRange(varName="o", bytecodeStart=86, bytecodeLength=1) 57 @AliveRange(varName="oo", bytecodeStart=56, bytecodeLength=16) 58 void m3(int i) { 59 Object o; 60 switch (i) { 61 case 0: 62 o = "0"; 63 o.hashCode(); 64 break; 65 case 1: 66 o = "1"; 67 o.hashCode(); 68 break; 69 case 2: 70 int oo = i; 71 if (oo > 1) { 72 System.out.println("greater"); 73 } 74 break; 75 case 3: 76 int uu = i; 77 default: 78 o = "default"; 79 o.hashCode(); 80 } 81 o = "finish"; 82 } 83 84 @AliveRange(varName="oCache", bytecodeStart=30, bytecodeLength=6) 85 @AliveRange(varName="cache", bytecodeStart=41, bytecodeLength=3) 86 @AliveRange(varName="cache", bytecodeStart=54, bytecodeLength=2) 87 @AliveRange(varName="service", bytecodeStart=39, bytecodeLength=5) 88 Object m4(int i) { 89 Object cache; 90 switch (i) { 91 case 0: 92 Object oCache = null; 93 if (oCache != null) { 94 return oCache; 95 } 96 case 1: 97 Object service = null; 98 cache = null; 99 break; 100 default: 101 throw new AssertionError(""); 102 } 103 return cache; 104 } 105 106} 107