public class org.graalvm.compiler.hotspot.test.ExplicitExceptionTest extends org.graalvm.compiler.core.test.GraalCompilerTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.test.ExplicitExceptionTest
  super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
  private int expectedForeignCallCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest this
         0: .line 39
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
            return
        end local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/test/ExplicitExceptionTest;

  private static boolean exceptionWasSeen(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // jdk.vm.ci.meta.ResolvedJavaMethod method
         0: .line 50
            aload 0 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getProfilingInfo:()Ljdk/vm/ci/meta/ProfilingInfo;
            astore 1 /* profilingInfo */
        start local 1 // jdk.vm.ci.meta.ProfilingInfo profilingInfo
         1: .line 51
            aload 1 /* profilingInfo */
            ifnull 8
         2: .line 52
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 53
      StackMap locals: jdk.vm.ci.meta.ProfilingInfo int
      StackMap stack:
            aload 1 /* profilingInfo */
            iload 2 /* i */
            invokeinterface jdk.vm.ci.meta.ProfilingInfo.getExceptionSeen:(I)Ljdk/vm/ci/meta/TriState;
            getstatic jdk.vm.ci.meta.TriState.TRUE:Ljdk/vm/ci/meta/TriState;
            if_acmpne 6
         5: .line 54
            iconst_1
            ireturn
         6: .line 52
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 1 /* profilingInfo */
            invokeinterface jdk.vm.ci.meta.ProfilingInfo.getCodeSize:()I
            if_icmplt 4
        end local 2 // int i
         8: .line 58
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // jdk.vm.ci.meta.ProfilingInfo profilingInfo
        end local 0 // jdk.vm.ci.meta.ResolvedJavaMethod method
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0         method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            1    9     1  profilingInfo  Ljdk/vm/ci/meta/ProfilingInfo;
            3    8     2              i  I
    MethodParameters:
        Name  Flags
      method  

  protected jdk.vm.ci.code.InstalledCode getCode(jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.StructuredGraph, boolean, boolean, org.graalvm.compiler.options.OptionValues);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/StructuredGraph;ZZLorg/graalvm/compiler/options/OptionValues;)Ljdk/vm/ci/code/InstalledCode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=7, args_size=6
        start local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 3 // boolean forceCompile
        start local 4 // boolean installAsDefault
        start local 5 // org.graalvm.compiler.options.OptionValues options
         0: .line 63
            aload 0 /* this */
            aload 1 /* method */
            aload 2 /* graph */
            iload 3 /* forceCompile */
            iload 4 /* installAsDefault */
            aload 5 /* options */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.getCode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/StructuredGraph;ZZLorg/graalvm/compiler/options/OptionValues;)Ljdk/vm/ci/code/InstalledCode;
            astore 6 /* installedCode */
        start local 6 // jdk.vm.ci.code.InstalledCode installedCode
         1: .line 64
            aload 1 /* method */
            invokestatic org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.exceptionWasSeen:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            invokestatic org.junit.Assume.assumeTrue:(Z)V
         2: .line 65
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.expectedForeignCallCount:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.lastCompiledGraph:Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/extended/ForeignCallNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.assertDeepEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 66
            aload 6 /* installedCode */
            areturn
        end local 6 // jdk.vm.ci.code.InstalledCode installedCode
        end local 5 // org.graalvm.compiler.options.OptionValues options
        end local 4 // boolean installAsDefault
        end local 3 // boolean forceCompile
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lorg/graalvm/compiler/hotspot/test/ExplicitExceptionTest;
            0    4     1            method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    4     2             graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    4     3      forceCompile  Z
            0    4     4  installAsDefault  Z
            0    4     5           options  Lorg/graalvm/compiler/options/OptionValues;
            1    4     6     installedCode  Ljdk/vm/ci/code/InstalledCode;
    MethodParameters:
                  Name  Flags
      method            
      graph             
      forceCompile      
      installAsDefault  
      options           

  public static int testAIOOBESnippet(int[]);
    descriptor: ([I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int[] array
         0: .line 70
            aload 0 /* array */
            bipush 10
            iaload
            ireturn
        end local 0 // int[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  array  [I
    MethodParameters:
       Name  Flags
      array  

  public void testAIOOBE();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest this
         0: .line 75
            iconst_4
            newarray 10
            astore 1 /* array */
        start local 1 // int[] array
         1: .line 76
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 78
      StackMap locals: int[] int
      StackMap stack:
            aload 1 /* array */
            invokestatic org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.testAIOOBESnippet:([I)I
            pop
         4: .line 79
            goto 6
      StackMap locals:
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
         5: pop
         6: .line 76
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            sipush 10000
            if_icmplt 3
        end local 2 // int i
         8: .line 83
            aload 0 /* this */
            iconst_2
            putfield org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.expectedForeignCallCount:I
         9: .line 84
            aload 0 /* this */
            ldc "testAIOOBESnippet"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* array */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        10: .line 85
            return
        end local 1 // int[] array
        end local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/graalvm/compiler/hotspot/test/ExplicitExceptionTest;
            1   11     1  array  [I
            2    8     2      i  I
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.ArrayIndexOutOfBoundsException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static int testNPEArraySnippet(int[]);
    descriptor: ([I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int[] array
         0: .line 88
            aload 0 /* array */
            bipush 10
            iaload
            ireturn
        end local 0 // int[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  array  [I
    MethodParameters:
       Name  Flags
      array  

  public void testNPEArray();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest this
         0: .line 93
            aconst_null
            astore 1 /* array */
        start local 1 // int[] array
         1: .line 94
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 96
      StackMap locals: int[] int
      StackMap stack:
            aload 1 /* array */
            invokestatic org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.testNPEArraySnippet:([I)I
            pop
         4: .line 97
            goto 6
      StackMap locals:
      StackMap stack: java.lang.NullPointerException
         5: pop
         6: .line 94
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            sipush 10000
            if_icmplt 3
        end local 2 // int i
         8: .line 101
            aload 0 /* this */
            iconst_2
            putfield org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.expectedForeignCallCount:I
         9: .line 102
            aload 0 /* this */
            ldc "testNPEArraySnippet"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* array */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        10: .line 103
            return
        end local 1 // int[] array
        end local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/graalvm/compiler/hotspot/test/ExplicitExceptionTest;
            1   11     1  array  [I
            2    8     2      i  I
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.NullPointerException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static int testNPESnippet(org.graalvm.compiler.hotspot.test.ExplicitExceptionTest$TestClass);
    descriptor: (Lorg/graalvm/compiler/hotspot/test/ExplicitExceptionTest$TestClass;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest$TestClass obj
         0: .line 110
            aload 0 /* obj */
            getfield org.graalvm.compiler.hotspot.test.ExplicitExceptionTest$TestClass.field:I
            ireturn
        end local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest$TestClass obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Lorg/graalvm/compiler/hotspot/test/ExplicitExceptionTest$TestClass;
    MethodParameters:
      Name  Flags
      obj   

  public void testNPE();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest this
         0: .line 116
            new org.graalvm.compiler.hotspot.test.ExplicitExceptionTest$TestClass
            invokespecial org.graalvm.compiler.hotspot.test.ExplicitExceptionTest$TestClass.<init>:()V
         1: .line 117
            aconst_null
            astore 1 /* obj */
        start local 1 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest$TestClass obj
         2: .line 118
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 8
         4: .line 120
      StackMap locals: org.graalvm.compiler.hotspot.test.ExplicitExceptionTest$TestClass int
      StackMap stack:
            aload 1 /* obj */
            invokestatic org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.testNPESnippet:(Lorg/graalvm/compiler/hotspot/test/ExplicitExceptionTest$TestClass;)I
            pop
         5: .line 121
            goto 7
      StackMap locals:
      StackMap stack: java.lang.NullPointerException
         6: pop
         7: .line 118
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            sipush 10000
            if_icmplt 4
        end local 2 // int i
         9: .line 125
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.expectedForeignCallCount:I
        10: .line 126
            aload 0 /* this */
            ldc "testNPESnippet"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            invokevirtual org.graalvm.compiler.hotspot.test.ExplicitExceptionTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
        11: .line 127
            return
        end local 1 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest$TestClass obj
        end local 0 // org.graalvm.compiler.hotspot.test.ExplicitExceptionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/graalvm/compiler/hotspot/test/ExplicitExceptionTest;
            2   12     1   obj  Lorg/graalvm/compiler/hotspot/test/ExplicitExceptionTest$TestClass;
            3    9     2     i  I
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.NullPointerException
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "ExplicitExceptionTest.java"
NestMembers:
  org.graalvm.compiler.hotspot.test.ExplicitExceptionTest$TestClass
InnerClasses:
  public Result = org.graalvm.compiler.core.test.GraalCompilerTest$Result of org.graalvm.compiler.core.test.GraalCompilerTest
  private TestClass = org.graalvm.compiler.hotspot.test.ExplicitExceptionTest$TestClass of org.graalvm.compiler.hotspot.test.ExplicitExceptionTest