Points-to sets of all variables
[]:<ReflectiveAction: void arraynew()>/$r0 -> [[]:ReflectionLogMetaObj{alloc=U.class,type=java.lang.Class}]
[]:<ReflectiveAction: void arraynew()>/$r1 -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void arraynew()>[3@L60] $r1 = invokestatic java.lang.reflect.Array.newInstance($r0, %intconst1),type=U[] in <ReflectiveAction: void arraynew()>}]
[]:<ReflectiveAction: void arraynew()>/$r2 -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void arraynew()>[3@L60] $r1 = invokestatic java.lang.reflect.Array.newInstance($r0, %intconst1),type=U[] in <ReflectiveAction: void arraynew()>}]
[]:<ReflectiveAction: void arraynew()>/$r4 -> [[]:NewObj{<ReflectiveAction: void arraynew()>[6@L61] new U}]
[]:<ReflectiveAction: void arraynew()>/%stringconst0 -> [[]:ConstantObj{java.lang.String: "U"}]
[]:<ReflectiveAction: void arraynew()>/r3 -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void arraynew()>[3@L60] $r1 = invokestatic java.lang.reflect.Array.newInstance($r0, %intconst1),type=U[] in <ReflectiveAction: void arraynew()>}]
[]:<ReflectiveAction: void cnew()>/$r1 -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void cnew()>[1@L47] $r1 = invokevirtual r0.newInstance(),type=U in <ReflectiveAction: void cnew()>}]
[]:<ReflectiveAction: void cnew()>/r0 -> [[]:ConstantObj{java.lang.Class: U.class}, []:ReflectionLogMetaObj{alloc=U.class,type=java.lang.Class}]
[]:<ReflectiveAction: void cnew()>/r2 -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void cnew()>[1@L47] $r1 = invokevirtual r0.newInstance(),type=U in <ReflectiveAction: void cnew()>}]
[]:<ReflectiveAction: void ctornew()>/$r1 -> [[]:NewObj{<ReflectiveAction: void ctornew()>[2@L53] newarray java.lang.Class[%intconst0]}]
[]:<ReflectiveAction: void ctornew()>/$r2 -> [[]:ReflectionLogMetaObj{alloc=<U: void <init>(V)>,type=java.lang.reflect.Constructor}]
[]:<ReflectiveAction: void ctornew()>/$r3 -> [[]:NewObj{<ReflectiveAction: void ctornew()>[7@L54] newarray java.lang.Object[%intconst0]}]
[]:<ReflectiveAction: void ctornew()>/$r4 -> [[]:NewObj{<ReflectiveAction: void ctornew()>[8@L54] new V}]
[]:<ReflectiveAction: void ctornew()>/$r5 -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void ctornew()>[11@L54] $r5 = invokevirtual $r2.newInstance($r3),type=U in <ReflectiveAction: void ctornew()>}]
[]:<ReflectiveAction: void ctornew()>/%classconst2 -> [[]:ConstantObj{java.lang.Class: V.class}]
[]:<ReflectiveAction: void ctornew()>/r0 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<ReflectiveAction: void ctornew()>/r6 -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void ctornew()>[11@L54] $r5 = invokevirtual $r2.newInstance($r3),type=U in <ReflectiveAction: void ctornew()>}]
[]:<ReflectiveAction: void forname(W)>/$r0 -> [[]:ReflectionLogMetaObj{alloc=U.class,type=java.lang.Class}]
[]:<ReflectiveAction: void forname(W)>/$r1 -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void forname(W)>[2@L31] $r1 = invokevirtual $r0.newInstance(),type=U in <ReflectiveAction: void forname(W)>}]
[]:<ReflectiveAction: void forname(W)>/$r3 -> [[]:ReflectionLogMetaObj{alloc=V.class,type=java.lang.Class}]
[]:<ReflectiveAction: void forname(W)>/$r4 -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void forname(W)>[8@L35] $r4 = invokevirtual $r3.newInstance(),type=V in <ReflectiveAction: void forname(W)>}]
[]:<ReflectiveAction: void forname(W)>/$r5 -> [[]:ReflectionLogMetaObj{alloc=W.class,type=java.lang.Class}]
[]:<ReflectiveAction: void forname(W)>/$r7 -> [[]:ReflectionLogMetaObj{alloc=W.class,type=java.lang.Class}]
[]:<ReflectiveAction: void forname(W)>/%stringconst0 -> [[]:ConstantObj{java.lang.String: "U"}]
[]:<ReflectiveAction: void forname(W)>/%stringconst1 -> [[]:ConstantObj{java.lang.String: "V"}]
[]:<ReflectiveAction: void forname(W)>/%stringconst3 -> [[]:ConstantObj{java.lang.String: "W"}]
[]:<ReflectiveAction: void get()>/$r0 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<ReflectiveAction: void get()>/$r1 -> [[]:ReflectionLogMetaObj{alloc=<U: java.lang.Object stat>,type=java.lang.reflect.Field}]
[]:<ReflectiveAction: void get()>/$r2 -> [[]:NewObj{<ReflectiveAction: void set()>[3@L90] new java.lang.Object}, []:NewObj{<U: void <clinit>()>[0@L1] new java.lang.Object}]
[]:<ReflectiveAction: void get()>/$r3 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<ReflectiveAction: void get()>/$r4 -> [[]:ReflectionLogMetaObj{alloc=<U: java.lang.Object inst>,type=java.lang.reflect.Field}]
[]:<ReflectiveAction: void get()>/$r5 -> [[]:NewObj{<ReflectiveAction: void get()>[8@L83] new U}]
[]:<ReflectiveAction: void get()>/$r6 -> [[]:NewObj{<U: void <init>()>[1@L10] new W}]
[]:<ReflectiveAction: void get()>/%nullconst -> []
[]:<ReflectiveAction: void get()>/%stringconst0 -> [[]:ConstantObj{java.lang.String: "stat"}]
[]:<ReflectiveAction: void get()>/%stringconst1 -> [[]:ConstantObj{java.lang.String: "inst"}]
[]:<ReflectiveAction: void invoke()>/$r0 -> [[]:NewObj{<ReflectiveAction: void invoke()>[2@L66] newarray java.lang.Class[%intconst0]}]
[]:<ReflectiveAction: void invoke()>/$r1 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<ReflectiveAction: void invoke()>/$r10 -> [[]:NewObj{<U: java.lang.Object baz(V,java.lang.String)>[0@L30] new java.lang.Object}]
[]:<ReflectiveAction: void invoke()>/$r2 -> [[]:ReflectionLogMetaObj{alloc=<U: void staticFoo(java.lang.Object)>,type=java.lang.reflect.Method}]
[]:<ReflectiveAction: void invoke()>/$r3 -> [[]:NewObj{<ReflectiveAction: void invoke()>[8@L67] newarray java.lang.Object[%intconst0]}]
[]:<ReflectiveAction: void invoke()>/$r4 -> [[]:NewObj{<ReflectiveAction: void invoke()>[13@L70] newarray java.lang.Class[%intconst4]}]
[]:<ReflectiveAction: void invoke()>/$r5 -> [[]:ConstantObj{java.lang.Class: V.class}]
[]:<ReflectiveAction: void invoke()>/$r6 -> [[]:ReflectionLogMetaObj{alloc=<U: java.lang.Object baz(V,java.lang.String)>,type=java.lang.reflect.Method}]
[]:<ReflectiveAction: void invoke()>/$r7 -> [[]:NewObj{<ReflectiveAction: void invoke()>[20@L71] new U}]
[]:<ReflectiveAction: void invoke()>/$r8 -> [[]:NewObj{<ReflectiveAction: void invoke()>[22@L71] newarray java.lang.Object[%intconst4]}]
[]:<ReflectiveAction: void invoke()>/$r9 -> [[]:NewObj{<ReflectiveAction: void invoke()>[23@L71] new V}]
[]:<ReflectiveAction: void invoke()>/%classconst2 -> [[]:ConstantObj{java.lang.Class: java.lang.Object.class}]
[]:<ReflectiveAction: void invoke()>/%classconst5 -> [[]:ConstantObj{java.lang.Class: V.class}]
[]:<ReflectiveAction: void invoke()>/%classconst6 -> [[]:ConstantObj{java.lang.Class: java.lang.String.class}]
[]:<ReflectiveAction: void invoke()>/%nullconst -> []
[]:<ReflectiveAction: void invoke()>/%stringconst3 -> [[]:ConstantObj{java.lang.String: "staticFoo"}]
[]:<ReflectiveAction: void invoke()>/%stringconst7 -> [[]:ConstantObj{java.lang.String: "baz"}]
[]:<ReflectiveAction: void invoke()>/%stringconst8 -> [[]:ConstantObj{java.lang.String: "arg"}]
[]:<ReflectiveAction: void main(java.lang.String[])>/r0 -> [[]:EntryPointObj{alloc=MethodParam{<ReflectiveAction: void main(java.lang.String[])>/0},type=java.lang.String[] in <ReflectiveAction: void main(java.lang.String[])>}]
[]:<ReflectiveAction: void set()>/$r0 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<ReflectiveAction: void set()>/$r1 -> [[]:ReflectionLogMetaObj{alloc=<U: java.lang.Object stat>,type=java.lang.reflect.Field}]
[]:<ReflectiveAction: void set()>/$r2 -> [[]:NewObj{<ReflectiveAction: void set()>[3@L90] new java.lang.Object}]
[]:<ReflectiveAction: void set()>/$r3 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<ReflectiveAction: void set()>/$r4 -> [[]:ReflectionLogMetaObj{alloc=<U: java.lang.Object inst>,type=java.lang.reflect.Field}]
[]:<ReflectiveAction: void set()>/$r5 -> [[]:NewObj{<ReflectiveAction: void set()>[9@L94] new U}]
[]:<ReflectiveAction: void set()>/$r6 -> [[]:NewObj{<ReflectiveAction: void set()>[11@L94] new V}]
[]:<ReflectiveAction: void set()>/%nullconst -> []
[]:<ReflectiveAction: void set()>/%stringconst0 -> [[]:ConstantObj{java.lang.String: "stat"}]
[]:<ReflectiveAction: void set()>/%stringconst1 -> [[]:ConstantObj{java.lang.String: "inst"}]
[]:<ReflectiveAction: void use(java.lang.Object)>/r0 -> [[]:NewObj{<ReflectiveAction: void set()>[3@L90] new java.lang.Object}, []:NewObj{<U: java.lang.Object baz(V,java.lang.String)>[0@L30] new java.lang.Object}, []:NewObj{<U: void <clinit>()>[0@L1] new java.lang.Object}, []:NewObj{<U: void <init>()>[1@L10] new W}, []:ReflectionLogMetaObj{alloc=W.class,type=java.lang.Class}]
[]:<U: java.lang.Object baz(V,java.lang.String)>/%this -> [[]:NewObj{<ReflectiveAction: void invoke()>[20@L71] new U}]
[]:<U: java.lang.Object baz(V,java.lang.String)>/s -> [[]:ConstantObj{java.lang.String: "arg"}]
[]:<U: java.lang.Object baz(V,java.lang.String)>/temp$0 -> [[]:NewObj{<U: java.lang.Object baz(V,java.lang.String)>[0@L30] new java.lang.Object}]
[]:<U: java.lang.Object baz(V,java.lang.String)>/v -> [[]:NewObj{<ReflectiveAction: void invoke()>[23@L71] new V}]
[]:<U: void <clinit>()>/temp$0 -> [[]:NewObj{<U: void <clinit>()>[0@L1] new java.lang.Object}]
[]:<U: void <init>()>/%this -> [[]:NewObj{<ReflectiveAction: void arraynew()>[6@L61] new U}, []:NewObj{<ReflectiveAction: void get()>[8@L83] new U}, []:NewObj{<ReflectiveAction: void invoke()>[20@L71] new U}, []:NewObj{<ReflectiveAction: void set()>[9@L94] new U}, []:ReflectiveObj{alloc=<ReflectiveAction: void cnew()>[1@L47] $r1 = invokevirtual r0.newInstance(),type=U in <ReflectiveAction: void cnew()>}, []:ReflectiveObj{alloc=<ReflectiveAction: void forname(W)>[2@L31] $r1 = invokevirtual $r0.newInstance(),type=U in <ReflectiveAction: void forname(W)>}]
[]:<U: void <init>()>/temp$0 -> [[]:NewObj{<U: void <init>()>[1@L10] new W}]
[]:<U: void <init>(V)>/%this -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void ctornew()>[11@L54] $r5 = invokevirtual $r2.newInstance($r3),type=U in <ReflectiveAction: void ctornew()>}]
[]:<U: void <init>(V)>/temp$0 -> [[]:NewObj{<U: void <init>(V)>[1@L7] new W}]
[]:<U: void <init>(V)>/v -> [[]:NewObj{<ReflectiveAction: void ctornew()>[8@L54] new V}]
[]:<U: void foo()>/%this -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void cnew()>[1@L47] $r1 = invokevirtual r0.newInstance(),type=U in <ReflectiveAction: void cnew()>}]
[]:<U: void foo(U)>/%this -> [[]:ReflectiveObj{alloc=<ReflectiveAction: void ctornew()>[11@L54] $r5 = invokevirtual $r2.newInstance($r3),type=U in <ReflectiveAction: void ctornew()>}]
[]:<U: void staticFoo(java.lang.Object)>/o -> []
[]:<V: void <init>()>/%this -> [[]:NewObj{<ReflectiveAction: void arraynew()>[6@L61] new U}, []:NewObj{<ReflectiveAction: void ctornew()>[8@L54] new V}, []:NewObj{<ReflectiveAction: void get()>[8@L83] new U}, []:NewObj{<ReflectiveAction: void invoke()>[20@L71] new U}, []:NewObj{<ReflectiveAction: void invoke()>[23@L71] new V}, []:NewObj{<ReflectiveAction: void set()>[11@L94] new V}, []:NewObj{<ReflectiveAction: void set()>[9@L94] new U}, []:ReflectiveObj{alloc=<ReflectiveAction: void cnew()>[1@L47] $r1 = invokevirtual r0.newInstance(),type=U in <ReflectiveAction: void cnew()>}, []:ReflectiveObj{alloc=<ReflectiveAction: void ctornew()>[11@L54] $r5 = invokevirtual $r2.newInstance($r3),type=U in <ReflectiveAction: void ctornew()>}, []:ReflectiveObj{alloc=<ReflectiveAction: void forname(W)>[2@L31] $r1 = invokevirtual $r0.newInstance(),type=U in <ReflectiveAction: void forname(W)>}, []:ReflectiveObj{alloc=<ReflectiveAction: void forname(W)>[8@L35] $r4 = invokevirtual $r3.newInstance(),type=V in <ReflectiveAction: void forname(W)>}]
[]:<W: void <clinit>()>/temp$0 -> [[]:NewObj{<W: void <clinit>()>[0@L1] new java.lang.Object}]
[]:<W: void <init>()>/%this -> [[]:NewObj{<U: void <init>()>[1@L10] new W}, []:NewObj{<U: void <init>(V)>[1@L7] new W}]

Points-to sets of all static fields
<U: java.lang.Object stat> -> [[]:NewObj{<ReflectiveAction: void set()>[3@L90] new java.lang.Object}, []:NewObj{<U: void <clinit>()>[0@L1] new java.lang.Object}]
<W: java.lang.Object f> -> [[]:NewObj{<W: void <clinit>()>[0@L1] new java.lang.Object}]

Points-to sets of all instance fields
[]:NewObj{<ReflectiveAction: void arraynew()>[6@L61] new U}.inst -> [[]:NewObj{<U: void <init>()>[1@L10] new W}]
[]:NewObj{<ReflectiveAction: void get()>[8@L83] new U}.inst -> [[]:NewObj{<U: void <init>()>[1@L10] new W}]
[]:NewObj{<ReflectiveAction: void invoke()>[20@L71] new U}.inst -> [[]:NewObj{<U: void <init>()>[1@L10] new W}]
[]:NewObj{<ReflectiveAction: void set()>[9@L94] new U}.inst -> [[]:NewObj{<ReflectiveAction: void set()>[11@L94] new V}, []:NewObj{<U: void <init>()>[1@L10] new W}]
[]:ReflectiveObj{alloc=<ReflectiveAction: void cnew()>[1@L47] $r1 = invokevirtual r0.newInstance(),type=U in <ReflectiveAction: void cnew()>}.inst -> [[]:NewObj{<U: void <init>()>[1@L10] new W}]
[]:ReflectiveObj{alloc=<ReflectiveAction: void ctornew()>[11@L54] $r5 = invokevirtual $r2.newInstance($r3),type=U in <ReflectiveAction: void ctornew()>}.inst -> [[]:NewObj{<U: void <init>(V)>[1@L7] new W}]
[]:ReflectiveObj{alloc=<ReflectiveAction: void forname(W)>[2@L31] $r1 = invokevirtual $r0.newInstance(),type=U in <ReflectiveAction: void forname(W)>}.inst -> [[]:NewObj{<U: void <init>()>[1@L10] new W}]

Points-to sets of all array indexes
[]:EntryPointObj{alloc=MethodParam{<ReflectiveAction: void main(java.lang.String[])>/0},type=java.lang.String[] in <ReflectiveAction: void main(java.lang.String[])>}[*] -> [[]:EntryPointObj{alloc=MethodParam{<ReflectiveAction: void main(java.lang.String[])>/0}[*],type=java.lang.String in <ReflectiveAction: void main(java.lang.String[])>}]
[]:NewObj{<ReflectiveAction: void ctornew()>[2@L53] newarray java.lang.Class[%intconst0]}[*] -> [[]:ConstantObj{java.lang.Class: V.class}]
[]:NewObj{<ReflectiveAction: void ctornew()>[7@L54] newarray java.lang.Object[%intconst0]}[*] -> [[]:NewObj{<ReflectiveAction: void ctornew()>[8@L54] new V}]
[]:NewObj{<ReflectiveAction: void invoke()>[13@L70] newarray java.lang.Class[%intconst4]}[*] -> [[]:ConstantObj{java.lang.Class: V.class}, []:ConstantObj{java.lang.Class: java.lang.String.class}]
[]:NewObj{<ReflectiveAction: void invoke()>[22@L71] newarray java.lang.Object[%intconst4]}[*] -> [[]:ConstantObj{java.lang.String: "arg"}, []:NewObj{<ReflectiveAction: void invoke()>[23@L71] new V}]
[]:NewObj{<ReflectiveAction: void invoke()>[2@L66] newarray java.lang.Class[%intconst0]}[*] -> [[]:ConstantObj{java.lang.Class: java.lang.Object.class}]
[]:NewObj{<ReflectiveAction: void invoke()>[8@L67] newarray java.lang.Object[%intconst0]}[*] -> []
[]:ReflectiveObj{alloc=<ReflectiveAction: void arraynew()>[3@L60] $r1 = invokestatic java.lang.reflect.Array.newInstance($r0, %intconst1),type=U[] in <ReflectiveAction: void arraynew()>}[*] -> [[]:NewObj{<ReflectiveAction: void arraynew()>[6@L61] new U}]

