changeset 1836:3eab691bd9ac icedtea-2.6pre07

Merge jdk7u80-b02
author andrew
date Tue, 26 Aug 2014 17:33:01 +0100
parents f43a81252f82 (current diff) 5bd6f3adf690 (diff)
children ce230c0bdf04
files .hgtags
diffstat 4 files changed, 128 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Mon Aug 11 15:05:28 2014 +0100
+++ b/.hgtags	Tue Aug 26 17:33:01 2014 +0100
@@ -421,6 +421,7 @@
 2a9f5c00ba46f895bc9d16a584bf7d80c1822268 jdk7u55-b02
 0479d260ac835eb3f0c7f3d7d15be0599b92a20a jdk7u55-b03
 a244cc40ae0b29028ff8503ee516cb5f9e3db6e3 jdk7u55-b04
+25d63d986653d81522b01bbd2664083ae5fdc243 jdk7u65-b00
 25d63d986653d81522b01bbd2664083ae5fdc243 jdk7u55-b05
 76eeeaace70d38795eef5215f758493421cee0ac jdk7u55-b06
 08f7914d6aa947e73269b4e60110ed12573ffa28 jdk7u55-b07
@@ -432,7 +433,10 @@
 81bf1ca3a3a71c628b7d952ba47c6f200a223f27 jdk7u55-b13
 96d55b4d88fea1d9f8227e70003210a6c10a1dba jdk7u55-b30
 c1964a222000b4884b992fdbaf8f62a45fb893c9 jdk7u55-b14
+56c12a84e86eb47e24e4bc50a4602a276e6b4e4b jdk7u55-b15
 4f6115ba266e5489b5e1968a28304f82be1f5641 jdk7u55-b31
+ec8793f5aa4fb0aff4aa2f02f458fa6720f3ec6f jdk7u55-b32
+13fed9e9f022e4a7f914c8410cbaa6f6564d4efd jdk7u55-b33
 849b17bc6e9a08fa41e0ef631e51366a09842e64 jdk7u60-b00
 b19e375d9829daf207b1bdc7f908a3e1d548462c jdk7u60-b01
 954e1616449af74f68aed57261cbeb62403377f1 jdk7u60-b02
@@ -457,7 +461,29 @@
 5f917c4b87a952a8bf79de08f3e2dd3e56c41657 icedtea-2.6pre05
 7568ebdada118da1d1a6addcf6316ffda21801fd jdk7u60-b15
 057caf9e0774e7c530c5710127f70c8d5f46deab jdk7u60-b16
+b7cc00c573c294b144317d44803758a291b3deda jdk7u60-b17
 b7cc00c573c294b144317d44803758a291b3deda jdk7u60-b18
-b7cc00c573c294b144317d44803758a291b3deda jdk7u60-b17
+7effcbb8d1fd7ced194a294e29eea28bf552ac34 jdk7u65-b01
 40aa95c8477aa0a3f090859570f5536afc9026b7 jdk7u60-b19
+75b8c65f4c148baa4084022035b22de47df9426b jdk7u65-b02
+16bb02dae837566f3c350c6313b09f6110dcba68 jdk7u65-b03
+91677116552f743f3589f3d2ba255fa1079c0c48 jdk7u65-b04
+8f585b94be8c83f89fc481cf010a129ef75cd31b jdk7u65-b05
+c3a8556785e89b7868fc4ece666120dbf8c5c7a7 jdk7u65-b06
+1978b6434c4f717ba1bd715f016ab99dff879857 jdk7u65-b07
+684f0285b699d304d1efff487b550ff2e1679e98 jdk7u65-b08
+2715f752385349274b43a1efaab5733bafc40557 jdk7u65-b09
+98cac38ef1302939a37b85c0208a7969ba4cd8ad jdk7u65-b10
+4c40603840a8ffbf5e30049b52ff336a9aca04c1 jdk7u65-b11
+36b01ef633b2e70836b5914aa6924e81ff4d41ec jdk7u65-b12
+5ba8a1ef0f82d341ede3ec2fdac7e012e42594c4 jdk7u65-b13
+52769f410515f6a7fa66a93b24a1327fa6b6174a jdk7u65-b14
+7f2891e4c6fcd9c0e31f50189a50c8de189d774f jdk7u65-b15
+dea7e67840b68ae6752b37e69e242dae2765b878 jdk7u65-b16
+15a051dfadb6a7d014f0d2739ccf0a63ade56313 jdk7u65-b17
+576e2fd21368ba67f1f19d3180f78bc440b795a1 jdk7u65-b30
+0f809f893588548a3b5c8441e28c9e0a62bc13ef jdk7u65-b18
+eae289997f58ef6396dc323c3d5b93a56fb43573 jdk7u65-b19
+afc940d62b49059f565f87c83343fa3d28df883b jdk7u65-b32
 772aad4e9681828b8ee193b9ed971cbfe6c7f347 jdk7u80-b00
+6c307a0b7a94e002d8a2532ffd8146d6c53f42d3 jdk7u80-b01
--- a/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Mon Aug 11 15:05:28 2014 +0100
+++ b/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Tue Aug 26 17:33:01 2014 +0100
@@ -1067,7 +1067,7 @@
                              boolean testFirst) {
             Env<GenContext> loopEnv = env.dup(loop, new GenContext());
             int startpc = code.entryPoint();
-            if (testFirst) {
+            if (testFirst) { //while or for loop
                 CondItem c;
                 if (cond != null) {
                     code.statBegin(cond.pos);
@@ -1097,6 +1097,9 @@
                 code.resolve(c.falseJumps);
             }
             code.resolve(loopEnv.info.exit);
+            if (loopEnv.info.exit != null) {
+                loopEnv.info.exit.state.defined.excludeFrom(code.nextreg);
+            }
         }
 
     public void visitForeachLoop(JCEnhancedForLoop tree) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/T8050386/WrongStackframeGenerationTest1.java	Tue Aug 26 17:33:01 2014 +0100
@@ -0,0 +1,47 @@
+/*
+ * 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 8050386
+ * @summary Verification error due to a bad stackmap frame generated by javac
+ */
+
+public class WrongStackframeGenerationTest1 {
+    public static void main(String[] args) {}
+
+    static void foo(){
+        while (true) {
+            int i = 0;
+            break;
+        }
+        switch (1) {
+            case 1:
+                int j = 0;
+            case 2:
+                bar();
+        }
+    }
+
+    static void bar() {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/T8050386/WrongStackframeGenerationTest2.java	Tue Aug 26 17:33:01 2014 +0100
@@ -0,0 +1,50 @@
+/*
+ * 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 8050386
+ * @summary Verification error due to a bad stackmap frame generated by javac
+ */
+
+public class WrongStackframeGenerationTest2 {
+    public static void main(String[] args) {}
+
+    static void foo() {
+        int len;
+        for (;;) {
+            try {
+                len = 1;
+                break;
+            } catch (Exception e) {
+            }
+        }
+
+        try {
+           if (len == -1) {
+               len = 0;
+           }
+        } finally {
+        }
+    }
+}