|
| 1 | +Points-to sets of all variables |
| 2 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[0@L3] new A}]:<A: void <init>()>/%this -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[0@L3] new A}] |
| 3 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[3@L4] new A}]:<A: void <init>()>/%this -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[3@L4] new A}] |
| 4 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:<Container: A getObj(int)>/%this -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}] |
| 5 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:<Container: A getObj(int)>/temp$0 -> [[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}, []:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 6 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:<Container: A getObj(int)>/temp$2 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[0@L3] new A}] |
| 7 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:<Container: void <init>()>/%this -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}] |
| 8 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:<Container: void <init>()>/temp$0 -> [[]:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 9 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:<Container: void setObj(int,A)>/%this -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}] |
| 10 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:<Container: void setObj(int,A)>/a -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[0@L3] new A}] |
| 11 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:<Container: void setObj(int,A)>/temp$0 -> [[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}, []:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 12 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:<Container: void setObj(int,A)>/temp$1 -> [[]:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 13 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:<Container: void setObj(int,A)>/temp$3 -> [[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}] |
| 14 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:<Container: void setObj(int,A)>/temp$4 -> [[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}, []:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 15 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:<Container: A getObj(int)>/%this -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}] |
| 16 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:<Container: A getObj(int)>/temp$0 -> [[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}, []:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 17 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:<Container: A getObj(int)>/temp$2 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[3@L4] new A}] |
| 18 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:<Container: void <init>()>/%this -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}] |
| 19 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:<Container: void <init>()>/temp$0 -> [[]:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 20 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:<Container: void setObj(int,A)>/%this -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}] |
| 21 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:<Container: void setObj(int,A)>/a -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[3@L4] new A}] |
| 22 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:<Container: void setObj(int,A)>/temp$0 -> [[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}, []:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 23 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:<Container: void setObj(int,A)>/temp$1 -> [[]:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 24 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:<Container: void setObj(int,A)>/temp$3 -> [[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}] |
| 25 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:<Container: void setObj(int,A)>/temp$4 -> [[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}, []:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 26 | +[]:<Container: void <clinit>()>/temp$0 -> [[]:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 27 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/args -> [[]:EntryPointObj{alloc=MethodParam{<ZeroLengthArray: void main(java.lang.String[])>/0},type=java.lang.String[] in <ZeroLengthArray: void main(java.lang.String[])>}] |
| 28 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/ct1 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}] |
| 29 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/ct2 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}] |
| 30 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/o1 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[0@L3] new A}] |
| 31 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/o2 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[3@L4] new A}] |
| 32 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/res1 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[0@L3] new A}] |
| 33 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/res2 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[3@L4] new A}] |
| 34 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/temp$0 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[0@L3] new A}] |
| 35 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/temp$1 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[3@L4] new A}] |
| 36 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/temp$2 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}] |
| 37 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/temp$3 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}] |
| 38 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/temp$4 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[0@L3] new A}] |
| 39 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/temp$5 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[3@L4] new A}] |
| 40 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/temp$6 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[20@L12] newarray java.lang.Object[%intconst1]}] |
| 41 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/temp$7 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[25@L13] newarray java.lang.Object[%intconst2]}] |
| 42 | +[]:<ZeroLengthArray: void main(java.lang.String[])>/temp$8 -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[28@L14] newarray java.lang.Object[%intconst2]}] |
| 43 | + |
| 44 | +Points-to sets of all static fields |
| 45 | +<Container: A[] EMPTY> -> [[]:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 46 | + |
| 47 | +Points-to sets of all instance fields |
| 48 | +[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}.data -> [[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}, []:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 49 | +[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}.data -> [[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}, []:ZeroLengthArray{alloc=<Merged zero-length A[]>,type=A[]}] |
| 50 | + |
| 51 | +Points-to sets of all array indexes |
| 52 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[6@L5] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}[*] -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[0@L3] new A}] |
| 53 | +[NewObj{<ZeroLengthArray: void main(java.lang.String[])>[9@L6] new Container}]:NewObj{<Container: void setObj(int,A)>[6@L30] newarray A[temp$2]}[*] -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[3@L4] new A}] |
| 54 | +[]:EntryPointObj{alloc=MethodParam{<ZeroLengthArray: void main(java.lang.String[])>/0},type=java.lang.String[] in <ZeroLengthArray: void main(java.lang.String[])>}[*] -> [[]:EntryPointObj{alloc=MethodParam{<ZeroLengthArray: void main(java.lang.String[])>/0}[*],type=java.lang.String in <ZeroLengthArray: void main(java.lang.String[])>}] |
| 55 | +[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[20@L12] newarray java.lang.Object[%intconst1]}[*] -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[0@L3] new A}, []:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[3@L4] new A}] |
| 56 | +[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[25@L13] newarray java.lang.Object[%intconst2]}[*] -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[0@L3] new A}] |
| 57 | +[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[28@L14] newarray java.lang.Object[%intconst2]}[*] -> [[]:NewObj{<ZeroLengthArray: void main(java.lang.String[])>[3@L4] new A}] |
| 58 | + |
0 commit comments