Points-to sets of all variables
[A]:<C: D get()>/%this -> [[]:NewObj{<A: void m()>[0@L10] new C}]
[A]:<C: D get()>/temp$0 -> [[]:NewObj{<A: void m()>[3@L11] new D}, []:NewObj{<A: void m()>[9@L13] new D}]
[A]:<C: void <init>()>/%this -> [[]:NewObj{<A: void m()>[0@L10] new C}, []:NewObj{<A: void m()>[6@L12] new C}]
[A]:<C: void set(D)>/%this -> [[]:NewObj{<A: void m()>[0@L10] new C}, []:NewObj{<A: void m()>[6@L12] new C}]
[A]:<C: void set(D)>/p -> [[]:NewObj{<A: void m()>[3@L11] new D}, []:NewObj{<A: void m()>[9@L13] new D}]
[A]:<D: void <init>()>/%this -> [[]:NewObj{<A: void m()>[3@L11] new D}, []:NewObj{<A: void m()>[9@L13] new D}]
[B]:<C: D get()>/%this -> [[]:NewObj{<B: void m()>[0@L20] new C}]
[B]:<C: D get()>/temp$0 -> [[]:NewObj{<B: void m()>[3@L21] new D}]
[B]:<C: void <init>()>/%this -> [[]:NewObj{<B: void m()>[0@L20] new C}]
[B]:<C: void set(D)>/%this -> [[]:NewObj{<B: void m()>[0@L20] new C}]
[B]:<C: void set(D)>/p -> [[]:NewObj{<B: void m()>[3@L21] new D}]
[B]:<D: void <init>()>/%this -> [[]:NewObj{<B: void m()>[3@L21] new D}]
[OneType]:<A: void <init>()>/%this -> [[]:NewObj{<OneType: void main(java.lang.String[])>[0@L3] new A}]
[OneType]:<A: void m()>/%this -> [[]:NewObj{<OneType: void main(java.lang.String[])>[0@L3] new A}]
[OneType]:<A: void m()>/c1 -> [[]:NewObj{<A: void m()>[0@L10] new C}]
[OneType]:<A: void m()>/c2 -> [[]:NewObj{<A: void m()>[6@L12] new C}]
[OneType]:<A: void m()>/temp$0 -> [[]:NewObj{<A: void m()>[0@L10] new C}]
[OneType]:<A: void m()>/temp$1 -> [[]:NewObj{<A: void m()>[3@L11] new D}]
[OneType]:<A: void m()>/temp$2 -> [[]:NewObj{<A: void m()>[6@L12] new C}]
[OneType]:<A: void m()>/temp$3 -> [[]:NewObj{<A: void m()>[9@L13] new D}]
[OneType]:<A: void m()>/temp$4 -> [[]:NewObj{<A: void m()>[3@L11] new D}, []:NewObj{<A: void m()>[9@L13] new D}]
[OneType]:<A: void m()>/x -> [[]:NewObj{<A: void m()>[3@L11] new D}, []:NewObj{<A: void m()>[9@L13] new D}]
[OneType]:<B: void <init>()>/%this -> [[]:NewObj{<OneType: void main(java.lang.String[])>[3@L4] new B}]
[OneType]:<B: void m()>/%this -> [[]:NewObj{<OneType: void main(java.lang.String[])>[3@L4] new B}]
[OneType]:<B: void m()>/c3 -> [[]:NewObj{<B: void m()>[0@L20] new C}]
[OneType]:<B: void m()>/temp$0 -> [[]:NewObj{<B: void m()>[0@L20] new C}]
[OneType]:<B: void m()>/temp$1 -> [[]:NewObj{<B: void m()>[3@L21] new D}]
[OneType]:<B: void m()>/temp$2 -> [[]:NewObj{<B: void m()>[3@L21] new D}]
[OneType]:<B: void m()>/y -> [[]:NewObj{<B: void m()>[3@L21] new D}]
[]:<OneType: void main(java.lang.String[])>/args -> [[]:EntryPointObj{alloc=MethodParam{<OneType: void main(java.lang.String[])>/0},type=java.lang.String[] in <OneType: void main(java.lang.String[])>}]
[]:<OneType: void main(java.lang.String[])>/temp$0 -> [[]:NewObj{<OneType: void main(java.lang.String[])>[0@L3] new A}]
[]:<OneType: void main(java.lang.String[])>/temp$1 -> [[]:NewObj{<OneType: void main(java.lang.String[])>[3@L4] new B}]

Points-to sets of all static fields

Points-to sets of all instance fields
[]:NewObj{<A: void m()>[0@L10] new C}.f -> [[]:NewObj{<A: void m()>[3@L11] new D}, []:NewObj{<A: void m()>[9@L13] new D}]
[]:NewObj{<A: void m()>[6@L12] new C}.f -> [[]:NewObj{<A: void m()>[3@L11] new D}, []:NewObj{<A: void m()>[9@L13] new D}]
[]:NewObj{<B: void m()>[0@L20] new C}.f -> [[]:NewObj{<B: void m()>[3@L21] new D}]

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

