8050283: fix for JDK-8049305 should be removed
authorvromero
Mon, 14 Jul 2014 16:59:25 -0400
changeset 25604 8ff6a4ac812a
parent 25603 d5fa4eab2d26
child 25605 c2d72342fe19
8050283: fix for JDK-8049305 should be removed Reviewed-by: jjg
langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java
langtools/test/tools/javac/T8049305/WrongStackframeGenerationTest.java
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Mon Jul 14 11:46:31 2014 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Mon Jul 14 16:59:25 2014 -0400
@@ -1072,8 +1072,7 @@
                              boolean testFirst) {
             Env<GenContext> loopEnv = env.dup(loop, new GenContext());
             int startpc = code.entryPoint();
-            boolean recalculateState = false;
-            if (testFirst) { //while or for loop
+            if (testFirst) {
                 CondItem c;
                 if (cond != null) {
                     code.statBegin(cond.pos);
@@ -1082,9 +1081,6 @@
                     c = items.makeCondItem(goto_);
                 }
                 Chain loopDone = c.jumpFalse();
-                if (loopDone == null) {
-                    recalculateState = true;
-                }
                 code.resolve(c.trueJumps);
                 genStat(body, loopEnv, CRT_STATEMENT | CRT_FLOW_TARGET);
                 if (varDebugInfo) {
@@ -1121,9 +1117,6 @@
                 code.resolve(c.jumpTrue(), startpc);
                 code.resolve(c.falseJumps);
             }
-            if (recalculateState && loopEnv.info.exit != null) {
-                loopEnv.info.exit.state.defined = code.state.defined.dup();
-            }
             code.resolve(loopEnv.info.exit);
         }
 
--- a/langtools/test/tools/javac/T8049305/WrongStackframeGenerationTest.java	Mon Jul 14 11:46:31 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test
- * @bug 8049305
- * @summary Verification error due to a bad stackmap frame generated by javac
- */
-
-public class WrongStackframeGenerationTest {
-    public static void main(String[] args) {
-        foo();
-    }
-
-    static void foo(){
-        while (true) {
-            int i = 0;
-            break;
-        }
-        switch (1) {
-            case 1:
-                int j = 0;
-            case 2:
-                bar();
-        }
-    }
-
-    static void bar() {}
-}