Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8314078

HotSpotConstantPool.lookupField() asserts due to field changes in ConstantPool.cpp

    XMLWordPrintable

Details

    • b11
    • Verified

    Description

      After JDK-8301996, the encoding of getfield/putfield/getstatic/putstatic has been changed in constantPool.cpp. However, jdk/vm/ci/hotspot/HotSpotConstantPool.java has not been updated accordingly:

      # assert(i >= 0 && i< _length) failed: oob: 0 <= 65536 < 13
      V [libjvm.so+0xa530c4] ConstantPool::to_cp_index(int, Bytecodes::Code)+0x134 (array.hpp:128)
      V [libjvm.so+0xa532d2] ConstantPool::name_and_type_ref_index_at(int, Bytecodes::Code)+0x12 (constantPool.cpp:926)
      V [libjvm.so+0x10744f8] c2v_lookupNameAndTypeRefIndexInPool(JNIEnv_*, _jobject*, _jobject*, long, int, int)+0x148 (jvmciCompilerToVM.cpp:828)
      j jdk.vm.ci.hotspot.CompilerToVM.lookupNameAndTypeRefIndexInPool(Ljdk/vm/ci/hotspot/HotSpotConstantPool;JII)I+0 jdk.internal.vm.ci@22-internal
      j jdk.vm.ci.hotspot.CompilerToVM.lookupNameAndTypeRefIndexInPool(Ljdk/vm/ci/hotspot/HotSpotConstantPool;II)I+8 jdk.internal.vm.ci@22-internal
      j jdk.vm.ci.hotspot.HotSpotConstantPool.getNameAndTypeRefIndexAt(II)I+6 jdk.internal.vm.ci@22-internal
      j jdk.vm.ci.hotspot.HotSpotConstantPool.lookupField(ILjdk/vm/ci/meta/ResolvedJavaMethod;I)Ljdk/vm/ci/meta/JavaField;+11 jdk.internal.vm.ci@22-internal
      j org.graalvm.compiler.java.BytecodeParser.lookupField(II)Ljdk/vm/ci/meta/JavaField;+16 jdk.internal.vm.compiler@21-internal

      Attachments

        Issue Links

          Activity

            People

              iklam Ioi Lam
              iklam Ioi Lam
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: