public class com.oracle.svm.tutorial.CInterfaceTutorial
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.tutorial.CInterfaceTutorial
  super_class: java.lang.Object
{
  protected static final org.graalvm.nativeimage.c.function.CEntryPointLiteral<com.oracle.svm.tutorial.CInterfaceTutorial$PrintFunctionPointer> javaPrintFunction;
    descriptor: Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Signature: Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral<Lcom/oracle/svm/tutorial/CInterfaceTutorial$PrintFunctionPointer;>;

  protected static org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder pin;
    descriptor: Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 165
            ldc Lcom/oracle/svm/tutorial/CInterfaceTutorial;
            ldc "printingInJava"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/graalvm/nativeimage/IsolateThread;
            aastore
            dup
            iconst_1
            ldc Lorg/graalvm/nativeimage/c/type/CCharPointer;
            aastore
            invokestatic org.graalvm.nativeimage.c.function.CEntryPointLiteral.create:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
            putstatic com.oracle.svm.tutorial.CInterfaceTutorial.javaPrintFunction:Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
         1: .line 173
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.tutorial.CInterfaceTutorial this
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.tutorial.CInterfaceTutorial this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/tutorial/CInterfaceTutorial;

  protected static native int getDataLength();
    descriptor: ()I
    flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.constant.CConstant(value = "DATA_ARRAY_LENGTH")

  protected static native org.graalvm.word.PointerBase memcpy(org.graalvm.word.PointerBase, org.graalvm.word.PointerBase, org.graalvm.word.UnsignedWord);
    descriptor: (Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/PointerBase;
    flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CFunction()
    MethodParameters:
      Name  Flags
      dest  
      src   
      n     

  protected static native void printingInC(org.graalvm.nativeimage.IsolateThread, org.graalvm.nativeimage.c.type.CCharPointer);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lorg/graalvm/nativeimage/c/type/CCharPointer;)V
    flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CFunction(value = "c_print")
    MethodParameters:
        Name  Flags
      thread  
      cstr    

  protected static void printingInJava(org.graalvm.nativeimage.IsolateThread, org.graalvm.nativeimage.c.type.CCharPointer);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lorg/graalvm/nativeimage/c/type/CCharPointer;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.graalvm.nativeimage.IsolateThread thread
        start local 1 // org.graalvm.nativeimage.c.type.CCharPointer cstr
         0: .line 170
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "J: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* cstr */
            invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 171
            return
        end local 1 // org.graalvm.nativeimage.c.type.CCharPointer cstr
        end local 0 // org.graalvm.nativeimage.IsolateThread thread
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  thread  Lorg/graalvm/nativeimage/IsolateThread;
            0    2     1    cstr  Lorg/graalvm/nativeimage/c/type/CCharPointer;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint()
    MethodParameters:
        Name  Flags
      thread  
      cstr    

  protected static void dump(com.oracle.svm.tutorial.CInterfaceTutorial$MyData);
    descriptor: (Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // com.oracle.svm.tutorial.CInterfaceTutorial$MyData data
         0: .line 176
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "**** In Java ****\n"
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         1: .line 177
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "primitive: %d\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* data */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getPrimitive:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         2: .line 178
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "length: %d\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.getDataLength:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         3: .line 179
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         4: goto 7
         5: .line 180
      StackMap locals: int
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "%d "
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* data */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.addressOfArray:()Lorg/graalvm/nativeimage/c/type/CIntPointer;
            iload 1 /* i */
            invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.read:(I)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         6: .line 179
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 1 /* i */
            invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.getDataLength:()I
            if_icmplt 5
        end local 1 // int i
         8: .line 182
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "\n"
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         9: .line 184
            invokestatic org.graalvm.nativeimage.CurrentIsolate.getCurrentThread:()Lorg/graalvm/nativeimage/IsolateThread;
            astore 1 /* currentThread */
        start local 1 // org.graalvm.nativeimage.IsolateThread currentThread
        10: .line 186
            invokestatic com.oracle.svm.core.OS.getCurrent:()Lcom/oracle/svm/core/OS;
            getstatic com.oracle.svm.core.OS.WINDOWS:Lcom/oracle/svm/core/OS;
            if_acmpeq 12
        11: .line 191
            aload 1 /* currentThread */
            aload 0 /* data */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getCString:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.printingInC:(Lorg/graalvm/nativeimage/IsolateThread;Lorg/graalvm/nativeimage/c/type/CCharPointer;)V
        12: .line 194
      StackMap locals: com.oracle.svm.tutorial.CInterfaceTutorial$MyData org.graalvm.nativeimage.IsolateThread
      StackMap stack:
            aload 0 /* data */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getPrintFunction:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$PrintFunctionPointer;
            aload 1 /* currentThread */
            aload 0 /* data */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getCString:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$PrintFunctionPointer.invoke:(Lorg/graalvm/nativeimage/IsolateThread;Lorg/graalvm/nativeimage/c/type/CCharPointer;)V
        13: .line 195
            return
        end local 1 // org.graalvm.nativeimage.IsolateThread currentThread
        end local 0 // com.oracle.svm.tutorial.CInterfaceTutorial$MyData data
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           data  Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
            4    8     1              i  I
           10   14     1  currentThread  Lorg/graalvm/nativeimage/IsolateThread;
    MethodParameters:
      Name  Flags
      data  

  protected static void javaEntryPoint(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$MyData);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.graalvm.nativeimage.IsolateThread thread
        start local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$MyData data
         0: .line 201
            ldc Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
            invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
            checkcast com.oracle.svm.tutorial.CInterfaceTutorial$MyData
            astore 2 /* copy */
        start local 2 // com.oracle.svm.tutorial.CInterfaceTutorial$MyData copy
         1: .line 204
            ldc Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
            invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
            istore 3 /* dataSize */
        start local 3 // int dataSize
         2: .line 207
            aload 2 /* copy */
            aload 1 /* data */
            iload 3 /* dataSize */
            invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
            invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.memcpy:(Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/PointerBase;Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/PointerBase;
            pop
         3: .line 209
            aload 2 /* copy */
            invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dump:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;)V
         4: .line 212
            aload 1 /* data */
            bipush 99
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.setPrimitive:(I)V
         5: .line 213
            aload 1 /* data */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.addressOfArray:()Lorg/graalvm/nativeimage/c/type/CIntPointer;
            iconst_1
            bipush 101
            invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.write:(II)V
         6: .line 216
            new java.lang.StringBuilder
            dup
            aload 1 /* data */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getCString:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " at "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* javaString */
        start local 4 // java.lang.String javaString
         7: .line 217
            aload 4 /* javaString */
            invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toCString:(Ljava/lang/CharSequence;)Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
            putstatic com.oracle.svm.tutorial.CInterfaceTutorial.pin:Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
         8: .line 218
            getstatic com.oracle.svm.tutorial.CInterfaceTutorial.pin:Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
            invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.get:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            astore 5 /* cString */
        start local 5 // org.graalvm.nativeimage.c.type.CCharPointer cString
         9: .line 219
            aload 1 /* data */
            aload 5 /* cString */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.setCString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;)V
        10: .line 222
            aload 1 /* data */
            getstatic com.oracle.svm.tutorial.CInterfaceTutorial.javaPrintFunction:Lorg/graalvm/nativeimage/c/function/CEntryPointLiteral;
            invokevirtual org.graalvm.nativeimage.c.function.CEntryPointLiteral.getFunctionPointer:()Lorg/graalvm/nativeimage/c/function/CFunctionPointer;
            checkcast com.oracle.svm.tutorial.CInterfaceTutorial$PrintFunctionPointer
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.setPrintFunction:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$PrintFunctionPointer;)V
        11: .line 225
            aload 1 /* data */
            invokestatic org.graalvm.nativeimage.ObjectHandles.getGlobal:()Lorg/graalvm/nativeimage/ObjectHandles;
            aload 4 /* javaString */
            invokeinterface org.graalvm.nativeimage.ObjectHandles.create:(Ljava/lang/Object;)Lorg/graalvm/nativeimage/ObjectHandle;
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.setJavaObject:(Lorg/graalvm/nativeimage/ObjectHandle;)V
        12: .line 226
            return
        end local 5 // org.graalvm.nativeimage.c.type.CCharPointer cString
        end local 4 // java.lang.String javaString
        end local 3 // int dataSize
        end local 2 // com.oracle.svm.tutorial.CInterfaceTutorial$MyData copy
        end local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$MyData data
        end local 0 // org.graalvm.nativeimage.IsolateThread thread
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0      thread  Lorg/graalvm/nativeimage/IsolateThread;
            0   13     1        data  Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
            1   13     2        copy  Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
            2   13     3    dataSize  I
            7   13     4  javaString  Ljava/lang/String;
            9   13     5     cString  Lorg/graalvm/nativeimage/c/type/CCharPointer;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_entry_point")
    MethodParameters:
        Name  Flags
      thread  
      data    

  protected static void releaseData(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$MyData);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.graalvm.nativeimage.IsolateThread thread
        start local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$MyData data
         0: .line 231
            aload 1 /* data */
            invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dump:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;)V
         1: .line 234
            aload 1 /* data */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$MyData.getJavaObject:()Lorg/graalvm/nativeimage/ObjectHandle;
            astore 2 /* handle */
        start local 2 // org.graalvm.nativeimage.ObjectHandle handle
         2: .line 235
            invokestatic org.graalvm.nativeimage.ObjectHandles.getGlobal:()Lorg/graalvm/nativeimage/ObjectHandles;
            aload 2 /* handle */
            invokeinterface org.graalvm.nativeimage.ObjectHandles.get:(Lorg/graalvm/nativeimage/ObjectHandle;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* javaObject */
        start local 3 // java.lang.String javaObject
         3: .line 236
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "javaObject: %s\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* javaObject */
            aastore
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         4: .line 238
            invokestatic org.graalvm.nativeimage.ObjectHandles.getGlobal:()Lorg/graalvm/nativeimage/ObjectHandles;
            aload 2 /* handle */
            invokeinterface org.graalvm.nativeimage.ObjectHandles.destroy:(Lorg/graalvm/nativeimage/ObjectHandle;)V
         5: .line 244
            getstatic com.oracle.svm.tutorial.CInterfaceTutorial.pin:Lorg/graalvm/nativeimage/c/type/CTypeConversion$CCharPointerHolder;
            invokeinterface org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder.close:()V
         6: .line 245
            return
        end local 3 // java.lang.String javaObject
        end local 2 // org.graalvm.nativeimage.ObjectHandle handle
        end local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$MyData data
        end local 0 // org.graalvm.nativeimage.IsolateThread thread
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0      thread  Lorg/graalvm/nativeimage/IsolateThread;
            0    7     1        data  Lcom/oracle/svm/tutorial/CInterfaceTutorial$MyData;
            2    7     2      handle  Lorg/graalvm/nativeimage/ObjectHandle;
            3    7     3  javaObject  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_release_data")
    MethodParameters:
        Name  Flags
      thread  
      data    

  protected static native com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek dayOfTheWeekAdd(com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek, int);
    descriptor: (Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
    flags: (0x010c) ACC_PROTECTED, ACC_STATIC, ACC_NATIVE
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CFunction(value = "day_of_the_week_add")
    MethodParameters:
        Name  Flags
      day     
      offset  

  protected static void printDay(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.graalvm.nativeimage.IsolateThread thread
        start local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek day
         0: .line 254
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Day: %s (Java ordinal: %d, C value: %d)%n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* day */
            invokevirtual com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek.name:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* day */
            invokevirtual com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek.ordinal:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 1 /* day */
            invokevirtual com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek.getCValue:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         1: .line 255
            invokestatic com.oracle.svm.core.OS.getCurrent:()Lcom/oracle/svm/core/OS;
            getstatic com.oracle.svm.core.OS.WINDOWS:Lcom/oracle/svm/core/OS;
            if_acmpeq 4
         2: .line 260
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc " follows %s and %s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* day */
            bipush -2
            invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dayOfTheWeekAdd:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
            aastore
            dup
            iconst_1
            aload 1 /* day */
            iconst_m1
            invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dayOfTheWeekAdd:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
            aastore
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         3: .line 261
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc " is followed by %s and %s%n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* day */
            iconst_1
            invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dayOfTheWeekAdd:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
            aastore
            dup
            iconst_1
            aload 1 /* day */
            iconst_2
            invokestatic com.oracle.svm.tutorial.CInterfaceTutorial.dayOfTheWeekAdd:(Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
            aastore
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         4: .line 263
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek day
        end local 0 // org.graalvm.nativeimage.IsolateThread thread
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  thread  Lorg/graalvm/nativeimage/IsolateThread;
            0    5     1     day  Lcom/oracle/svm/tutorial/CInterfaceTutorial$DayOfTheWeek;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_print_day")
    MethodParameters:
        Name  Flags
      thread  
      day     

  protected static void javaEntryPoint2(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1, com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct2;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // org.graalvm.nativeimage.IsolateThread thread
        start local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 s1
        start local 2 // com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2 s2
         0: .line 343
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "*** In Java, demonstrating inheritance with @CStruct class"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 344
            aload 1 /* s1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.typePtr:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            astore 3 /* tp1 */
        start local 3 // org.graalvm.nativeimage.c.type.CCharPointer tp1
         2: .line 345
            aload 2 /* s2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.header:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$Header;
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Header.typePtr:()Lorg/graalvm/nativeimage/c/type/CCharPointer;
            astore 4 /* tp2 */
        start local 4 // org.graalvm.nativeimage.c.type.CCharPointer tp2
         3: .line 346
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "tp1 = 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* tp1 */
            invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.rawValue:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " tp2 = 0x"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* tp2 */
            invokeinterface org.graalvm.nativeimage.c.type.CCharPointer.rawValue:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 348
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "&s1.header = 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* s1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.header:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$Header;
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Header.rawValue:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " &s2.header = 0x"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* s2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.header:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$Header;
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Header.rawValue:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 349
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "s1.f1 = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* s1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.f1:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "  s2.f2 = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* s2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.f1:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 350
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "&s1.f1 = 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* s1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.addressOff1:()Lorg/graalvm/nativeimage/c/type/CIntPointer;
            invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.rawValue:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 351
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "*&s1.f1 = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* s1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.addressOff1:()Lorg/graalvm/nativeimage/c/type/CIntPointer;
            invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.read:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 352
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "offset_of(s1.f1) = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* s1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.offsetOff1:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         9: .line 354
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "s1.header.type = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* s1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.type:()B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "  ((Header) s2).type = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* s2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.header:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$Header;
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Header.type:()B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 356
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "*** In Java, demonstrating @CFieldOffset"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 357
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "offset_of(s1.header) = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.offsetOfHeader:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        12: .line 358
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "offset_of(s2.header) = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* s2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.offsetOfHeader:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        13: .line 359
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "offset_of(s2.f1) = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* s2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2.offsetOff1:()Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 365
            aload 1 /* s1 */
            iconst_0
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.addressOf:(I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
            astore 5 /* ps1 */
        start local 5 // com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 ps1
        15: .line 366
            aload 1 /* s1 */
            iconst_1
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.addressOf:(I)Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
            astore 6 /* ps2 */
        start local 6 // com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 ps2
        16: .line 367
            aload 6 /* ps2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.rawValue:()J
            aload 5 /* ps1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.rawValue:()J
            lsub
            lstore 7 /* s */
        start local 7 // long s
        17: .line 368
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "sizeof(s1) ="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
            invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        18: .line 369
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " s1 = 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* s1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.rawValue:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        19: .line 370
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  ps1 = 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* ps1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.rawValue:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        20: .line 371
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  ps2 = 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* ps2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1.rawValue:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 372
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " ps2 - ps1 "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 7 /* s */
            ldc Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
            invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
            i2l
            lcmp
            ifne 22
            ldc "="
            goto 23
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2 org.graalvm.nativeimage.c.type.CCharPointer org.graalvm.nativeimage.c.type.CCharPointer com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 long
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
        22: ldc "!="
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2 org.graalvm.nativeimage.c.type.CCharPointer org.graalvm.nativeimage.c.type.CCharPointer com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 long
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
        23: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " sizeof(substruct1)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        24: .line 373
            return
        end local 7 // long s
        end local 6 // com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 ps2
        end local 5 // com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 ps1
        end local 4 // org.graalvm.nativeimage.c.type.CCharPointer tp2
        end local 3 // org.graalvm.nativeimage.c.type.CCharPointer tp1
        end local 2 // com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2 s2
        end local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 s1
        end local 0 // org.graalvm.nativeimage.IsolateThread thread
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   25     0  thread  Lorg/graalvm/nativeimage/IsolateThread;
            0   25     1      s1  Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
            0   25     2      s2  Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct2;
            2   25     3     tp1  Lorg/graalvm/nativeimage/c/type/CCharPointer;
            3   25     4     tp2  Lorg/graalvm/nativeimage/c/type/CCharPointer;
           15   25     5     ps1  Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
           16   25     6     ps2  Lcom/oracle/svm/tutorial/CInterfaceTutorial$Substruct1;
           17   25     7       s  J
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_entry_point2")
    MethodParameters:
        Name  Flags
      thread  
      s1      
      s2      

  protected static void javaEntryPoint3(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$DU, com.oracle.svm.tutorial.CInterfaceTutorial$DU, com.oracle.svm.tutorial.CInterfaceTutorial$D1, com.oracle.svm.tutorial.CInterfaceTutorial$D2);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$DU;Lcom/oracle/svm/tutorial/CInterfaceTutorial$DU;Lcom/oracle/svm/tutorial/CInterfaceTutorial$D1;Lcom/oracle/svm/tutorial/CInterfaceTutorial$D2;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.graalvm.nativeimage.IsolateThread thread
        start local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$DU du1
        start local 2 // com.oracle.svm.tutorial.CInterfaceTutorial$DU du2
        start local 3 // com.oracle.svm.tutorial.CInterfaceTutorial$D1 d1
        start local 4 // com.oracle.svm.tutorial.CInterfaceTutorial$D2 d2
         0: .line 420
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "*** In Java, demonstrating access to union type member with @CStruct class"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 422
            aload 1 /* du1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$DU.getD1:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$D1;
            aload 3 /* d1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D1.notEqual:(Lorg/graalvm/word/ComparableWord;)Z
            ifeq 4
         2: .line 423
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "*** Error with Union test1: du1 should be equal to d1"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 424
            goto 5
         4: .line 425
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Union test 1 passed (0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* d1 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D1.rawValue:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 428
      StackMap locals:
      StackMap stack:
            aload 2 /* du2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$DU.getD2:()Lcom/oracle/svm/tutorial/CInterfaceTutorial$D2;
            aload 4 /* d2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.equal:(Lorg/graalvm/word/ComparableWord;)Z
            ifne 8
         6: .line 429
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "*** Error with Union test2: du2 should be equal to d2"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 430
            goto 9
         8: .line 431
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Union test 2 passed (0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* d2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.rawValue:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         9: .line 434
      StackMap locals:
      StackMap stack:
            aload 4 /* d2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getValuePointer:()Lorg/graalvm/nativeimage/c/type/CLongPointer;
            aload 4 /* d2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getLongPointer:()Lorg/graalvm/nativeimage/c/type/CLongPointer;
            invokeinterface org.graalvm.nativeimage.c.type.CLongPointer.notEqual:(Lorg/graalvm/word/ComparableWord;)Z
            ifeq 12
        10: .line 435
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "*** Error with Union test3: d2.long_pointer != &d2.long_value"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        11: .line 436
            goto 13
        12: .line 437
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Union test 3 passed (0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* d2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getLongPointer:()Lorg/graalvm/nativeimage/c/type/CLongPointer;
            invokeinterface org.graalvm.nativeimage.c.type.CLongPointer.rawValue:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        13: .line 440
      StackMap locals:
      StackMap stack:
            aload 4 /* d2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getValuePointer:()Lorg/graalvm/nativeimage/c/type/CLongPointer;
            invokeinterface org.graalvm.nativeimage.c.type.CLongPointer.read:()J
            aload 4 /* d2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getLongValue:()J
            lcmp
            ifeq 16
        14: .line 441
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "*** Error with Union test4: *d2.long_pointer != d2.long_value"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 442
            goto 17
        16: .line 443
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Union test 4 passed ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* d2 */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$D2.getLongValue:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 445
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.oracle.svm.tutorial.CInterfaceTutorial$D2 d2
        end local 3 // com.oracle.svm.tutorial.CInterfaceTutorial$D1 d1
        end local 2 // com.oracle.svm.tutorial.CInterfaceTutorial$DU du2
        end local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$DU du1
        end local 0 // org.graalvm.nativeimage.IsolateThread thread
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0  thread  Lorg/graalvm/nativeimage/IsolateThread;
            0   18     1     du1  Lcom/oracle/svm/tutorial/CInterfaceTutorial$DU;
            0   18     2     du2  Lcom/oracle/svm/tutorial/CInterfaceTutorial$DU;
            0   18     3      d1  Lcom/oracle/svm/tutorial/CInterfaceTutorial$D1;
            0   18     4      d2  Lcom/oracle/svm/tutorial/CInterfaceTutorial$D2;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_entry_point3")
    MethodParameters:
        Name  Flags
      thread  
      du1     
      du2     
      d1      
      d2      

  protected static long getUB1RawValue(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$SUData);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;)J
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.nativeimage.IsolateThread thread
        start local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$SUData sudata
         0: .line 469
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1:()B
            i2l
            lreturn
        end local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$SUData sudata
        end local 0 // org.graalvm.nativeimage.IsolateThread thread
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  thread  Lorg/graalvm/nativeimage/IsolateThread;
            0    1     1  sudata  Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "getUB1_raw_value")
    MethodParameters:
        Name  Flags
      thread  
      sudata  

  protected static long getUB1MaskedRawValue(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$SUData);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;)J
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.nativeimage.IsolateThread thread
        start local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$SUData sudata
         0: .line 474
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1:()B
            sipush 255
            iand
            i2l
            lreturn
        end local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$SUData sudata
        end local 0 // org.graalvm.nativeimage.IsolateThread thread
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  thread  Lorg/graalvm/nativeimage/IsolateThread;
            0    1     1  sudata  Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "getUB1_masked_raw_value")
    MethodParameters:
        Name  Flags
      thread  
      sudata  

  protected static long getUB1AsUnsignedRawValue(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$SUData);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;)J
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.nativeimage.IsolateThread thread
        start local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$SUData sudata
         0: .line 479
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            lreturn
        end local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$SUData sudata
        end local 0 // org.graalvm.nativeimage.IsolateThread thread
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  thread  Lorg/graalvm/nativeimage/IsolateThread;
            0    1     1  sudata  Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "getUB1_as_Unsigned_raw_value")
    MethodParameters:
        Name  Flags
      thread  
      sudata  

  protected static void javaEntryPoint4(org.graalvm.nativeimage.IsolateThread, com.oracle.svm.tutorial.CInterfaceTutorial$SUData);
    descriptor: (Lorg/graalvm/nativeimage/IsolateThread;Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.graalvm.nativeimage.IsolateThread thread
        start local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$SUData sudata
         0: .line 484
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: .line 485
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
            astore 3 /* u */
        start local 3 // org.graalvm.word.UnsignedWord u
         2: .line 486
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getSB1Signed:()Lorg/graalvm/word/SignedWord;
            astore 4 /* s */
        start local 4 // org.graalvm.word.SignedWord s
         3: .line 487
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1:()B
            istore 2 /* i */
         4: .line 488
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " getUB1() = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            iload 2 /* i */
            ifge 5
            ldc "<"
            goto 6
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
         5: ldc ">="
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
         6: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " 0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 490
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " getUB1Unsigned() = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* u */
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            aload 3 /* u */
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            lconst_0
            lcmp
            ifge 8
            ldc "<"
            goto 9
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
         8: ldc ">="
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
         9: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " 0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 491
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getSB1:()B
            istore 2 /* i */
        11: .line 492
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " getSB1() = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            iload 2 /* i */
            ifge 12
            ldc "<"
            goto 13
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
        12: ldc ">="
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
        13: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " 0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 493
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " getSB1Signed() = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* s */
            invokeinterface org.graalvm.word.SignedWord.rawValue:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            aload 4 /* s */
            invokeinterface org.graalvm.word.SignedWord.rawValue:()J
            lconst_0
            lcmp
            ifge 15
            ldc "<"
            goto 16
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
        15: ldc ">="
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder java.lang.String
        16: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " 0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        17: .line 495
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "(byte) 245        = -11"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        18: .line 496
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "(byte) 245 & 0xFF = 245"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        19: .line 497
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "sudata.getUB1Unsigned().aboveOrEqual(220) = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
            sipush 220
            invokeinterface org.graalvm.word.UnsignedWord.aboveOrEqual:(I)Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        20: .line 498
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "sudata.getUB1Unsigned().aboveOrEqual(245) = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
            sipush 245
            invokeinterface org.graalvm.word.UnsignedWord.aboveOrEqual:(I)Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 499
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "sudata.getUB1Unsigned().aboveOrEqual((byte)220) = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
            bipush -36
            invokeinterface org.graalvm.word.UnsignedWord.aboveOrEqual:(I)Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        22: .line 500
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "sudata.getUB1Unsigned().aboveOrEqual((byte)245) = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1Unsigned:()Lorg/graalvm/word/UnsignedWord;
            bipush -11
            invokeinterface org.graalvm.word.UnsignedWord.aboveOrEqual:(I)Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        23: .line 501
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "sudata.getUB1() && 0xFF >  220 = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1:()B
            sipush 255
            iand
            sipush 220
            if_icmple 24
            iconst_1
            goto 25
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
        24: iconst_0
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder int
        25: invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        26: .line 502
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "sudata.getUB1() && 0xFF >  245 = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* sudata */
            invokeinterface com.oracle.svm.tutorial.CInterfaceTutorial$SUData.getUB1:()B
            sipush 255
            iand
            sipush 245
            if_icmple 27
            iconst_1
            goto 28
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder
        27: iconst_0
      StackMap locals: org.graalvm.nativeimage.IsolateThread com.oracle.svm.tutorial.CInterfaceTutorial$SUData int org.graalvm.word.UnsignedWord org.graalvm.word.SignedWord
      StackMap stack: java.io.PrintStream java.lang.StringBuilder int
        28: invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        29: .line 503
            return
        end local 4 // org.graalvm.word.SignedWord s
        end local 3 // org.graalvm.word.UnsignedWord u
        end local 2 // int i
        end local 1 // com.oracle.svm.tutorial.CInterfaceTutorial$SUData sudata
        end local 0 // org.graalvm.nativeimage.IsolateThread thread
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   30     0  thread  Lorg/graalvm/nativeimage/IsolateThread;
            0   30     1  sudata  Lcom/oracle/svm/tutorial/CInterfaceTutorial$SUData;
            1   30     2       i  I
            2   30     3       u  Lorg/graalvm/word/UnsignedWord;
            3   30     4       s  Lorg/graalvm/word/SignedWord;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.function.CEntryPoint(name = "java_entry_point4")
    MethodParameters:
        Name  Flags
      thread  
      sudata  
}
SourceFile: "CInterfaceTutorial.java"
NestMembers:
  com.oracle.svm.tutorial.CInterfaceTutorial$CInterfaceTutorialDirectives  com.oracle.svm.tutorial.CInterfaceTutorial$D1  com.oracle.svm.tutorial.CInterfaceTutorial$D2  com.oracle.svm.tutorial.CInterfaceTutorial$DU  com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek  com.oracle.svm.tutorial.CInterfaceTutorial$Header  com.oracle.svm.tutorial.CInterfaceTutorial$MyData  com.oracle.svm.tutorial.CInterfaceTutorial$PrintFunctionPointer  com.oracle.svm.tutorial.CInterfaceTutorial$SUData  com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1  com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2
InnerClasses:
  CInterfaceTutorialDirectives = com.oracle.svm.tutorial.CInterfaceTutorial$CInterfaceTutorialDirectives of com.oracle.svm.tutorial.CInterfaceTutorial
  abstract D1 = com.oracle.svm.tutorial.CInterfaceTutorial$D1 of com.oracle.svm.tutorial.CInterfaceTutorial
  abstract D2 = com.oracle.svm.tutorial.CInterfaceTutorial$D2 of com.oracle.svm.tutorial.CInterfaceTutorial
  abstract DU = com.oracle.svm.tutorial.CInterfaceTutorial$DU of com.oracle.svm.tutorial.CInterfaceTutorial
  final DayOfTheWeek = com.oracle.svm.tutorial.CInterfaceTutorial$DayOfTheWeek of com.oracle.svm.tutorial.CInterfaceTutorial
  abstract Header = com.oracle.svm.tutorial.CInterfaceTutorial$Header of com.oracle.svm.tutorial.CInterfaceTutorial
  abstract MyData = com.oracle.svm.tutorial.CInterfaceTutorial$MyData of com.oracle.svm.tutorial.CInterfaceTutorial
  abstract PrintFunctionPointer = com.oracle.svm.tutorial.CInterfaceTutorial$PrintFunctionPointer of com.oracle.svm.tutorial.CInterfaceTutorial
  abstract SUData = com.oracle.svm.tutorial.CInterfaceTutorial$SUData of com.oracle.svm.tutorial.CInterfaceTutorial
  abstract Substruct1 = com.oracle.svm.tutorial.CInterfaceTutorial$Substruct1 of com.oracle.svm.tutorial.CInterfaceTutorial
  abstract Substruct2 = com.oracle.svm.tutorial.CInterfaceTutorial$Substruct2 of com.oracle.svm.tutorial.CInterfaceTutorial
  public abstract CCharPointerHolder = org.graalvm.nativeimage.c.type.CTypeConversion$CCharPointerHolder of org.graalvm.nativeimage.c.type.CTypeConversion
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.c.CContext(value = Lcom/oracle/svm/tutorial/CInterfaceTutorial$CInterfaceTutorialDirectives;)