Points-to sets of all variables
[]:<A: void <clinit>()>/temp$0 -> [[]:NewObj{<A: void <clinit>()>[0@L28] new java.lang.Object}]
[]:<A: void <init>()>/%this -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[0@L11] new A}]
[]:<C: void <clinit>()>/temp$0 -> [[]:NewObj{<C: void <clinit>()>[0@L40] new java.lang.Object}]
[]:<C: void <init>()>/%this -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[4@L13] new D}]
[]:<Clinit: void <clinit>()>/temp$0 -> [[]:NewObj{<Clinit: void <clinit>()>[0@L7] new java.lang.Object}]
[]:<Clinit: void main(java.lang.String[])>/args -> [[]:EntryPointObj{alloc=MethodParam{<Clinit: void main(java.lang.String[])>/0},type=java.lang.String[] in <Clinit: void main(java.lang.String[])>}]
[]:<Clinit: void main(java.lang.String[])>/barr -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[3@L12] newmultiarray B[%intconst0][%intconst0][%intconst0]}]
[]:<Clinit: void main(java.lang.String[])>/o -> []
[]:<Clinit: void main(java.lang.String[])>/temp$0 -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[0@L11] new A}]
[]:<Clinit: void main(java.lang.String[])>/temp$1 -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[4@L13] new D}]
[]:<Clinit: void main(java.lang.String[])>/temp$2 -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[6@L14] new java.lang.Object}]
[]:<Clinit: void main(java.lang.String[])>/temp$3 -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[11@L18] new I}]
[]:<Clinit: void main(java.lang.String[])>/temp$4 -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[13@L22] new L}]
[]:<D: void <init>()>/%this -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[4@L13] new D}]
[]:<E: void <clinit>()>/temp$0 -> [[]:NewObj{<E: void <clinit>()>[0@L51] new java.lang.Object}]
[]:<F: void <clinit>()>/temp$0 -> [[]:NewObj{<F: void <clinit>()>[0@L59] new java.lang.Object}]
[]:<H: void <clinit>()>/temp$0 -> [[]:NewObj{<H: void <clinit>()>[0@L71] new java.lang.Object}]
[]:<I: void <clinit>()>/temp$0 -> [[]:NewObj{<I: void <clinit>()>[0@L78] new J}]
[]:<I: void <init>()>/%this -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[11@L18] new I}, []:NewObj{<J: void <clinit>()>[0@L82] new I}]
[]:<J: void <clinit>()>/temp$0 -> [[]:NewObj{<J: void <clinit>()>[0@L82] new I}]
[]:<J: void <init>()>/%this -> [[]:NewObj{<I: void <clinit>()>[0@L78] new J}]
[]:<L: void <init>()>/%this -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[13@L22] new L}]

Points-to sets of all static fields
<E: java.lang.Object f> -> [[]:NewObj{<Clinit: void main(java.lang.String[])>[6@L14] new java.lang.Object}]
<F: java.lang.Object f> -> []
<I: J f> -> [[]:NewObj{<I: void <clinit>()>[0@L78] new J}]
<J: I f> -> [[]:NewObj{<J: void <clinit>()>[0@L82] new I}]

Points-to sets of all instance fields

Points-to sets of all array indexes
[]:EntryPointObj{alloc=MethodParam{<Clinit: void main(java.lang.String[])>/0},type=java.lang.String[] in <Clinit: void main(java.lang.String[])>}[*] -> [[]:EntryPointObj{alloc=MethodParam{<Clinit: void main(java.lang.String[])>/0}[*],type=java.lang.String in <Clinit: void main(java.lang.String[])>}]
[]:MultiArrayObj{alloc=barr = newmultiarray B[%intconst0][%intconst0][%intconst0],type=B[][] in <Clinit: void main(java.lang.String[])>}[*] -> [[]:MultiArrayObj{alloc=barr = newmultiarray B[%intconst0][%intconst0][%intconst0],type=B[] in <Clinit: void main(java.lang.String[])>}]
[]:NewObj{<Clinit: void main(java.lang.String[])>[3@L12] newmultiarray B[%intconst0][%intconst0][%intconst0]}[*] -> [[]:MultiArrayObj{alloc=barr = newmultiarray B[%intconst0][%intconst0][%intconst0],type=B[][] in <Clinit: void main(java.lang.String[])>}]

