Points-to sets of all variables
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: java.lang.String get(int)>/%this -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: java.lang.String get(int)>/temp$0 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: java.lang.String get(int)>/temp$2 -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<TaintInList: void main(java.lang.String[])>[3@L5] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void <init>()>/%this -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void <init>()>/temp$0 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void add(java.lang.String)>/%this -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void add(java.lang.String)>/s -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<TaintInList: void main(java.lang.String[])>[3@L5] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void add(java.lang.String)>/temp$2 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void ensureCapacity(int)>/%this -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void ensureCapacity(int)>/temp$0 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void ensureCapacity(int)>/temp$11 -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<TaintInList: void main(java.lang.String[])>[3@L5] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void ensureCapacity(int)>/temp$2 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void ensureCapacity(int)>/temp$5 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void ensureCapacity(int)>/temp$9 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:<StringList: void ensureCapacity(int)>/tmp -> [[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: java.lang.String get(int)>/%this -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: java.lang.String get(int)>/temp$0 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: java.lang.String get(int)>/temp$2 -> [[]:MergedObj{<Merged java.lang.String>}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void <init>()>/%this -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void <init>()>/temp$0 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void add(java.lang.String)>/%this -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void add(java.lang.String)>/s -> [[]:MergedObj{<Merged java.lang.String>}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void add(java.lang.String)>/temp$2 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void ensureCapacity(int)>/%this -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void ensureCapacity(int)>/temp$0 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void ensureCapacity(int)>/temp$11 -> [[]:MergedObj{<Merged java.lang.String>}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void ensureCapacity(int)>/temp$2 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void ensureCapacity(int)>/temp$5 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void ensureCapacity(int)>/temp$9 -> [[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:<StringList: void ensureCapacity(int)>/tmp -> [[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[]:<SourceSink: java.lang.String source()>/temp$0 -> [[]:MergedObj{<Merged java.lang.String>}]
[]:<SourceSink: void sink(java.lang.String)>/s -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<TaintInList: void main(java.lang.String[])>[3@L5] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[]:<TaintInList: void main(java.lang.String[])>/args -> [[]:EntryPointObj{alloc=MethodParam{<TaintInList: void main(java.lang.String[])>/0},type=java.lang.String[] in <TaintInList: void main(java.lang.String[])>}]
[]:<TaintInList: void main(java.lang.String[])>/l1 -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]
[]:<TaintInList: void main(java.lang.String[])>/l2 -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]
[]:<TaintInList: void main(java.lang.String[])>/s1 -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<TaintInList: void main(java.lang.String[])>[3@L5] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[]:<TaintInList: void main(java.lang.String[])>/s2 -> [[]:MergedObj{<Merged java.lang.String>}]
[]:<TaintInList: void main(java.lang.String[])>/temp$0 -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]
[]:<TaintInList: void main(java.lang.String[])>/temp$1 -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<TaintInList: void main(java.lang.String[])>[3@L5] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[]:<TaintInList: void main(java.lang.String[])>/temp$2 -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<TaintInList: void main(java.lang.String[])>[3@L5] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[]:<TaintInList: void main(java.lang.String[])>/temp$3 -> [[]:NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]
[]:<TaintInList: void main(java.lang.String[])>/temp$4 -> [[]:MergedObj{<Merged java.lang.String>}]
[]:<TaintInList: void main(java.lang.String[])>/temp$5 -> [[]:MergedObj{<Merged java.lang.String>}]

Points-to sets of all static fields

Points-to sets of all instance fields
[]:NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}.elements -> [[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]
[]:NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}.elements -> [[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}, [NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}]

Points-to sets of all array indexes
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}[*] -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<TaintInList: void main(java.lang.String[])>[3@L5] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[NewObj{<TaintInList: void main(java.lang.String[])>[0@L4] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}[*] -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<TaintInList: void main(java.lang.String[])>[3@L5] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void <init>()>[2@L16] newarray java.lang.String[%intconst0]}[*] -> [[]:MergedObj{<Merged java.lang.String>}]
[NewObj{<TaintInList: void main(java.lang.String[])>[9@L9] new StringList}]:NewObj{<StringList: void ensureCapacity(int)>[9@L29] newarray java.lang.String[temp$4]}[*] -> [[]:MergedObj{<Merged java.lang.String>}]
[]:EntryPointObj{alloc=MethodParam{<TaintInList: void main(java.lang.String[])>/0},type=java.lang.String[] in <TaintInList: void main(java.lang.String[])>}[*] -> [[]:EntryPointObj{alloc=MethodParam{<TaintInList: void main(java.lang.String[])>/0}[*],type=java.lang.String in <TaintInList: void main(java.lang.String[])>}]

Detected 1 taint flow(s):
TaintFlow{<TaintInList: void main(java.lang.String[])>[3@L5] temp$1 = invokestatic SourceSink.source()/result -> <TaintInList: void main(java.lang.String[])>[8@L7] invokestatic SourceSink.sink(s1)/0}

