class com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker extends com.oracle.svm.hosted.c.codegen.CCompilerInvoker
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker
  super_class: com.oracle.svm.hosted.c.codegen.CCompilerInvoker
{
  void <init>(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker this
        start local 1 // java.nio.file.Path tempDirectory
         0: .line 205
            aload 0 /* this */
            aload 1 /* tempDirectory */
            invokespecial com.oracle.svm.hosted.c.codegen.CCompilerInvoker.<init>:(Ljava/nio/file/Path;)V
         1: .line 206
            return
        end local 1 // java.nio.file.Path tempDirectory
        end local 0 // com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$LinuxCCompilerInvoker;
            0    2     1  tempDirectory  Ljava/nio/file/Path;
    MethodParameters:
               Name  Flags
      tempDirectory  

  protected java.lang.String getDefaultCompiler();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker this
         0: .line 210
            invokestatic com.oracle.svm.core.c.libc.LibCBase.singleton:()Lcom/oracle/svm/core/c/libc/LibCBase;
            invokeinterface com.oracle.svm.core.c.libc.LibCBase.getTargetCompiler:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$LinuxCCompilerInvoker;

  protected com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo createCompilerInfo(java.nio.file.Path, java.util.Scanner);
    descriptor: (Ljava/nio/file/Path;Ljava/util/Scanner;)Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$CompilerInfo;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=7, args_size=3
        start local 0 // com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker this
        start local 1 // java.nio.file.Path compilerPath
        start local 2 // java.util.Scanner scanner
         0: .line 216
            aload 2 /* scanner */
            ldc "icc version "
            invokevirtual java.util.Scanner.findInLine:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 7
         1: .line 217
            aload 2 /* scanner */
            ldc "[. ]"
            invokevirtual java.util.Scanner.useDelimiter:(Ljava/lang/String;)Ljava/util/Scanner;
            pop
         2: .line 218
            aload 2 /* scanner */
            invokevirtual java.util.Scanner.nextInt:()I
            istore 3 /* major */
        start local 3 // int major
         3: .line 219
            aload 2 /* scanner */
            invokevirtual java.util.Scanner.nextInt:()I
            istore 4 /* minor0 */
        start local 4 // int minor0
         4: .line 220
            aload 2 /* scanner */
            invokevirtual java.util.Scanner.nextInt:()I
            istore 5 /* minor1 */
        start local 5 // int minor1
         5: .line 221
            new com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo
            dup
            aload 1 /* compilerPath */
            ldc "intel"
            ldc "Intel(R) C++ Compiler"
            ldc "icc"
            iload 3 /* major */
            iload 4 /* minor0 */
            iload 5 /* minor1 */
            ldc "x86_64"
            invokespecial com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo.<init>:(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V
         6: areturn
        end local 5 // int minor1
        end local 4 // int minor0
        end local 3 // int major
         7: .line 224
      StackMap locals:
      StackMap stack:
            aload 2 /* scanner */
            ldc "clang version "
            invokevirtual java.util.Scanner.findInLine:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 15
         8: .line 225
            aload 2 /* scanner */
            ldc "[. ]"
            invokevirtual java.util.Scanner.useDelimiter:(Ljava/lang/String;)Ljava/util/Scanner;
            pop
         9: .line 226
            aload 2 /* scanner */
            invokevirtual java.util.Scanner.nextInt:()I
            istore 3 /* major */
        start local 3 // int major
        10: .line 227
            aload 2 /* scanner */
            invokevirtual java.util.Scanner.nextInt:()I
            istore 4 /* minor0 */
        start local 4 // int minor0
        11: .line 228
            aload 2 /* scanner */
            invokevirtual java.util.Scanner.nextInt:()I
            istore 5 /* minor1 */
        start local 5 // int minor1
        12: .line 229
            aload 2 /* scanner */
            invokestatic com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker.guessTargetTriplet:(Ljava/util/Scanner;)[Ljava/lang/String;
            astore 6 /* triplet */
        start local 6 // java.lang.String[] triplet
        13: .line 230
            new com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo
            dup
            aload 1 /* compilerPath */
            ldc "llvm"
            ldc "Clang C++ Compiler"
            ldc "clang"
            iload 3 /* major */
            iload 4 /* minor0 */
            iload 5 /* minor1 */
            aload 6 /* triplet */
            iconst_0
            aaload
            invokespecial com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo.<init>:(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V
        14: areturn
        end local 6 // java.lang.String[] triplet
        end local 5 // int minor1
        end local 4 // int minor0
        end local 3 // int major
        15: .line 233
      StackMap locals:
      StackMap stack:
            aload 2 /* scanner */
            invokestatic com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker.guessTargetTriplet:(Ljava/util/Scanner;)[Ljava/lang/String;
            astore 3 /* triplet */
        start local 3 // java.lang.String[] triplet
        16: .line 234
            goto 18
        17: .line 235
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 2 /* scanner */
            invokevirtual java.util.Scanner.nextLine:()Ljava/lang/String;
            pop
        18: .line 234
      StackMap locals:
      StackMap stack:
            aload 2 /* scanner */
            ldc "gcc version "
            invokevirtual java.util.Scanner.findInLine:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 17
        19: .line 237
            aload 2 /* scanner */
            ldc "[. ]"
            invokevirtual java.util.Scanner.useDelimiter:(Ljava/lang/String;)Ljava/util/Scanner;
            pop
        20: .line 238
            aload 2 /* scanner */
            invokevirtual java.util.Scanner.nextInt:()I
            istore 4 /* major */
        start local 4 // int major
        21: .line 239
            aload 2 /* scanner */
            invokevirtual java.util.Scanner.nextInt:()I
            istore 5 /* minor0 */
        start local 5 // int minor0
        22: .line 240
            aload 2 /* scanner */
            invokevirtual java.util.Scanner.nextInt:()I
            istore 6 /* minor1 */
        start local 6 // int minor1
        23: .line 241
            new com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo
            dup
            aload 1 /* compilerPath */
            aload 3 /* triplet */
            iconst_1
            aaload
            ldc "GNU project C and C++ compiler"
            ldc "gcc"
            iload 4 /* major */
            iload 5 /* minor0 */
            iload 6 /* minor1 */
            aload 3 /* triplet */
            iconst_0
            aaload
            invokespecial com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo.<init>:(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V
        24: areturn
        end local 6 // int minor1
        end local 5 // int minor0
        end local 4 // int major
        end local 3 // java.lang.String[] triplet
        25: .line 242
      StackMap locals: com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker java.nio.file.Path java.util.Scanner
      StackMap stack: java.util.NoSuchElementException
            pop
        26: .line 243
            aconst_null
            areturn
        end local 2 // java.util.Scanner scanner
        end local 1 // java.nio.file.Path compilerPath
        end local 0 // com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   27     0          this  Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$LinuxCCompilerInvoker;
            0   27     1  compilerPath  Ljava/nio/file/Path;
            0   27     2       scanner  Ljava/util/Scanner;
            3    7     3         major  I
            4    7     4        minor0  I
            5    7     5        minor1  I
           10   15     3         major  I
           11   15     4        minor0  I
           12   15     5        minor1  I
           13   15     6       triplet  [Ljava/lang/String;
           16   25     3       triplet  [Ljava/lang/String;
           21   25     4         major  I
           22   25     5        minor0  I
           23   25     6        minor1  I
      Exception table:
        from    to  target  type
           0     6      25  Class java.util.NoSuchElementException
           7    14      25  Class java.util.NoSuchElementException
          15    24      25  Class java.util.NoSuchElementException
    MethodParameters:
              Name  Flags
      compilerPath  
      scanner       

  protected void verify();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker this
         0: .line 249
            ldc Lcom/oracle/svm/core/SubstrateTargetDescription;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.SubstrateTargetDescription
            getfield com.oracle.svm.core.SubstrateTargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 1 /* substrateTargetArch */
        start local 1 // java.lang.Class substrateTargetArch
         1: .line 250
            aload 0 /* this */
            getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker.compilerInfo:Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$CompilerInfo;
            getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo.targetArch:Ljava/lang/String;
            invokestatic com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker.guessArchitecture:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* guessed */
        start local 2 // java.lang.Class guessed
         2: .line 251
            aload 2 /* guessed */
            ifnonnull 4
         3: .line 252
            ldc "Native toolchain (%s) has no matching native-image target architecture."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker.compilerInfo:Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$CompilerInfo;
            getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo.targetArch:Ljava/lang/String;
            aastore
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            pop
         4: .line 254
      StackMap locals: java.lang.Class java.lang.Class
      StackMap stack:
            aload 2 /* guessed */
            aload 1 /* substrateTargetArch */
            if_acmpeq 8
         5: .line 255
            ldc "Native toolchain (%s) implies native-image target architecture %s but configured native-image target architecture is %s."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 256
            aload 0 /* this */
            getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker.compilerInfo:Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$CompilerInfo;
            getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo.targetArch:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* guessed */
            aastore
            dup
            iconst_2
            aload 1 /* substrateTargetArch */
            aastore
         7: .line 255
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            pop
         8: .line 258
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Class guessed
        end local 1 // java.lang.Class substrateTargetArch
        end local 0 // com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$LinuxCCompilerInvoker;
            1    9     1  substrateTargetArch  Ljava/lang/Class<+Ljdk/vm/ci/code/Architecture;>;
            2    9     2              guessed  Ljava/lang/Class<+Ljdk/vm/ci/code/Architecture;>;
}
SourceFile: "CCompilerInvoker.java"
NestHost: com.oracle.svm.hosted.c.codegen.CCompilerInvoker
InnerClasses:
  public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
  public final CompilerInfo = com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo of com.oracle.svm.hosted.c.codegen.CCompilerInvoker
  private LinuxCCompilerInvoker = com.oracle.svm.hosted.c.codegen.CCompilerInvoker$LinuxCCompilerInvoker of com.oracle.svm.hosted.c.codegen.CCompilerInvoker