test/hotspot/jtreg/runtime/linkResolver/TestDeletedMethod_Sub.jcod
changeset 52066 49a21be61dcd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/linkResolver/TestDeletedMethod_Sub.jcod	Tue Oct 09 20:19:22 2018 -0400
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2018, 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.
+ */
+
+// We have deleted the local method m() by renaming it
+// We have set the class file version to 49 to allow relaxed access checks
+
+class TestDeletedMethod_Sub {
+  0xCAFEBABE;
+  0; // minor version
+  49; // version
+  [] { // Constant Pool
+    ; // first element is empty
+    Method #7 #21; // #1
+    Field #22 #23; // #2
+    String #24; // #3
+    Method #25 #26; // #4
+    class #27; // #5
+    Method #5 #28; // #6
+    class #29; // #7
+    Utf8 "ID"; // #8
+    Utf8 "I"; // #9
+    Utf8 "ConstantValue"; // #10
+    int 0x00000001; // #11
+    Utf8 "<init>"; // #12
+    Utf8 "()V"; // #13
+    Utf8 "Code"; // #14
+    Utf8 "LineNumberTable"; // #15
+    Utf8 "m"; // #16
+    Utf8 "()I"; // #17
+    Utf8 "test"; // #18
+    Utf8 "SourceFile"; // #19
+    Utf8 "TestDeletedMethod.java"; // #20
+    NameAndType #12 #13; // #21
+    class #30; // #22
+    NameAndType #31 #32; // #23
+    Utf8 "Sub.m"; // #24
+    class #33; // #25
+    NameAndType #34 #35; // #26
+    Utf8 "TestDeletedMethod_Sub"; // #27
+    NameAndType #16 #17; // #28
+    Utf8 "TestDeletedMethod_Super"; // #29
+    Utf8 "java/lang/System"; // #30
+    Utf8 "out"; // #31
+    Utf8 "Ljava/io/PrintStream;"; // #32
+    Utf8 "java/io/PrintStream"; // #33
+    Utf8 "println"; // #34
+    Utf8 "(Ljava/lang/String;)V"; // #35
+    Utf8 "m_renamed"; // #36 added
+  } // Constant Pool
+
+  0x0020; // access
+  #5;// this_cpx
+  #7;// super_cpx
+
+  [] { // Interfaces
+  } // Interfaces
+
+  [] { // fields
+    { // Member
+      0x0019; // access
+      #8; // name_cpx
+      #9; // sig_cpx
+      [] { // Attributes
+        Attr(#10) { // ConstantValue
+          #11;
+        } // end ConstantValue
+      } // Attributes
+    } // Member
+  } // fields
+
+  [] { // methods
+    { // Member
+      0x0000; // access
+      #12; // name_cpx
+      #13; // sig_cpx
+      [] { // Attributes
+        Attr(#14) { // Code
+          1; // max_stack
+          1; // max_locals
+          Bytes[]{
+            0x2AB70001B1;
+          };
+          [] { // Traps
+          } // end Traps
+          [] { // Attributes
+            Attr(#15) { // LineNumberTable
+              [] { // LineNumberTable
+                0  43;
+              }
+            } // end LineNumberTable
+          } // Attributes
+        } // end Code
+      } // Attributes
+    } // Member
+    ;
+    { // Member
+      0x000A; // access
+      #36; // name_cpx UPDATED to rename method
+      #17; // sig_cpx
+      [] { // Attributes
+        Attr(#14) { // Code
+          2; // max_stack
+          0; // max_locals
+          Bytes[]{
+            0xB200021203B60004;
+            0x04AC;
+          };
+          [] { // Traps
+          } // end Traps
+          [] { // Attributes
+            Attr(#15) { // LineNumberTable
+              [] { // LineNumberTable
+                0  47;
+                8  48;
+              }
+            } // end LineNumberTable
+          } // Attributes
+        } // end Code
+      } // Attributes
+    } // Member
+    ;
+    { // Member
+      0x0009; // access
+      #18; // name_cpx
+      #17; // sig_cpx
+      [] { // Attributes
+        Attr(#14) { // Code
+          1; // max_stack
+          0; // max_locals
+          Bytes[]{
+            0xB80006AC;
+          };
+          [] { // Traps
+          } // end Traps
+          [] { // Attributes
+            Attr(#15) { // LineNumberTable
+              [] { // LineNumberTable
+                0  51;
+              }
+            } // end LineNumberTable
+          } // Attributes
+        } // end Code
+      } // Attributes
+    } // Member
+  } // methods
+
+  [] { // Attributes
+    Attr(#19) { // SourceFile
+      #20;
+    } // end SourceFile
+  } // Attributes
+} // end class TestDeletedMethod_Sub