src/share/classes/com/sun/tools/javac/jvm/Gen.java

changeset 3864
d0cf124d8ee9
parent 3446
e468915bad3a
parent 3852
f02d967ddce2
     1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Tue Feb 04 17:38:03 2020 +0800
     1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Tue Feb 04 17:57:00 2020 +0800
     1.3 @@ -1222,9 +1222,10 @@
     1.4                  code.resolve(c.jumpTrue(), startpc);
     1.5                  code.resolve(c.falseJumps);
     1.6              }
     1.7 -            code.resolve(loopEnv.info.exit);
     1.8 -            if (loopEnv.info.exit != null) {
     1.9 -                loopEnv.info.exit.state.defined.excludeFrom(code.nextreg);
    1.10 +            Chain exit = loopEnv.info.exit;
    1.11 +            if (exit != null) {
    1.12 +                code.resolve(exit);
    1.13 +                exit.state.defined.excludeFrom(code.nextreg);
    1.14              }
    1.15          }
    1.16  
    1.17 @@ -1235,7 +1236,11 @@
    1.18      public void visitLabelled(JCLabeledStatement tree) {
    1.19          Env<GenContext> localEnv = env.dup(tree, new GenContext());
    1.20          genStat(tree.body, localEnv, CRT_STATEMENT);
    1.21 -        code.resolve(localEnv.info.exit);
    1.22 +        Chain exit = localEnv.info.exit;
    1.23 +        if (exit != null) {
    1.24 +            code.resolve(exit);
    1.25 +            exit.state.defined.excludeFrom(code.nextreg);
    1.26 +        }
    1.27      }
    1.28  
    1.29      public void visitSwitch(JCSwitch tree) {
    1.30 @@ -1344,7 +1349,11 @@
    1.31              }
    1.32  
    1.33              // Resolve all breaks.
    1.34 -            code.resolve(switchEnv.info.exit);
    1.35 +            Chain exit = switchEnv.info.exit;
    1.36 +            if  (exit != null) {
    1.37 +                code.resolve(exit);
    1.38 +                exit.state.defined.excludeFrom(code.nextreg);
    1.39 +            }
    1.40  
    1.41              // If we have not set the default offset, we do so now.
    1.42              if (code.get4(tableBase) == -1) {

mercurial