Points-to sets of all variables
[]:<ArgsRefine: java.lang.Class class$(java.lang.String)>/name -> [[]:ConstantObj{java.lang.String: "java.lang.Object"}]
[]:<ArgsRefine: java.lang.Class class$(java.lang.String)>/temp$0 -> [[]:ConstantObj{java.lang.Class: java.lang.Object.class}]
[]:<ArgsRefine: java.lang.Class class$(java.lang.String)>/temp$1 -> [[]:MergedObj{<Merged java.lang.NoClassDefFoundError>}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/%stringconst0 -> [[]:ConstantObj{java.lang.String: "B"}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/%stringconst1 -> [[]:ConstantObj{java.lang.String: "print"}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/%stringconst4 -> [[]:MergedObj{<Merged string constants>}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/b -> [[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[6@L12] new B}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/bClass -> [[]:ConstantObj{java.lang.Class: B.class}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/paramTypes -> [[]:NewObj{<ArgsRefine: void main(java.lang.String[])>[1@L6] newarray java.lang.Class[%intconst0]}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/print -> [[]:ReflectionMetaObj{alloc=<B: void print()>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,B)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,java.lang.Object)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,java.lang.Object,java.lang.Object)>,type=java.lang.reflect.Method}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/printNoArg -> [[]:ReflectionMetaObj{alloc=<B: void print()>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,B)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,java.lang.Object)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,java.lang.Object,java.lang.Object)>,type=java.lang.reflect.Method}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/temp$0 -> [[]:ConstantObj{java.lang.Class: B.class}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/temp$1 -> [[]:ReflectionMetaObj{alloc=<B: void print()>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,B)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,java.lang.Object)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,java.lang.Object,java.lang.Object)>,type=java.lang.reflect.Method}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/temp$2 -> [[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[6@L12] new B}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/temp$3 -> [[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[10@L13] newarray java.lang.Object[%intconst2]}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/temp$5 -> [[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[17@L14] newarray java.lang.Object[%intconst2]}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/temp$7 -> [[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[21@L15] newarray java.lang.Class[%intconst3]}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/temp$8 -> [[]:ReflectionMetaObj{alloc=<B: void print()>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,B)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,java.lang.Object)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<B: void print(java.lang.Object,java.lang.Object,java.lang.Object)>,type=java.lang.reflect.Method}]
[]:<ArgsRefine: void invokePrint(java.lang.Class[])>/temp$9 -> [[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[24@L16] newarray java.lang.Object[%intconst3]}]
[]:<ArgsRefine: void main(java.lang.String[])>/%stringconst1 -> [[]:ConstantObj{java.lang.String: "java.lang.Object"}]
[]:<ArgsRefine: void main(java.lang.String[])>/args -> [[]:EntryPointObj{alloc=MethodParam{<ArgsRefine: void main(java.lang.String[])>/0},type=java.lang.String[] in <ArgsRefine: void main(java.lang.String[])>}]
[]:<ArgsRefine: void main(java.lang.String[])>/temp$0 -> [[]:NewObj{<ArgsRefine: void main(java.lang.String[])>[1@L6] newarray java.lang.Class[%intconst0]}]
[]:<ArgsRefine: void main(java.lang.String[])>/temp$1 -> [[]:ConstantObj{java.lang.Class: java.lang.Object.class}]
[]:<ArgsRefine: void main(java.lang.String[])>/temp$2 -> [[]:ConstantObj{java.lang.Class: java.lang.Object.class}]
[]:<ArgsRefine: void main(java.lang.String[])>/temp$3 -> [[]:ConstantObj{java.lang.Class: java.lang.Object.class}]
[]:<ArgsRefine: void main(java.lang.String[])>/temp$4 -> [[]:ConstantObj{java.lang.Class: java.lang.Object.class}]
[]:<ArgsRefine: void main(java.lang.String[])>/temp$5 -> [[]:ConstantObj{java.lang.Class: java.lang.Object.class}]
[]:<ArgsRefine: void main(java.lang.String[])>/temp$6 -> [[]:ConstantObj{java.lang.Class: java.lang.Object.class}]
[]:<B: void <init>()>/%this -> [[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[6@L12] new B}]
[]:<B: void print()>/%stringconst0 -> [[]:MergedObj{<Merged string constants>}]
[]:<B: void print()>/%this -> [[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[6@L12] new B}]
[]:<B: void print()>/temp$0 -> []
[]:<B: void print(java.lang.Object,java.lang.Object)>/%stringconst0 -> [[]:MergedObj{<Merged string constants>}]
[]:<B: void print(java.lang.Object,java.lang.Object)>/%this -> [[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[6@L12] new B}]
[]:<B: void print(java.lang.Object,java.lang.Object)>/o1 -> [[]:MergedObj{<Merged string constants>}]
[]:<B: void print(java.lang.Object,java.lang.Object)>/o2 -> [[]:MergedObj{<Merged string constants>}]
[]:<B: void print(java.lang.Object,java.lang.Object)>/temp$0 -> []

Points-to sets of all static fields
<ArgsRefine: java.lang.Class class$java$lang$Object> -> [[]:ConstantObj{java.lang.Class: java.lang.Object.class}]
<java.lang.System: java.io.PrintStream out> -> []

Points-to sets of all instance fields

Points-to sets of all array indexes
[]:EntryPointObj{alloc=MethodParam{<ArgsRefine: void main(java.lang.String[])>/0},type=java.lang.String[] in <ArgsRefine: void main(java.lang.String[])>}[*] -> [[]:EntryPointObj{alloc=MethodParam{<ArgsRefine: void main(java.lang.String[])>/0}[*],type=java.lang.String in <ArgsRefine: void main(java.lang.String[])>}]
[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[10@L13] newarray java.lang.Object[%intconst2]}[*] -> [[]:MergedObj{<Merged string constants>}]
[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[17@L14] newarray java.lang.Object[%intconst2]}[*] -> [[]:MergedObj{<Merged string constants>}]
[]:NewObj{<ArgsRefine: void invokePrint(java.lang.Class[])>[24@L16] newarray java.lang.Object[%intconst3]}[*] -> []
[]:NewObj{<ArgsRefine: void main(java.lang.String[])>[1@L6] newarray java.lang.Class[%intconst0]}[*] -> [[]:ConstantObj{java.lang.Class: java.lang.Object.class}]

