test/tools/javac/flow/tests/TestCaseIfElse.java

Sat, 14 Sep 2013 19:04:47 +0100

author
vromero
date
Sat, 14 Sep 2013 19:04:47 +0100
changeset 2027
4932bb04c4b8
child 2406
372fd7283bf0
permissions
-rw-r--r--

7047734: javac, the LVT is not generated correctly in several scenarios
Reviewed-by: jjg, mcimadamore

vromero@2027 1 /* /nodynamiccopyright/ */
vromero@2027 2
vromero@2027 3 public class TestCaseIfElse {
vromero@2027 4
vromero@2027 5 @AliveRange(varName="o", bytecodeStart=9, bytecodeLength=8)
vromero@2027 6 @AliveRange(varName="o", bytecodeStart=20, bytecodeLength=9)
vromero@2027 7 void m0(String[] args) {
vromero@2027 8 Object o;
vromero@2027 9 if (args[0] != null) {
vromero@2027 10 o = "then";
vromero@2027 11 o.hashCode();
vromero@2027 12 } else {
vromero@2027 13 o = "else";
vromero@2027 14 o.hashCode();
vromero@2027 15 }
vromero@2027 16 o = "finish";
vromero@2027 17 }
vromero@2027 18
vromero@2027 19 @AliveRange(varName="o", bytecodeStart=10, bytecodeLength=8)
vromero@2027 20 @AliveRange(varName="o", bytecodeStart=21, bytecodeLength=9)
vromero@2027 21 void m1() {
vromero@2027 22 Object o;
vromero@2027 23 int i = 5;
vromero@2027 24 if (i == 5) {
vromero@2027 25 o = "then";
vromero@2027 26 o.hashCode();
vromero@2027 27 } else {
vromero@2027 28 o = "else";
vromero@2027 29 o.hashCode();
vromero@2027 30 }
vromero@2027 31 o = "finish";
vromero@2027 32 }
vromero@2027 33
vromero@2027 34 @AliveRange(varName="o", bytecodeStart=10, bytecodeLength=8)
vromero@2027 35 @AliveRange(varName="o", bytecodeStart=21, bytecodeLength=9)
vromero@2027 36 void m2(String[] args) {
vromero@2027 37 Object o;
vromero@2027 38 int i = 5;
vromero@2027 39 if (i != 5) {
vromero@2027 40 o = "then";
vromero@2027 41 o.hashCode();
vromero@2027 42 } else {
vromero@2027 43 o = "else";
vromero@2027 44 o.hashCode();
vromero@2027 45 }
vromero@2027 46 o = "finish";
vromero@2027 47 }
vromero@2027 48 }

mercurial