Points-to sets of all variables
[]:<LinkedQueue: boolean isEmpty()>/%this -> [[]:NewObj{<LinkedQueue: void main(java.lang.String[])>[0@L55] new LinkedQueue}]
[]:<LinkedQueue: boolean isEmpty()>/temp$0 -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:<LinkedQueue: java.lang.String dequeue()>/%this -> [[]:NewObj{<LinkedQueue: void main(java.lang.String[])>[0@L55] new LinkedQueue}]
[]:<LinkedQueue: java.lang.String dequeue()>/item -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<LinkedQueue: void main(java.lang.String[])>[3@L56] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}, []:TaintObj{alloc=<LinkedQueue: void main(java.lang.String[])>[5@L57] temp$2 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[]:<LinkedQueue: java.lang.String dequeue()>/temp$1 -> []
[]:<LinkedQueue: java.lang.String dequeue()>/temp$2 -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:<LinkedQueue: java.lang.String dequeue()>/temp$3 -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:<LinkedQueue: java.lang.String dequeue()>/temp$4 -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:<LinkedQueue: java.lang.String dequeue()>/temp$8 -> []
[]:<LinkedQueue: void <init>()>/%this -> [[]:NewObj{<LinkedQueue: void main(java.lang.String[])>[0@L55] new LinkedQueue}]
[]:<LinkedQueue: void <init>()>/temp$0 -> []
[]:<LinkedQueue: void <init>()>/temp$1 -> []
[]:<LinkedQueue: void enqueue(java.lang.String)>/%this -> [[]:NewObj{<LinkedQueue: void main(java.lang.String[])>[0@L55] new LinkedQueue}]
[]:<LinkedQueue: void enqueue(java.lang.String)>/item -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<LinkedQueue: void main(java.lang.String[])>[3@L56] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}, []:TaintObj{alloc=<LinkedQueue: void main(java.lang.String[])>[5@L57] temp$2 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[]:<LinkedQueue: void enqueue(java.lang.String)>/oldlast -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:<LinkedQueue: void enqueue(java.lang.String)>/temp$0 -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:<LinkedQueue: void enqueue(java.lang.String)>/temp$1 -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:<LinkedQueue: void enqueue(java.lang.String)>/temp$2 -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:<LinkedQueue: void enqueue(java.lang.String)>/temp$3 -> []
[]:<LinkedQueue: void enqueue(java.lang.String)>/temp$5 -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:<LinkedQueue: void enqueue(java.lang.String)>/temp$6 -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:<LinkedQueue: void main(java.lang.String[])>/args -> [[]:EntryPointObj{alloc=MethodParam{<LinkedQueue: void main(java.lang.String[])>/0},type=java.lang.String[] in <LinkedQueue: void main(java.lang.String[])>}]
[]:<LinkedQueue: void main(java.lang.String[])>/queue -> [[]:NewObj{<LinkedQueue: void main(java.lang.String[])>[0@L55] new LinkedQueue}]
[]:<LinkedQueue: void main(java.lang.String[])>/temp$0 -> [[]:NewObj{<LinkedQueue: void main(java.lang.String[])>[0@L55] new LinkedQueue}]
[]:<LinkedQueue: void main(java.lang.String[])>/temp$1 -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<LinkedQueue: void main(java.lang.String[])>[3@L56] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[]:<LinkedQueue: void main(java.lang.String[])>/temp$2 -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<LinkedQueue: void main(java.lang.String[])>[5@L57] temp$2 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[]:<LinkedQueue: void main(java.lang.String[])>/temp$3 -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<LinkedQueue: void main(java.lang.String[])>[3@L56] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}, []:TaintObj{alloc=<LinkedQueue: void main(java.lang.String[])>[5@L57] temp$2 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[]:<Node: void <init>()>/%this -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:<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=<LinkedQueue: void main(java.lang.String[])>[3@L56] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}, []:TaintObj{alloc=<LinkedQueue: void main(java.lang.String[])>[5@L57] temp$2 = invokestatic SourceSink.source()/result,type=java.lang.String}]

Points-to sets of all static fields

Points-to sets of all instance fields
[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}.item -> [[]:MergedObj{<Merged java.lang.String>}, []:TaintObj{alloc=<LinkedQueue: void main(java.lang.String[])>[3@L56] temp$1 = invokestatic SourceSink.source()/result,type=java.lang.String}, []:TaintObj{alloc=<LinkedQueue: void main(java.lang.String[])>[5@L57] temp$2 = invokestatic SourceSink.source()/result,type=java.lang.String}]
[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}.next -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:NewObj{<LinkedQueue: void main(java.lang.String[])>[0@L55] new LinkedQueue}.first -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]
[]:NewObj{<LinkedQueue: void main(java.lang.String[])>[0@L55] new LinkedQueue}.last -> [[]:NewObj{<LinkedQueue: void enqueue(java.lang.String)>[1@L33] new Node}]

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

Detected 2 taint flow(s):
TaintFlow{<LinkedQueue: void main(java.lang.String[])>[3@L56] temp$1 = invokestatic SourceSink.source()/result -> <LinkedQueue: void main(java.lang.String[])>[8@L58] invokestatic SourceSink.sink(temp$3)/0}
TaintFlow{<LinkedQueue: void main(java.lang.String[])>[5@L57] temp$2 = invokestatic SourceSink.source()/result -> <LinkedQueue: void main(java.lang.String[])>[8@L58] invokestatic SourceSink.sink(temp$3)/0}

