Points-to sets of all variables
[]:<A: void <init>()>/%this -> [[]:NewObj{<A: void callField()>[0@L31] new A}, []:NewObj{<A: void cycle()>[0@L23] new A}, []:NewObj{<A: void longAP()>[0@L15] new A}, []:NewObj{<InstanceField: void main(java.lang.String[])>[0@L4] new A}]
[]:<A: void callField()>/%this -> [[]:NewObj{<InstanceField: void main(java.lang.String[])>[0@L4] new A}]
[]:<A: void callField()>/a -> [[]:NewObj{<A: void callField()>[0@L31] new A}]
[]:<A: void callField()>/b -> [[]:NewObj{<A: void callField()>[3@L32] new B}]
[]:<A: void callField()>/c -> [[]:NewObj{<B: C foo()>[0@L43] new C}]
[]:<A: void callField()>/temp$0 -> [[]:NewObj{<A: void callField()>[0@L31] new A}]
[]:<A: void callField()>/temp$1 -> [[]:NewObj{<A: void callField()>[3@L32] new B}]
[]:<A: void callField()>/temp$2 -> [[]:NewObj{<A: void callField()>[3@L32] new B}]
[]:<A: void callField()>/temp$3 -> [[]:NewObj{<B: C foo()>[0@L43] new C}]
[]:<A: void cycle()>/%this -> [[]:NewObj{<InstanceField: void main(java.lang.String[])>[0@L4] new A}]
[]:<A: void cycle()>/a -> [[]:NewObj{<A: void cycle()>[0@L23] new A}]
[]:<A: void cycle()>/b -> [[]:NewObj{<A: void cycle()>[3@L24] new B}]
[]:<A: void cycle()>/temp$0 -> [[]:NewObj{<A: void cycle()>[0@L23] new A}]
[]:<A: void cycle()>/temp$1 -> [[]:NewObj{<A: void cycle()>[3@L24] new B}]
[]:<A: void cycle()>/temp$2 -> [[]:NewObj{<A: void cycle()>[0@L23] new A}]
[]:<A: void cycle()>/temp$3 -> [[]:NewObj{<A: void cycle()>[3@L24] new B}]
[]:<A: void cycle()>/x -> [[]:NewObj{<A: void cycle()>[0@L23] new A}]
[]:<A: void longAP()>/%this -> [[]:NewObj{<InstanceField: void main(java.lang.String[])>[0@L4] new A}]
[]:<A: void longAP()>/a -> [[]:NewObj{<A: void longAP()>[0@L15] new A}]
[]:<A: void longAP()>/temp$0 -> [[]:NewObj{<A: void longAP()>[0@L15] new A}]
[]:<A: void longAP()>/temp$1 -> [[]:NewObj{<A: void longAP()>[3@L16] new B}]
[]:<A: void longAP()>/temp$2 -> [[]:NewObj{<A: void longAP()>[3@L16] new B}]
[]:<A: void longAP()>/temp$3 -> [[]:NewObj{<A: void longAP()>[7@L17] new C}]
[]:<A: void longAP()>/temp$4 -> [[]:NewObj{<A: void longAP()>[3@L16] new B}]
[]:<A: void longAP()>/temp$5 -> [[]:NewObj{<A: void longAP()>[7@L17] new C}]
[]:<A: void longAP()>/temp$6 -> [[]:NewObj{<A: void longAP()>[12@L18] new D}]
[]:<A: void longAP()>/temp$7 -> [[]:NewObj{<A: void longAP()>[3@L16] new B}]
[]:<A: void longAP()>/temp$8 -> [[]:NewObj{<A: void longAP()>[7@L17] new C}]
[]:<A: void longAP()>/x -> [[]:NewObj{<A: void longAP()>[12@L18] new D}]
[]:<B: C foo()>/%this -> [[]:NewObj{<A: void callField()>[3@L32] new B}]
[]:<B: C foo()>/temp$0 -> [[]:NewObj{<B: C foo()>[0@L43] new C}]
[]:<B: C foo()>/x -> [[]:NewObj{<B: C foo()>[0@L43] new C}]
[]:<B: void <init>()>/%this -> [[]:NewObj{<A: void callField()>[3@L32] new B}, []:NewObj{<A: void cycle()>[3@L24] new B}, []:NewObj{<A: void longAP()>[3@L16] new B}]
[]:<C: void <init>()>/%this -> [[]:NewObj{<A: void longAP()>[7@L17] new C}, []:NewObj{<B: C foo()>[0@L43] new C}]
[]:<D: void <init>()>/%this -> [[]:NewObj{<A: void longAP()>[12@L18] new D}]
[]:<InstanceField: void main(java.lang.String[])>/a -> [[]:NewObj{<InstanceField: void main(java.lang.String[])>[0@L4] new A}]
[]:<InstanceField: void main(java.lang.String[])>/args -> [[]:EntryPointObj{alloc=MethodParam{<InstanceField: void main(java.lang.String[])>/0},type=java.lang.String[] in <InstanceField: void main(java.lang.String[])>}]
[]:<InstanceField: void main(java.lang.String[])>/temp$0 -> [[]:NewObj{<InstanceField: void main(java.lang.String[])>[0@L4] new A}]

Points-to sets of all static fields

Points-to sets of all instance fields
[]:NewObj{<A: void callField()>[0@L31] new A}.b -> [[]:NewObj{<A: void callField()>[3@L32] new B}]
[]:NewObj{<A: void cycle()>[0@L23] new A}.b -> [[]:NewObj{<A: void cycle()>[3@L24] new B}]
[]:NewObj{<A: void cycle()>[3@L24] new B}.a -> [[]:NewObj{<A: void cycle()>[0@L23] new A}]
[]:NewObj{<A: void longAP()>[0@L15] new A}.b -> [[]:NewObj{<A: void longAP()>[3@L16] new B}]
[]:NewObj{<A: void longAP()>[3@L16] new B}.c -> [[]:NewObj{<A: void longAP()>[7@L17] new C}]
[]:NewObj{<A: void longAP()>[7@L17] new C}.d -> [[]:NewObj{<A: void longAP()>[12@L18] new D}]

Points-to sets of all array indexes
[]:EntryPointObj{alloc=MethodParam{<InstanceField: void main(java.lang.String[])>/0},type=java.lang.String[] in <InstanceField: void main(java.lang.String[])>}[*] -> [[]:EntryPointObj{alloc=MethodParam{<InstanceField: void main(java.lang.String[])>/0}[*],type=java.lang.String in <InstanceField: void main(java.lang.String[])>}]

