test/hotspot/jtreg/runtime/linkResolver/TestDeletedMethod_Sub.jcod
author dholmes
Tue, 09 Oct 2018 20:19:22 -0400
changeset 52066 49a21be61dcd
permissions -rw-r--r--
8211065: Private method check in linkResolver is incorrect Reviewed-by: acorn, lfoltan

/*
 * 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