public class org.graalvm.compiler.core.test.VerifyBailoutUsageTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.core.test.VerifyBailoutUsageTest
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
         0: .line 58
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/VerifyBailoutUsageTest;

  public void testInvalidBailout01();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
         0: .line 95
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/VerifyBailoutUsageTest;
    RuntimeInvisibleAnnotations: 
      Test()

  public void testInvalidBailout02();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
         0: .line 100
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/VerifyBailoutUsageTest;
    RuntimeInvisibleAnnotations: 
      Test()

  public void testInvalidBailout03();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
         0: .line 105
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/VerifyBailoutUsageTest;
    RuntimeInvisibleAnnotations: 
      Test()

  public void testValidPermanentBailout();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
         0: .line 110
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/VerifyBailoutUsageTest;
    RuntimeInvisibleAnnotations: 
      Test()

  public void testValidRetryableBailout();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
         0: .line 115
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTest cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.graalvm.compiler.core.test.VerifyBailoutUsageTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/test/VerifyBailoutUsageTest;
    RuntimeInvisibleAnnotations: 
      Test()

  private static void testBailoutUsage(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=19, args_size=1
        start local 0 // java.lang.Class c
         0: .line 122
            ldc Lorg/graalvm/compiler/runtime/RuntimeProvider;
            invokestatic org.graalvm.compiler.api.test.Graal.getRequiredCapability:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.runtime.RuntimeProvider
            astore 1 /* rt */
        start local 1 // org.graalvm.compiler.runtime.RuntimeProvider rt
         1: .line 123
            aload 1 /* rt */
            invokeinterface org.graalvm.compiler.runtime.RuntimeProvider.getHostBackend:()Lorg/graalvm/compiler/core/target/Backend;
            invokevirtual org.graalvm.compiler.core.target.Backend.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
            astore 2 /* providers */
        start local 2 // org.graalvm.compiler.phases.util.Providers providers
         2: .line 124
            aload 2 /* providers */
            invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            astore 3 /* metaAccess */
        start local 3 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         3: .line 125
            new org.graalvm.compiler.phases.PhaseSuite
            dup
            invokespecial org.graalvm.compiler.phases.PhaseSuite.<init>:()V
            astore 4 /* graphBuilderSuite */
        start local 4 // org.graalvm.compiler.phases.PhaseSuite graphBuilderSuite
         4: .line 126
            new org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins
            dup
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
            dup
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.<init>:()V
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;)V
            astore 5 /* plugins */
        start local 5 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins plugins
         5: .line 127
            aload 5 /* plugins */
            invokestatic org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.getDefault:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.withEagerResolving:(Z)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.withUnresolvedIsError:(Z)Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            astore 6 /* config */
        start local 6 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration config
         6: .line 128
            aload 4 /* graphBuilderSuite */
            new org.graalvm.compiler.java.GraphBuilderPhase
            dup
            aload 6 /* config */
            invokespecial org.graalvm.compiler.java.GraphBuilderPhase.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;)V
            invokevirtual org.graalvm.compiler.phases.PhaseSuite.appendPhase:(Lorg/graalvm/compiler/phases/BasePhase;)V
         7: .line 129
            new org.graalvm.compiler.phases.tiers.HighTierContext
            dup
            aload 2 /* providers */
            aload 4 /* graphBuilderSuite */
            getstatic org.graalvm.compiler.phases.OptimisticOptimizations.NONE:Lorg/graalvm/compiler/phases/OptimisticOptimizations;
            invokespecial org.graalvm.compiler.phases.tiers.HighTierContext.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/phases/PhaseSuite;Lorg/graalvm/compiler/phases/OptimisticOptimizations;)V
            astore 7 /* context */
        start local 7 // org.graalvm.compiler.phases.tiers.HighTierContext context
         8: .line 130
            invokestatic org.graalvm.compiler.core.test.GraalCompilerTest.getInitialOptions:()Lorg/graalvm/compiler/options/OptionValues;
            astore 8 /* options */
        start local 8 // org.graalvm.compiler.options.OptionValues options
         9: .line 131
            aload 8 /* options */
            getstatic org.graalvm.compiler.debug.DebugHandlersFactory.LOADER:Ljava/lang/Iterable;
            invokestatic org.graalvm.compiler.debug.DebugContext.create:(Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;)Lorg/graalvm/compiler/debug/DebugContext;
            astore 9 /* debug */
        start local 9 // org.graalvm.compiler.debug.DebugContext debug
        10: .line 132
            aload 0 /* c */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 26
      StackMap locals: java.lang.Class org.graalvm.compiler.runtime.RuntimeProvider org.graalvm.compiler.phases.util.Providers jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.phases.PhaseSuite org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration org.graalvm.compiler.phases.tiers.HighTierContext org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext top int int java.lang.reflect.Method[]
      StackMap stack:
        11: aload 13
            iload 11
            aaload
            astore 10 /* m */
        start local 10 // java.lang.reflect.Method m
        12: .line 133
            aload 10 /* m */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isNative:(I)Z
            ifne 25
            aload 10 /* m */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
            ifne 25
        13: .line 134
            aload 3 /* metaAccess */
            aload 10 /* m */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 14 /* method */
        start local 14 // jdk.vm.ci.meta.ResolvedJavaMethod method
        14: .line 135
            new org.graalvm.compiler.nodes.StructuredGraph$Builder
            dup
            aload 8 /* options */
            aload 9 /* debug */
            invokespecial org.graalvm.compiler.nodes.StructuredGraph$Builder.<init>:(Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;)V
            aload 14 /* method */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.method:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph$Builder;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph$Builder.build:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 15 /* graph */
        start local 15 // org.graalvm.compiler.nodes.StructuredGraph graph
        15: .line 136
            aload 4 /* graphBuilderSuite */
            aload 15 /* graph */
            aload 7 /* context */
            invokevirtual org.graalvm.compiler.phases.PhaseSuite.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
        16: .line 137
            aconst_null
            astore 16
            aconst_null
            astore 17
        17: aload 9 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.disableIntercept:()Lorg/graalvm/compiler/debug/DebugCloseable;
            astore 18 /* s */
        start local 18 // org.graalvm.compiler.debug.DebugCloseable s
        18: .line 138
            new org.graalvm.compiler.core.test.VerifyBailoutUsage
            dup
            invokespecial org.graalvm.compiler.core.test.VerifyBailoutUsage.<init>:()V
            aload 15 /* graph */
            aload 7 /* context */
            invokevirtual org.graalvm.compiler.core.test.VerifyBailoutUsage.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
        19: .line 139
            aload 18 /* s */
            ifnull 25
            aload 18 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
            goto 25
      StackMap locals: java.lang.Class org.graalvm.compiler.runtime.RuntimeProvider org.graalvm.compiler.phases.util.Providers jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.phases.PhaseSuite org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration org.graalvm.compiler.phases.tiers.HighTierContext org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext java.lang.reflect.Method int int java.lang.reflect.Method[] jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugCloseable
      StackMap stack: java.lang.Throwable
        20: astore 16
            aload 18 /* s */
            ifnull 21
            aload 18 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugCloseable.close:()V
        end local 18 // org.graalvm.compiler.debug.DebugCloseable s
      StackMap locals:
      StackMap stack:
        21: aload 16
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 17
            aload 16
            ifnonnull 23
            aload 17
            astore 16
            goto 24
      StackMap locals:
      StackMap stack:
        23: aload 16
            aload 17
            if_acmpeq 24
            aload 16
            aload 17
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        24: aload 16
            athrow
        end local 15 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 14 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 10 // java.lang.reflect.Method m
        25: .line 132
      StackMap locals: java.lang.Class org.graalvm.compiler.runtime.RuntimeProvider org.graalvm.compiler.phases.util.Providers jdk.vm.ci.meta.MetaAccessProvider org.graalvm.compiler.phases.PhaseSuite org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration org.graalvm.compiler.phases.tiers.HighTierContext org.graalvm.compiler.options.OptionValues org.graalvm.compiler.debug.DebugContext top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 11 1
      StackMap locals:
      StackMap stack:
        26: iload 11
            iload 12
            if_icmplt 11
        27: .line 142
            return
        end local 9 // org.graalvm.compiler.debug.DebugContext debug
        end local 8 // org.graalvm.compiler.options.OptionValues options
        end local 7 // org.graalvm.compiler.phases.tiers.HighTierContext context
        end local 6 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration config
        end local 5 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins plugins
        end local 4 // org.graalvm.compiler.phases.PhaseSuite graphBuilderSuite
        end local 3 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 2 // org.graalvm.compiler.phases.util.Providers providers
        end local 1 // org.graalvm.compiler.runtime.RuntimeProvider rt
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   28     0                  c  Ljava/lang/Class<*>;
            1   28     1                 rt  Lorg/graalvm/compiler/runtime/RuntimeProvider;
            2   28     2          providers  Lorg/graalvm/compiler/phases/util/Providers;
            3   28     3         metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            4   28     4  graphBuilderSuite  Lorg/graalvm/compiler/phases/PhaseSuite<Lorg/graalvm/compiler/phases/tiers/HighTierContext;>;
            5   28     5            plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration$Plugins;
            6   28     6             config  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration;
            8   28     7            context  Lorg/graalvm/compiler/phases/tiers/HighTierContext;
            9   28     8            options  Lorg/graalvm/compiler/options/OptionValues;
           10   28     9              debug  Lorg/graalvm/compiler/debug/DebugContext;
           12   25    10                  m  Ljava/lang/reflect/Method;
           14   25    14             method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           15   25    15              graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
           18   21    18                  s  Lorg/graalvm/compiler/debug/DebugCloseable;
      Exception table:
        from    to  target  type
          18    19      20  any
          17    22      22  any
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
      Name  Flags
      c     
}
SourceFile: "VerifyBailoutUsageTest.java"
NestMembers:
  org.graalvm.compiler.core.test.VerifyBailoutUsageTest$InvalidBailoutUsagePhase1  org.graalvm.compiler.core.test.VerifyBailoutUsageTest$InvalidBailoutUsagePhase2  org.graalvm.compiler.core.test.VerifyBailoutUsageTest$InvalidBailoutUsagePhase3  org.graalvm.compiler.core.test.VerifyBailoutUsageTest$ValidPermanentBailoutUsage  org.graalvm.compiler.core.test.VerifyBailoutUsageTest$ValidRetryableBailoutUsage
InnerClasses:
  private InvalidBailoutUsagePhase1 = org.graalvm.compiler.core.test.VerifyBailoutUsageTest$InvalidBailoutUsagePhase1 of org.graalvm.compiler.core.test.VerifyBailoutUsageTest
  private InvalidBailoutUsagePhase2 = org.graalvm.compiler.core.test.VerifyBailoutUsageTest$InvalidBailoutUsagePhase2 of org.graalvm.compiler.core.test.VerifyBailoutUsageTest
  private InvalidBailoutUsagePhase3 = org.graalvm.compiler.core.test.VerifyBailoutUsageTest$InvalidBailoutUsagePhase3 of org.graalvm.compiler.core.test.VerifyBailoutUsageTest
  private ValidPermanentBailoutUsage = org.graalvm.compiler.core.test.VerifyBailoutUsageTest$ValidPermanentBailoutUsage of org.graalvm.compiler.core.test.VerifyBailoutUsageTest
  private ValidRetryableBailoutUsage = org.graalvm.compiler.core.test.VerifyBailoutUsageTest$ValidRetryableBailoutUsage of org.graalvm.compiler.core.test.VerifyBailoutUsageTest
  public Builder = org.graalvm.compiler.nodes.StructuredGraph$Builder of org.graalvm.compiler.nodes.StructuredGraph
  public Plugins = org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration$Plugins of org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration