Points-to sets of all variables
[]:<A: void <init>()>/%this -> [[]:NewObj{<StoreLoad: void main(java.lang.String[])>[0@L4] new A}]
[]:<B: void <init>()>/%this -> [[]:NewObj{<StoreLoad: void main(java.lang.String[])>[3@L5] new B}]
[]:<StoreLoad: void main(java.lang.String[])>/a1 -> [[]:NewObj{<StoreLoad: void main(java.lang.String[])>[0@L4] new A}]
[]:<StoreLoad: void main(java.lang.String[])>/a2 -> [[]:NewObj{<StoreLoad: void main(java.lang.String[])>[0@L4] new A}]
[]:<StoreLoad: void main(java.lang.String[])>/args -> [[]:EntryPointObj{alloc=MethodParam{<StoreLoad: void main(java.lang.String[])>/0},type=java.lang.String[] in <StoreLoad: void main(java.lang.String[])>}]
[]:<StoreLoad: void main(java.lang.String[])>/b1 -> [[]:NewObj{<StoreLoad: void main(java.lang.String[])>[3@L5] new B}]
[]:<StoreLoad: void main(java.lang.String[])>/b2 -> [[]:NewObj{<StoreLoad: void main(java.lang.String[])>[3@L5] new B}]
[]:<StoreLoad: void main(java.lang.String[])>/temp$0 -> [[]:NewObj{<StoreLoad: void main(java.lang.String[])>[0@L4] new A}]
[]:<StoreLoad: void main(java.lang.String[])>/temp$1 -> [[]:NewObj{<StoreLoad: void main(java.lang.String[])>[3@L5] new B}]

Points-to sets of all static fields

Points-to sets of all instance fields
[]:NewObj{<StoreLoad: void main(java.lang.String[])>[0@L4] new A}.f -> [[]:NewObj{<StoreLoad: void main(java.lang.String[])>[3@L5] new B}]

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

