Points-to sets of all variables
[]:<GetMember: void main(java.lang.String[])>/r0 -> [[]:EntryPointObj{alloc=MethodParam{<GetMember: void main(java.lang.String[])>/0},type=java.lang.String[] in <GetMember: void main(java.lang.String[])>}]
[]:<GetMember: void testConstructor()>/$r1 -> [[]:NewObj{<GetMember: void testConstructor()>[4@L14] newarray java.lang.Class[%intconst0]}]
[]:<GetMember: void testConstructor()>/$r2 -> [[]:ReflectionMetaObj{alloc=<U: void <init>(V)>,type=java.lang.reflect.Constructor}]
[]:<GetMember: void testConstructor()>/$r3 -> [[]:NewObj{<GetMember: void testConstructor()>[9@L15] newarray java.lang.Class[%intconst1]}]
[]:<GetMember: void testConstructor()>/$r4 -> [[]:ReflectionMetaObj{alloc=<U: void <init>()>,type=java.lang.reflect.Constructor}, []:ReflectionMetaObj{alloc=<U: void <init>(V)>,type=java.lang.reflect.Constructor}, []:ReflectionMetaObj{alloc=<U: void <init>(java.lang.Object)>,type=java.lang.reflect.Constructor}]
[]:<GetMember: void testConstructor()>/$r5 -> [[]:NewObj{<GetMember: void testConstructor()>[12@L16] newarray java.lang.Object[%intconst3]}]
[]:<GetMember: void testConstructor()>/%classconst2 -> [[]:ConstantObj{java.lang.Class: V.class}]
[]:<GetMember: void testConstructor()>/r0 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<GetMember: void testConstructor()>/r6 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<GetMember: void testConstructor()>/r7 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<GetMember: void testGetClass()>/$r0 -> [[]:NewObj{<GetMember: void testGetClass()>[0@L27] new U}]
[]:<GetMember: void testGetClass()>/$r1 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<GetMember: void testGetClass()>/$r2 -> [[]:NewObj{<GetMember: void testGetClass()>[4@L29] newarray java.lang.Class[%intconst0]}]
[]:<GetMember: void testGetClass()>/$r3 -> []
[]:<GetMember: void testGetClass()>/$r4 -> [[]:ReflectionMetaObj{alloc=<U: void foo()>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<U: void foo(U)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<U: void foo(int)>,type=java.lang.reflect.Method}]
[]:<GetMember: void testGetClass()>/$r5 -> [[]:NewObj{<GetMember: void testGetClass()>[10@L30] newarray java.lang.Class[%intconst0]}]
[]:<GetMember: void testGetClass()>/$r6 -> [[]:ReflectionMetaObj{alloc=<U: void foo(U)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<V: void foo(V)>,type=java.lang.reflect.Method}]
[]:<GetMember: void testGetClass()>/$r7 -> [[]:NewObj{<GetMember: void testGetClass()>[15@L31] newarray java.lang.Object[%intconst4]}]
[]:<GetMember: void testGetClass()>/%classconst3 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<GetMember: void testGetClass()>/%stringconst2 -> [[]:ConstantObj{java.lang.String: "foo"}]
[]:<GetMember: void testMethod()>/$r1 -> [[]:NewObj{<GetMember: void testMethod()>[4@L21] newarray java.lang.Class[%intconst0]}]
[]:<GetMember: void testMethod()>/$r2 -> []
[]:<GetMember: void testMethod()>/$r3 -> [[]:ReflectionMetaObj{alloc=<U: void foo()>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<U: void foo(U)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<U: void foo(int)>,type=java.lang.reflect.Method}]
[]:<GetMember: void testMethod()>/$r4 -> [[]:NewObj{<GetMember: void testMethod()>[10@L22] newarray java.lang.Class[%intconst0]}]
[]:<GetMember: void testMethod()>/$r5 -> [[]:ReflectionMetaObj{alloc=<U: void foo(U)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<V: void foo(V)>,type=java.lang.reflect.Method}]
[]:<GetMember: void testMethod()>/$r6 -> [[]:NewObj{<GetMember: void testMethod()>[15@L23] newarray java.lang.Object[%intconst4]}]
[]:<GetMember: void testMethod()>/%classconst3 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<GetMember: void testMethod()>/%stringconst2 -> [[]:ConstantObj{java.lang.String: "foo"}]
[]:<GetMember: void testMethod()>/r0 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<GetMember: void testMethod()>/r7 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<GetMember: void testMethod()>/r8 -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:<GetMember: void use(java.lang.Object[])>/r0 -> [[]:NewObj{<GetMember: void testConstructor()>[12@L16] newarray java.lang.Object[%intconst3]}, []:NewObj{<GetMember: void testGetClass()>[15@L31] newarray java.lang.Object[%intconst4]}, []:NewObj{<GetMember: void testMethod()>[15@L23] newarray java.lang.Object[%intconst4]}]
[]:<U: void <clinit>()>/temp$0 -> [[]:NewObj{<U: void <clinit>()>[0@L1] new java.lang.Object}]
[]:<U: void <init>()>/%this -> [[]:NewObj{<GetMember: void testGetClass()>[0@L27] new U}]
[]:<U: void <init>()>/temp$0 -> [[]:NewObj{<U: void <init>()>[1@L10] new W}]
[]:<V: void <init>()>/%this -> [[]:NewObj{<GetMember: void testGetClass()>[0@L27] new U}]
[]:<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}]

Points-to sets of all static fields
<U: java.lang.Object stat> -> [[]: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}]
<java.lang.Integer: java.lang.Class TYPE> -> []

Points-to sets of all instance fields
[]:NewObj{<GetMember: void testGetClass()>[0@L27] new U}.inst -> [[]:NewObj{<U: void <init>()>[1@L10] new W}]

Points-to sets of all array indexes
[]:EntryPointObj{alloc=MethodParam{<GetMember: void main(java.lang.String[])>/0},type=java.lang.String[] in <GetMember: void main(java.lang.String[])>}[*] -> [[]:EntryPointObj{alloc=MethodParam{<GetMember: void main(java.lang.String[])>/0}[*],type=java.lang.String in <GetMember: void main(java.lang.String[])>}]
[]:NewObj{<GetMember: void testConstructor()>[12@L16] newarray java.lang.Object[%intconst3]}[*] -> [[]:ReflectionMetaObj{alloc=<U: void <init>()>,type=java.lang.reflect.Constructor}, []:ReflectionMetaObj{alloc=<U: void <init>(V)>,type=java.lang.reflect.Constructor}, []:ReflectionMetaObj{alloc=<U: void <init>(java.lang.Object)>,type=java.lang.reflect.Constructor}]
[]:NewObj{<GetMember: void testConstructor()>[4@L14] newarray java.lang.Class[%intconst0]}[*] -> [[]:ConstantObj{java.lang.Class: V.class}]
[]:NewObj{<GetMember: void testGetClass()>[10@L30] newarray java.lang.Class[%intconst0]}[*] -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:NewObj{<GetMember: void testGetClass()>[15@L31] newarray java.lang.Object[%intconst4]}[*] -> [[]:ReflectionMetaObj{alloc=<U: void foo()>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<U: void foo(U)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<U: void foo(int)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<V: void foo(V)>,type=java.lang.reflect.Method}]
[]:NewObj{<GetMember: void testGetClass()>[4@L29] newarray java.lang.Class[%intconst0]}[*] -> []
[]:NewObj{<GetMember: void testMethod()>[10@L22] newarray java.lang.Class[%intconst0]}[*] -> [[]:ConstantObj{java.lang.Class: U.class}]
[]:NewObj{<GetMember: void testMethod()>[15@L23] newarray java.lang.Object[%intconst4]}[*] -> [[]:ReflectionMetaObj{alloc=<U: void foo()>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<U: void foo(U)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<U: void foo(int)>,type=java.lang.reflect.Method}, []:ReflectionMetaObj{alloc=<V: void foo(V)>,type=java.lang.reflect.Method}]
[]:NewObj{<GetMember: void testMethod()>[4@L21] newarray java.lang.Class[%intconst0]}[*] -> []

