class com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker 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$WindowsCCompilerInvoker
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 start local 1 0: aload 0
aload 1
invokespecial com.oracle.svm.hosted.c.codegen.CCompilerInvoker.<init>:(Ljava/nio/file/Path;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$WindowsCCompilerInvoker;
0 2 1 tempDirectory Ljava/nio/file/Path;
MethodParameters:
Name Flags
tempDirectory
public java.lang.String asExecutableName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: ldc ".exe"
astore 2
start local 2 1: aload 1
aload 2
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 3
2: aload 1
areturn
3: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$WindowsCCompilerInvoker;
0 4 1 basename Ljava/lang/String;
1 4 2 suffix Ljava/lang/String;
MethodParameters:
Name Flags
basename
protected java.lang.String getDefaultCompiler();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "cl"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$WindowsCCompilerInvoker;
protected java.util.List<java.lang.String> addTarget(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: iconst_1
anewarray java.lang.String
dup
iconst_0
new java.lang.StringBuilder
dup
ldc "/Fe"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$WindowsCCompilerInvoker;
0 1 1 target Ljava/nio/file/Path;
Signature: (Ljava/nio/file/Path;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
target
protected java.io.InputStream getCompilerErrorStream(java.lang.Process);
descriptor: (Ljava/lang/Process;)Ljava/io/InputStream;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Process.getInputStream:()Ljava/io/InputStream;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$WindowsCCompilerInvoker;
0 1 1 compilingProcess Ljava/lang/Process;
MethodParameters:
Name Flags
compilingProcess
protected java.util.List<java.lang.String> getVersionInfoOptions();
descriptor: ()Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$WindowsCCompilerInvoker;
Signature: ()Ljava/util/List<Ljava/lang/String;>;
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=10, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
aconst_null
astore 4
1: new java.util.Scanner
dup
aload 2
invokevirtual java.util.Scanner.nextLine:()Ljava/lang/String;
invokespecial java.util.Scanner.<init>:(Ljava/lang/String;)V
astore 5
start local 5 2: aconst_null
astore 6
start local 6 3: aload 5
ldc "\u7528\u4E8E"
invokevirtual java.util.Scanner.hasNext:(Ljava/lang/String;)Z
ifeq 6
4: aload 5
invokevirtual java.util.Scanner.next:()Ljava/lang/String;
pop
5: aload 5
invokevirtual java.util.Scanner.next:()Ljava/lang/String;
astore 6
6: StackMap locals: com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker java.nio.file.Path java.util.Scanner java.lang.Throwable java.lang.Throwable java.util.Scanner java.lang.String
StackMap stack:
aload 5
ldc "Microsoft.*\\(R\\) C/C\\+\\+"
invokevirtual java.util.Scanner.findInLine:(Ljava/lang/String;)Ljava/lang/String;
ifnonnull 9
7: aload 5
ifnull 8
aload 5
invokevirtual java.util.Scanner.close:()V
8: StackMap locals:
StackMap stack:
aconst_null
areturn
9: StackMap locals:
StackMap stack:
aload 5
ldc "\\D"
invokevirtual java.util.Scanner.useDelimiter:(Ljava/lang/String;)Ljava/util/Scanner;
pop
10: goto 12
11: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.Scanner.next:()Ljava/lang/String;
pop
12: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.Scanner.hasNextInt:()Z
ifeq 11
13: aload 5
invokevirtual java.util.Scanner.nextInt:()I
istore 7
start local 7 14: aload 5
invokevirtual java.util.Scanner.nextInt:()I
istore 8
start local 8 15: aload 5
invokevirtual java.util.Scanner.nextInt:()I
istore 9
start local 9 16: aload 6
ifnonnull 21
17: aload 5
invokevirtual java.util.Scanner.reset:()Ljava/util/Scanner;
pop
18: goto 20
19: StackMap locals: int int int
StackMap stack:
aload 5
invokevirtual java.util.Scanner.next:()Ljava/lang/String;
astore 6
20: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.Scanner.hasNext:()Z
ifne 19
21: StackMap locals:
StackMap stack:
new com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo
dup
aload 1
ldc "microsoft"
ldc "C/C++ Optimizing Compiler"
ldc "cl"
iload 7
iload 8
iload 9
aload 6
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
22: aload 5
ifnull 23
aload 5
invokevirtual java.util.Scanner.close:()V
23: StackMap locals:
StackMap stack: com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo
areturn
end local 9 end local 8 end local 7 end local 6 StackMap locals: com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker java.nio.file.Path java.util.Scanner java.lang.Throwable java.lang.Throwable java.util.Scanner
StackMap stack: java.lang.Throwable
24: astore 3
25: aload 5
ifnull 26
aload 5
invokevirtual java.util.Scanner.close:()V
end local 5 StackMap locals:
StackMap stack:
26: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 4
aload 3
ifnonnull 28
aload 4
astore 3
goto 29
StackMap locals:
StackMap stack:
28: aload 3
aload 4
if_acmpeq 29
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
29: aload 3
athrow
StackMap locals: com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker java.nio.file.Path java.util.Scanner
StackMap stack: java.util.NoSuchElementException
30: pop
31: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$WindowsCCompilerInvoker;
0 32 1 compilerPath Ljava/nio/file/Path;
0 32 2 outerScanner Ljava/util/Scanner;
2 26 5 scanner Ljava/util/Scanner;
3 24 6 targetArch Ljava/lang/String;
14 24 7 major I
15 24 8 minor0 I
16 24 9 minor1 I
Exception table:
from to target type
2 7 24 any
9 22 24 any
1 8 27 any
9 23 27 any
24 27 27 any
0 8 30 Class java.util.NoSuchElementException
9 23 30 Class java.util.NoSuchElementException
24 30 30 Class java.util.NoSuchElementException
MethodParameters:
Name Flags
compilerPath
outerScanner
protected void verify();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker.compilerInfo:Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$CompilerInfo;
getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo.versionMajor:I
bipush 19
if_icmplt 1
aload 0
getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker.compilerInfo:Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$CompilerInfo;
getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo.versionMinor0:I
bipush 12
if_icmpge 4
1: StackMap locals:
StackMap stack:
ldc "Java %d native-image building on Windows requires Visual Studio 2017 version 15.5 or later (C/C++ Optimizing Compiler Version 19.12 or later).%nCompiler info detected: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
2: getstatic org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker.compilerInfo:Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$CompilerInfo;
aastore
3: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
pop
4: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker.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$WindowsCCompilerInvoker.guessArchitecture:(Ljava/lang/String;)Ljava/lang/Class;
ldc Ljdk/vm/ci/amd64/AMD64;
if_acmpeq 8
5: ldc "Native-image building on Windows currently only supports target architecture: %s (%s unsupported)"
iconst_2
anewarray java.lang.Object
dup
iconst_0
6: ldc Ljdk/vm/ci/amd64/AMD64;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker.compilerInfo:Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$CompilerInfo;
getfield com.oracle.svm.hosted.c.codegen.CCompilerInvoker$CompilerInfo.targetArch:Ljava/lang/String;
aastore
7: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
pop
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$WindowsCCompilerInvoker;
protected java.util.List<java.lang.String> compileStrictOptions();
descriptor: ()Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: bipush 7
anewarray java.lang.String
dup
iconst_0
ldc "/WX"
aastore
dup
iconst_1
ldc "/W4"
aastore
dup
iconst_2
ldc "/wd4244"
aastore
dup
iconst_3
ldc "/wd4245"
aastore
dup
iconst_4
ldc "/wd4800"
aastore
dup
iconst_5
ldc "/wd4804"
aastore
dup
bipush 6
ldc "/wd4214"
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/c/codegen/CCompilerInvoker$WindowsCCompilerInvoker;
Signature: ()Ljava/util/List<Ljava/lang/String;>;
}
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 WindowsCCompilerInvoker = com.oracle.svm.hosted.c.codegen.CCompilerInvoker$WindowsCCompilerInvoker of com.oracle.svm.hosted.c.codegen.CCompilerInvoker