From e1d4166e3cbe88afaf078a92c4e9274d46af3bb7 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 7 May 2019 10:41:29 +0200 Subject: [PATCH] C#: Data flow through `this` parameter --- .../dataflow/internal/DataFlowPrivate.qll | 118 +++- .../dataflow/internal/DataFlowPublic.qll | 1 + .../dataflow/global/DataFlowEdges.expected | 515 +++++++++++++++++ .../dataflow/global/GetAnOutNode.expected | 2 + .../global/TaintTrackingEdges.expected | 541 ++++++++++++++++++ .../library-tests/dataflow/global/This.cs | 33 ++ .../dataflow/local/DataFlowStep.expected | 33 ++ .../dataflow/local/TaintTrackingStep.expected | 33 ++ 8 files changed, 1274 insertions(+), 2 deletions(-) create mode 100644 csharp/ql/test/library-tests/dataflow/global/This.cs diff --git a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index 99ba968c339..dd5c65dff21 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -11,6 +11,61 @@ private import semmle.code.csharp.dispatch.Dispatch private import semmle.code.csharp.frameworks.EntityFramework private import semmle.code.csharp.frameworks.NHibernate +/** Calculation of the relative order in which `this` references are read. */ +private module ThisFlow { + class BasicBlock = ControlFlow::BasicBlock; + + /** Holds if `n` is a `this` access at control flow node `cfn`. */ + private predicate thisAccess(Node n, ControlFlow::Node cfn) { + n.(InstanceParameterNode).getCallable() = cfn.(ControlFlow::Nodes::EntryNode).getCallable() + or + n.asExprAtNode(cfn) = any(Expr e | e instanceof ThisAccess or e instanceof BaseAccess) + } + + private predicate thisAccess(Node n, BasicBlock bb, int i) { thisAccess(n, bb.getNode(i)) } + + private predicate thisRank(Node n, BasicBlock bb, int rankix) { + exists(int i | + i = rank[rankix](int j | thisAccess(_, bb, j)) and + thisAccess(n, bb, i) + ) + } + + private int lastRank(BasicBlock bb) { result = max(int rankix | thisRank(_, bb, rankix)) } + + private predicate blockPrecedesThisAccess(BasicBlock bb) { thisAccess(_, bb.getASuccessor*(), _) } + + private predicate thisAccessBlockReaches(BasicBlock bb1, BasicBlock bb2) { + thisAccess(_, bb1, _) and bb2 = bb1.getASuccessor() + or + exists(BasicBlock mid | + thisAccessBlockReaches(bb1, mid) and + bb2 = mid.getASuccessor() and + not thisAccess(_, mid, _) and + blockPrecedesThisAccess(bb2) + ) + } + + private predicate thisAccessBlockStep(BasicBlock bb1, BasicBlock bb2) { + thisAccessBlockReaches(bb1, bb2) and + thisAccess(_, bb2, _) + } + + /** Holds if `n1` and `n2` are control-flow adjacent references to `this`. */ + predicate adjacentThisRefs(Node n1, Node n2) { + exists(int rankix, BasicBlock bb | + thisRank(n1, bb, rankix) and + thisRank(n2, bb, rankix + 1) + ) + or + exists(BasicBlock bb1, BasicBlock bb2 | + thisRank(n1, bb1, lastRank(bb1)) and + thisAccessBlockStep(bb1, bb2) and + thisRank(n2, bb2, 1) + ) + } +} + /** Provides predicates related to local data flow. */ module LocalFlow { class LocalExprStepConfiguration extends ControlFlowReachabilityConfiguration { @@ -183,6 +238,7 @@ module DataFlowPrivateCached { TExprNode(ControlFlow::Nodes::ElementNode cfn) { cfn.getElement() instanceof Expr } or TCilExprNode(CIL::Expr e) { e.getImplementation() instanceof CIL::BestImplementation } or TSsaDefinitionNode(Ssa::Definition def) or + TInstanceParameterNode(Callable c) { c.hasBody() and not c.(Modifiable).isStatic() } or TCilParameterNode(CIL::Parameter p) { p.getMethod().hasBody() } or TTaintedParameterNode(Parameter p) { p.getCallable().hasBody() } or TTaintedReturnNode(ControlFlow::Nodes::ElementNode cfn) { @@ -198,7 +254,8 @@ module DataFlowPrivateCached { ) { cfn.getElement() instanceof DelegateArgumentToLibraryCallable and any(DelegateArgumentConfiguration x).hasExprPath(_, cfn, _, call) - } + } or + TMallocNode(ControlFlow::Nodes::ElementNode cfn) { cfn.getElement() instanceof ObjectCreation } cached DotNet::Callable getEnclosingCallable(Node node) { @@ -206,6 +263,8 @@ module DataFlowPrivateCached { or result = node.(SsaDefinitionNode).getDefinition().getEnclosingCallable() or + node = TInstanceParameterNode(result) + or exists(CIL::Parameter p | node = TCilParameterNode(p) | result = p.getCallable()) or result = getEnclosingCallable(node.(TaintedParameterNode).getUnderlyingNode()) @@ -219,6 +278,10 @@ module DataFlowPrivateCached { exists(ControlFlow::Nodes::ElementNode cfn | node = TImplicitDelegateOutNode(cfn, _) | result = cfn.getEnclosingCallable() ) + or + exists(ControlFlow::Nodes::ElementNode cfn | node = TMallocNode(cfn) | + result = cfn.getEnclosingCallable() + ) } cached @@ -227,6 +290,8 @@ module DataFlowPrivateCached { or result = node.(SsaDefinitionNode).getDefinition().getSourceVariable().getType() or + exists(Callable c | node = TInstanceParameterNode(c) | result = c.getDeclaringType()) + or exists(CIL::Parameter p | node = TCilParameterNode(p) | result = p.getType()) or result = getType(node.(TaintedParameterNode).getUnderlyingNode()) @@ -238,6 +303,10 @@ module DataFlowPrivateCached { exists(ControlFlow::Nodes::ElementNode cfn | node = TImplicitDelegateOutNode(cfn, _) | result = cfn.getElement().(Expr).getType() ) + or + exists(ControlFlow::Nodes::ElementNode cfn | node = TMallocNode(cfn) | + result = cfn.getElement().(Expr).getType() + ) } cached @@ -246,6 +315,8 @@ module DataFlowPrivateCached { or result = node.(SsaDefinitionNode).getDefinition().getLocation() or + exists(Callable c | node = TInstanceParameterNode(c) | result = c.getLocation()) + or exists(CIL::Parameter p | node = TCilParameterNode(p) | result = p.getLocation()) or result = getLocation(node.(TaintedParameterNode).getUnderlyingNode()) @@ -259,6 +330,10 @@ module DataFlowPrivateCached { exists(ControlFlow::Nodes::ElementNode cfn | node = TImplicitDelegateOutNode(cfn, _) | result = cfn.getLocation() ) + or + exists(ControlFlow::Nodes::ElementNode cfn | node = TMallocNode(cfn) | + result = cfn.getLocation() + ) } cached @@ -275,6 +350,8 @@ module DataFlowPrivateCached { result = def.toString() ) or + node = TInstanceParameterNode(_) and result = "this" + or exists(CIL::Parameter p | node = TCilParameterNode(p) | result = p.toString()) or result = toString(node.(TaintedParameterNode).getUnderlyingNode()) @@ -288,6 +365,8 @@ module DataFlowPrivateCached { exists(ControlFlow::Nodes::ElementNode cfn | node = TImplicitDelegateOutNode(cfn, _) | result = "[output] " + cfn ) + or + node = TMallocNode(_) and result = "malloc" } /** @@ -313,6 +392,8 @@ module DataFlowPrivateCached { nodeTo = TExprNode(cfnTo) ) or + ThisFlow::adjacentThisRefs(nodeFrom, nodeTo) + or // Flow into SSA pseudo definition exists(Ssa::Definition def, Ssa::PseudoDefinition pseudo | LocalFlow::localFlowSsaInput(nodeFrom, def) @@ -390,6 +471,18 @@ private module ParameterNodes { override predicate isParameterOf(DotNet::Callable c, int i) { c.getParameter(i) = parameter } } + /** An implicit instance (`this`) parameter. */ + class InstanceParameterNode extends ParameterNode, TInstanceParameterNode { + private Callable callable; + + InstanceParameterNode() { this = TInstanceParameterNode(callable) } + + /** Gets the callable containing this implicit instance parameter. */ + Callable getCallable() { result = callable } + + override predicate isParameterOf(DotNet::Callable c, int pos) { callable = c and pos = -1 } + } + /** * A tainted parameter. Tainted parameters are a mere implementation detail, used * to restrict tainted flow into callables to just taint tracking (just like flow @@ -539,7 +632,11 @@ private module ArgumentNodes { } private DotNet::Expr getArgument(DotNet::Expr call, int i) { - call = any(DispatchCall dc | result = dc.getArgument(i)).getCall() + call = any(DispatchCall dc | + result = dc.getArgument(i) + or + result = dc.getQualifier() and i = -1 and not dc.getAStaticTarget().(Modifiable).isStatic() + ).getCall() or result = call.(DelegateCall).getArgument(i) or @@ -650,6 +747,23 @@ private module ArgumentNodes { ) } } + + /** + * A node that corresponds to the value of an object creation (`new C()`) before + * the constructor has run. + */ + class MallocNode extends ArgumentNode, TMallocNode { + private ControlFlow::Nodes::ElementNode cfn; + + MallocNode() { this = TMallocNode(cfn) } + + override predicate argumentOf(DataFlowCall call, int pos) { + call = TNonDelegateCall(cfn, _) and + pos = -1 + } + + override ControlFlow::Node getControlFlowNode() { result = cfn } + } } import ArgumentNodes diff --git a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll index 1851ea82b69..aaf7822cd6e 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowPublic.qll @@ -82,6 +82,7 @@ class ParameterNode extends Node { explicitParameterNode(this, _) or this.(SsaDefinitionNode).getDefinition() instanceof ImplicitCapturedParameterNodeImpl::SsaCapturedEntryDefinition or + this = C::TInstanceParameterNode(_) or this = C::TCilParameterNode(_) or this = C::TTaintedParameterNode(_) } diff --git a/csharp/ql/test/library-tests/dataflow/global/DataFlowEdges.expected b/csharp/ql/test/library-tests/dataflow/global/DataFlowEdges.expected index 05fc38cda74..5368c846378 100644 --- a/csharp/ql/test/library-tests/dataflow/global/DataFlowEdges.expected +++ b/csharp/ql/test/library-tests/dataflow/global/DataFlowEdges.expected @@ -1,3 +1,4 @@ +| Capture.cs:7:10:7:11 | this | Capture.cs:7:10:7:11 | this | | Capture.cs:7:20:7:26 | tainted | Capture.cs:7:20:7:26 | tainted | | Capture.cs:7:20:7:26 | tainted | Capture.cs:7:20:7:26 | tainted | | Capture.cs:7:20:7:26 | tainted | Capture.cs:14:9:14:20 | [implicit argument] tainted | @@ -174,6 +175,7 @@ | Capture.cs:46:23:46:30 | access to local variable nonSink0 | Capture.cs:46:23:46:30 | access to local variable nonSink0 | | Capture.cs:49:9:49:27 | access to local function CaptureIn2NotCalled | Capture.cs:49:9:49:27 | access to local function CaptureIn2NotCalled | | Capture.cs:49:9:49:29 | call to local function CaptureIn2NotCalled | Capture.cs:49:9:49:29 | call to local function CaptureIn2NotCalled | +| Capture.cs:52:10:52:12 | this | Capture.cs:52:10:52:12 | this | | Capture.cs:54:16:54:26 | SSA def(sink30) | Capture.cs:54:16:54:26 | SSA def(sink30) | | Capture.cs:54:16:54:26 | String sink30 = ... | Capture.cs:54:16:54:26 | String sink30 = ... | | Capture.cs:54:25:54:26 | "" | Capture.cs:54:16:54:26 | SSA def(sink30) | @@ -281,6 +283,7 @@ | Capture.cs:97:9:97:30 | call to local function CaptureOut2NotCalled | Capture.cs:97:9:97:30 | call to local function CaptureOut2NotCalled | | Capture.cs:98:9:98:23 | call to method Check | Capture.cs:98:9:98:23 | call to method Check | | Capture.cs:98:15:98:22 | access to local variable nonSink0 | Capture.cs:98:15:98:22 | access to local variable nonSink0 | +| Capture.cs:101:10:101:16 | this | Capture.cs:101:10:101:16 | this | | Capture.cs:101:25:101:31 | tainted | Capture.cs:101:25:101:31 | tainted | | Capture.cs:101:25:101:31 | tainted | Capture.cs:101:25:101:31 | tainted | | Capture.cs:101:25:101:31 | tainted | Capture.cs:108:9:108:25 | [implicit argument] tainted | @@ -582,6 +585,35 @@ | Capture.cs:172:23:172:24 | "" | Capture.cs:172:23:172:24 | "" | | Capture.cs:173:9:173:23 | call to method Check | Capture.cs:173:9:173:23 | call to method Check | | Capture.cs:173:15:173:22 | access to local variable nonSink0 | Capture.cs:173:15:173:22 | access to local variable nonSink0 | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:14:17:14:17 | this | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:64:9:64:18 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:64:9:64:18 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:67:9:67:21 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:67:9:67:21 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:197:20:197:33 | this access | | GlobalDataFlow.cs:17:9:17:40 | ... = ... | GlobalDataFlow.cs:17:9:17:40 | ... = ... | | GlobalDataFlow.cs:17:9:17:40 | SSA def(DataFlow.Test.SinkField0) | GlobalDataFlow.cs:17:9:17:40 | SSA def(DataFlow.Test.SinkField0) | | GlobalDataFlow.cs:17:9:17:40 | SSA def(DataFlow.Test.SinkField0) | GlobalDataFlow.cs:18:15:18:29 | access to field SinkField0 | @@ -1071,6 +1103,34 @@ | GlobalDataFlow.cs:61:78:61:90 | "not tainted" | GlobalDataFlow.cs:368:52:368:52 | x | | GlobalDataFlow.cs:64:9:64:18 | access to property InProperty | GlobalDataFlow.cs:64:9:64:18 | access to property InProperty | | GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:64:9:64:18 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:67:9:67:21 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:67:9:67:21 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:399:9:399:11 | this | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:399:9:399:11 | this | | GlobalDataFlow.cs:64:9:64:39 | ... = ... | GlobalDataFlow.cs:64:9:64:39 | ... = ... | | GlobalDataFlow.cs:64:22:64:39 | access to property SinkProperty0 | GlobalDataFlow.cs:64:22:64:39 | access to property SinkProperty0 | | GlobalDataFlow.cs:64:22:64:39 | access to property SinkProperty0 | GlobalDataFlow.cs:70:28:70:45 | access to property SinkProperty0 | @@ -1079,6 +1139,32 @@ | GlobalDataFlow.cs:64:22:64:39 | access to property SinkProperty0 | GlobalDataFlow.cs:399:9:399:11 | value | | GlobalDataFlow.cs:67:9:67:21 | access to property NonInProperty | GlobalDataFlow.cs:67:9:67:21 | access to property NonInProperty | | GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:67:9:67:21 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:405:9:405:11 | this | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:405:9:405:11 | this | | GlobalDataFlow.cs:67:9:67:37 | ... = ... | GlobalDataFlow.cs:67:9:67:37 | ... = ... | | GlobalDataFlow.cs:67:25:67:37 | "not tainted" | GlobalDataFlow.cs:67:25:67:37 | "not tainted" | | GlobalDataFlow.cs:67:25:67:37 | "not tainted" | GlobalDataFlow.cs:405:9:405:11 | value | @@ -2050,11 +2136,57 @@ | GlobalDataFlow.cs:149:21:149:25 | call to method Out | GlobalDataFlow.cs:150:15:150:19 | access to local variable sink6 | | GlobalDataFlow.cs:149:21:149:25 | call to method Out | GlobalDataFlow.cs:150:15:150:19 | access to local variable sink6 | | GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:311:12:311:14 | this | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:311:12:311:14 | this | | GlobalDataFlow.cs:150:9:150:20 | call to method Check | GlobalDataFlow.cs:150:9:150:20 | call to method Check | | GlobalDataFlow.cs:150:15:150:19 | access to local variable sink6 | GlobalDataFlow.cs:150:15:150:19 | access to local variable sink6 | | GlobalDataFlow.cs:151:16:151:20 | String sink7 | GlobalDataFlow.cs:151:16:151:20 | String sink7 | | GlobalDataFlow.cs:152:9:152:25 | call to method OutOut | GlobalDataFlow.cs:152:9:152:25 | call to method OutOut | | GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:316:10:316:15 | this | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:316:10:316:15 | this | | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | GlobalDataFlow.cs:153:15:153:19 | access to local variable sink7 | | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | GlobalDataFlow.cs:153:15:153:19 | access to local variable sink7 | @@ -2071,6 +2203,26 @@ | GlobalDataFlow.cs:154:21:154:22 | "" | GlobalDataFlow.cs:155:20:155:24 | access to local variable sink8 | | GlobalDataFlow.cs:155:9:155:25 | call to method OutRef | GlobalDataFlow.cs:155:9:155:25 | call to method OutRef | | GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:321:10:321:15 | this | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:321:10:321:15 | this | | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | GlobalDataFlow.cs:156:15:156:19 | access to local variable sink8 | | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | GlobalDataFlow.cs:156:15:156:19 | access to local variable sink8 | @@ -2087,6 +2239,24 @@ | GlobalDataFlow.cs:157:22:157:31 | call to method OutYield | GlobalDataFlow.cs:158:15:158:20 | access to local variable sink12 | | GlobalDataFlow.cs:157:22:157:31 | call to method OutYield | GlobalDataFlow.cs:158:15:158:20 | access to local variable sink12 | | GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:326:25:326:32 | this | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:326:25:326:32 | this | | GlobalDataFlow.cs:158:9:158:21 | call to method Check | GlobalDataFlow.cs:158:9:158:21 | call to method Check | | GlobalDataFlow.cs:158:15:158:20 | access to local variable sink12 | GlobalDataFlow.cs:158:15:158:20 | access to local variable sink12 | | GlobalDataFlow.cs:159:13:159:43 | SSA def(sink23) | GlobalDataFlow.cs:159:13:159:43 | SSA def(sink23) | @@ -2115,10 +2285,40 @@ | GlobalDataFlow.cs:163:20:163:27 | call to method NonOut | GlobalDataFlow.cs:164:15:164:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:163:20:163:27 | call to method NonOut | GlobalDataFlow.cs:164:15:164:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:333:12:333:17 | this | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:333:12:333:17 | this | | GlobalDataFlow.cs:164:9:164:23 | call to method Check | GlobalDataFlow.cs:164:9:164:23 | call to method Check | | GlobalDataFlow.cs:164:15:164:22 | access to local variable nonSink0 | GlobalDataFlow.cs:164:15:164:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:165:9:165:31 | call to method NonOutOut | GlobalDataFlow.cs:165:9:165:31 | call to method NonOutOut | | GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:338:10:338:18 | this | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:338:10:338:18 | this | | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | GlobalDataFlow.cs:166:15:166:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | GlobalDataFlow.cs:166:15:166:22 | access to local variable nonSink0 | @@ -2130,6 +2330,18 @@ | GlobalDataFlow.cs:166:15:166:22 | access to local variable nonSink0 | GlobalDataFlow.cs:167:23:167:30 | access to local variable nonSink0 | | GlobalDataFlow.cs:167:9:167:31 | call to method NonOutRef | GlobalDataFlow.cs:167:9:167:31 | call to method NonOutRef | | GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:343:10:343:18 | this | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:343:10:343:18 | this | | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | GlobalDataFlow.cs:168:15:168:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | GlobalDataFlow.cs:168:15:168:22 | access to local variable nonSink0 | @@ -2144,6 +2356,16 @@ | GlobalDataFlow.cs:169:9:169:40 | SSA def(nonSink0) | GlobalDataFlow.cs:171:36:171:43 | access to local variable nonSink0 | | GlobalDataFlow.cs:169:20:169:32 | call to method NonOutYield | GlobalDataFlow.cs:169:20:169:32 | call to method NonOutYield | | GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:348:25:348:35 | this | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:348:25:348:35 | this | | GlobalDataFlow.cs:169:20:169:40 | call to method First | GlobalDataFlow.cs:169:9:169:40 | SSA def(nonSink0) | | GlobalDataFlow.cs:169:20:169:40 | call to method First | GlobalDataFlow.cs:169:9:169:40 | SSA def(nonSink0) | | GlobalDataFlow.cs:169:20:169:40 | call to method First | GlobalDataFlow.cs:169:20:169:40 | call to method First | @@ -2223,6 +2445,7 @@ | GlobalDataFlow.cs:185:13:185:48 | SSA def(sink10) | GlobalDataFlow.cs:186:15:186:20 | access to local variable sink10 | | GlobalDataFlow.cs:185:13:185:48 | SSA def(sink10) | GlobalDataFlow.cs:186:15:186:20 | access to local variable sink10 | | GlobalDataFlow.cs:185:13:185:48 | String sink10 = ... | GlobalDataFlow.cs:185:13:185:48 | String sink10 = ... | +| GlobalDataFlow.cs:185:22:185:42 | malloc | GlobalDataFlow.cs:185:22:185:42 | malloc | | GlobalDataFlow.cs:185:22:185:42 | object creation of type Lazy | GlobalDataFlow.cs:185:13:185:48 | SSA def(sink10) | | GlobalDataFlow.cs:185:22:185:42 | object creation of type Lazy | GlobalDataFlow.cs:185:13:185:48 | SSA def(sink10) | | GlobalDataFlow.cs:185:22:185:42 | object creation of type Lazy | GlobalDataFlow.cs:185:22:185:42 | object creation of type Lazy | @@ -2247,12 +2470,19 @@ | GlobalDataFlow.cs:185:39:185:41 | access to method Out | GlobalDataFlow.cs:185:39:185:41 | access to method Out | | GlobalDataFlow.cs:185:39:185:41 | delegate creation of type Func | GlobalDataFlow.cs:185:39:185:41 | delegate creation of type Func | | GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | | GlobalDataFlow.cs:186:9:186:21 | call to method Check | GlobalDataFlow.cs:186:9:186:21 | call to method Check | | GlobalDataFlow.cs:186:15:186:20 | access to local variable sink10 | GlobalDataFlow.cs:186:15:186:20 | access to local variable sink10 | | GlobalDataFlow.cs:189:9:189:49 | ... = ... | GlobalDataFlow.cs:189:9:189:49 | ... = ... | | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | GlobalDataFlow.cs:190:15:190:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | GlobalDataFlow.cs:190:15:190:22 | access to local variable nonSink0 | +| GlobalDataFlow.cs:189:20:189:43 | malloc | GlobalDataFlow.cs:189:20:189:43 | malloc | | GlobalDataFlow.cs:189:20:189:43 | object creation of type Lazy | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | | GlobalDataFlow.cs:189:20:189:43 | object creation of type Lazy | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | | GlobalDataFlow.cs:189:20:189:43 | object creation of type Lazy | GlobalDataFlow.cs:189:20:189:43 | object creation of type Lazy | @@ -2277,6 +2507,10 @@ | GlobalDataFlow.cs:189:37:189:42 | access to method NonOut | GlobalDataFlow.cs:189:37:189:42 | access to method NonOut | | GlobalDataFlow.cs:189:37:189:42 | delegate creation of type Func | GlobalDataFlow.cs:189:37:189:42 | delegate creation of type Func | | GlobalDataFlow.cs:189:37:189:42 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:189:37:189:42 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:189:37:189:42 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:189:37:189:42 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:189:37:189:42 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | | GlobalDataFlow.cs:190:9:190:23 | call to method Check | GlobalDataFlow.cs:190:9:190:23 | call to method Check | | GlobalDataFlow.cs:190:15:190:22 | access to local variable nonSink0 | GlobalDataFlow.cs:190:15:190:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:193:13:193:32 | SSA def(sink19) | GlobalDataFlow.cs:193:13:193:32 | SSA def(sink19) | @@ -2290,6 +2524,10 @@ | GlobalDataFlow.cs:193:22:193:32 | access to property OutProperty | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink19 | | GlobalDataFlow.cs:193:22:193:32 | access to property OutProperty | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink19 | | GlobalDataFlow.cs:193:22:193:32 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:193:22:193:32 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:193:22:193:32 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:193:22:193:32 | this access | GlobalDataFlow.cs:410:9:410:11 | this | +| GlobalDataFlow.cs:193:22:193:32 | this access | GlobalDataFlow.cs:410:9:410:11 | this | | GlobalDataFlow.cs:194:9:194:21 | call to method Check | GlobalDataFlow.cs:194:9:194:21 | call to method Check | | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink19 | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink19 | | GlobalDataFlow.cs:197:9:197:33 | ... = ... | GlobalDataFlow.cs:197:9:197:33 | ... = ... | @@ -2303,8 +2541,11 @@ | GlobalDataFlow.cs:197:20:197:33 | access to property NonOutProperty | GlobalDataFlow.cs:198:15:198:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:197:20:197:33 | access to property NonOutProperty | GlobalDataFlow.cs:198:15:198:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:197:20:197:33 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:197:20:197:33 | this access | GlobalDataFlow.cs:415:9:415:11 | this | +| GlobalDataFlow.cs:197:20:197:33 | this access | GlobalDataFlow.cs:415:9:415:11 | this | | GlobalDataFlow.cs:198:9:198:23 | call to method Check | GlobalDataFlow.cs:198:9:198:23 | call to method Check | | GlobalDataFlow.cs:198:15:198:22 | access to local variable nonSink0 | GlobalDataFlow.cs:198:15:198:22 | access to local variable nonSink0 | +| GlobalDataFlow.cs:201:17:201:18 | this | GlobalDataFlow.cs:201:17:201:18 | this | | GlobalDataFlow.cs:201:39:201:45 | tainted | GlobalDataFlow.cs:201:39:201:45 | tainted | | GlobalDataFlow.cs:201:39:201:45 | tainted | GlobalDataFlow.cs:201:39:201:45 | tainted | | GlobalDataFlow.cs:201:39:201:45 | tainted | GlobalDataFlow.cs:206:22:206:28 | access to parameter tainted | @@ -2870,11 +3111,13 @@ | GlobalDataFlow.cs:308:16:308:27 | access to parameter nonSinkParam | GlobalDataFlow.cs:215:76:215:92 | call to method NonReturnCheck | | GlobalDataFlow.cs:308:16:308:27 | access to parameter nonSinkParam | GlobalDataFlow.cs:215:76:215:92 | call to method NonReturnCheck | | GlobalDataFlow.cs:308:16:308:27 | access to parameter nonSinkParam | GlobalDataFlow.cs:308:16:308:27 | access to parameter nonSinkParam | +| GlobalDataFlow.cs:311:12:311:14 | this | GlobalDataFlow.cs:311:12:311:14 | this | | GlobalDataFlow.cs:313:16:313:29 | "taint source" | GlobalDataFlow.cs:149:21:149:25 | call to method Out | | GlobalDataFlow.cs:313:16:313:29 | "taint source" | GlobalDataFlow.cs:149:21:149:25 | call to method Out | | GlobalDataFlow.cs:313:16:313:29 | "taint source" | GlobalDataFlow.cs:185:39:185:41 | [output] delegate creation of type Func | | GlobalDataFlow.cs:313:16:313:29 | "taint source" | GlobalDataFlow.cs:185:39:185:41 | [output] delegate creation of type Func | | GlobalDataFlow.cs:313:16:313:29 | "taint source" | GlobalDataFlow.cs:313:16:313:29 | "taint source" | +| GlobalDataFlow.cs:316:10:316:15 | this | GlobalDataFlow.cs:316:10:316:15 | this | | GlobalDataFlow.cs:318:9:318:26 | ... = ... | GlobalDataFlow.cs:318:9:318:26 | ... = ... | | GlobalDataFlow.cs:318:9:318:26 | SSA def(x) | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | | GlobalDataFlow.cs:318:9:318:26 | SSA def(x) | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | @@ -2882,6 +3125,7 @@ | GlobalDataFlow.cs:318:13:318:26 | "taint source" | GlobalDataFlow.cs:318:9:318:26 | SSA def(x) | | GlobalDataFlow.cs:318:13:318:26 | "taint source" | GlobalDataFlow.cs:318:9:318:26 | SSA def(x) | | GlobalDataFlow.cs:318:13:318:26 | "taint source" | GlobalDataFlow.cs:318:13:318:26 | "taint source" | +| GlobalDataFlow.cs:321:10:321:15 | this | GlobalDataFlow.cs:321:10:321:15 | this | | GlobalDataFlow.cs:323:9:323:26 | ... = ... | GlobalDataFlow.cs:323:9:323:26 | ... = ... | | GlobalDataFlow.cs:323:9:323:26 | SSA def(x) | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | | GlobalDataFlow.cs:323:9:323:26 | SSA def(x) | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | @@ -2889,6 +3133,7 @@ | GlobalDataFlow.cs:323:13:323:26 | "taint source" | GlobalDataFlow.cs:323:9:323:26 | SSA def(x) | | GlobalDataFlow.cs:323:13:323:26 | "taint source" | GlobalDataFlow.cs:323:9:323:26 | SSA def(x) | | GlobalDataFlow.cs:323:13:323:26 | "taint source" | GlobalDataFlow.cs:323:13:323:26 | "taint source" | +| GlobalDataFlow.cs:326:25:326:32 | this | GlobalDataFlow.cs:326:25:326:32 | this | | GlobalDataFlow.cs:328:22:328:23 | "" | GlobalDataFlow.cs:157:22:157:31 | call to method OutYield | | GlobalDataFlow.cs:328:22:328:23 | "" | GlobalDataFlow.cs:157:22:157:31 | call to method OutYield | | GlobalDataFlow.cs:328:22:328:23 | "" | GlobalDataFlow.cs:328:22:328:23 | "" | @@ -2901,11 +3146,13 @@ | GlobalDataFlow.cs:330:22:330:23 | "" | GlobalDataFlow.cs:157:22:157:31 | call to method OutYield | | GlobalDataFlow.cs:330:22:330:23 | "" | GlobalDataFlow.cs:330:22:330:23 | "" | | GlobalDataFlow.cs:330:22:330:23 | "" | GlobalDataFlow.cs:330:22:330:23 | "" | +| GlobalDataFlow.cs:333:12:333:17 | this | GlobalDataFlow.cs:333:12:333:17 | this | | GlobalDataFlow.cs:335:16:335:17 | "" | GlobalDataFlow.cs:163:20:163:27 | call to method NonOut | | GlobalDataFlow.cs:335:16:335:17 | "" | GlobalDataFlow.cs:163:20:163:27 | call to method NonOut | | GlobalDataFlow.cs:335:16:335:17 | "" | GlobalDataFlow.cs:189:37:189:42 | [output] delegate creation of type Func | | GlobalDataFlow.cs:335:16:335:17 | "" | GlobalDataFlow.cs:189:37:189:42 | [output] delegate creation of type Func | | GlobalDataFlow.cs:335:16:335:17 | "" | GlobalDataFlow.cs:335:16:335:17 | "" | +| GlobalDataFlow.cs:338:10:338:18 | this | GlobalDataFlow.cs:338:10:338:18 | this | | GlobalDataFlow.cs:340:9:340:14 | ... = ... | GlobalDataFlow.cs:340:9:340:14 | ... = ... | | GlobalDataFlow.cs:340:9:340:14 | SSA def(x) | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | | GlobalDataFlow.cs:340:9:340:14 | SSA def(x) | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | @@ -2913,6 +3160,7 @@ | GlobalDataFlow.cs:340:13:340:14 | "" | GlobalDataFlow.cs:340:9:340:14 | SSA def(x) | | GlobalDataFlow.cs:340:13:340:14 | "" | GlobalDataFlow.cs:340:9:340:14 | SSA def(x) | | GlobalDataFlow.cs:340:13:340:14 | "" | GlobalDataFlow.cs:340:13:340:14 | "" | +| GlobalDataFlow.cs:343:10:343:18 | this | GlobalDataFlow.cs:343:10:343:18 | this | | GlobalDataFlow.cs:345:9:345:14 | ... = ... | GlobalDataFlow.cs:345:9:345:14 | ... = ... | | GlobalDataFlow.cs:345:9:345:14 | SSA def(x) | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | | GlobalDataFlow.cs:345:9:345:14 | SSA def(x) | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | @@ -2920,6 +3168,7 @@ | GlobalDataFlow.cs:345:13:345:14 | "" | GlobalDataFlow.cs:345:9:345:14 | SSA def(x) | | GlobalDataFlow.cs:345:13:345:14 | "" | GlobalDataFlow.cs:345:9:345:14 | SSA def(x) | | GlobalDataFlow.cs:345:13:345:14 | "" | GlobalDataFlow.cs:345:13:345:14 | "" | +| GlobalDataFlow.cs:348:25:348:35 | this | GlobalDataFlow.cs:348:25:348:35 | this | | GlobalDataFlow.cs:350:22:350:23 | "" | GlobalDataFlow.cs:169:20:169:32 | call to method NonOutYield | | GlobalDataFlow.cs:350:22:350:23 | "" | GlobalDataFlow.cs:169:20:169:32 | call to method NonOutYield | | GlobalDataFlow.cs:350:22:350:23 | "" | GlobalDataFlow.cs:350:22:350:23 | "" | @@ -3182,7 +3431,9 @@ | GlobalDataFlow.cs:393:62:393:63 | "" | GlobalDataFlow.cs:32:15:32:35 | access to property NonSinkProperty1 | | GlobalDataFlow.cs:393:62:393:63 | "" | GlobalDataFlow.cs:32:15:32:35 | access to property NonSinkProperty1 | | GlobalDataFlow.cs:393:62:393:63 | "" | GlobalDataFlow.cs:393:62:393:63 | "" | +| GlobalDataFlow.cs:398:9:398:11 | this | GlobalDataFlow.cs:398:9:398:11 | this | | GlobalDataFlow.cs:398:22:398:23 | "" | GlobalDataFlow.cs:398:22:398:23 | "" | +| GlobalDataFlow.cs:399:9:399:11 | this | GlobalDataFlow.cs:399:9:399:11 | this | | GlobalDataFlow.cs:399:9:399:11 | value | GlobalDataFlow.cs:399:9:399:11 | value | | GlobalDataFlow.cs:399:9:399:11 | value | GlobalDataFlow.cs:399:9:399:11 | value | | GlobalDataFlow.cs:399:9:399:11 | value | GlobalDataFlow.cs:399:19:399:32 | SSA def(sink20) | @@ -3214,7 +3465,9 @@ | GlobalDataFlow.cs:399:28:399:32 | access to parameter value | GlobalDataFlow.cs:399:41:399:46 | access to local variable sink20 | | GlobalDataFlow.cs:399:35:399:47 | call to method Check | GlobalDataFlow.cs:399:35:399:47 | call to method Check | | GlobalDataFlow.cs:399:41:399:46 | access to local variable sink20 | GlobalDataFlow.cs:399:41:399:46 | access to local variable sink20 | +| GlobalDataFlow.cs:404:9:404:11 | this | GlobalDataFlow.cs:404:9:404:11 | this | | GlobalDataFlow.cs:404:22:404:23 | "" | GlobalDataFlow.cs:404:22:404:23 | "" | +| GlobalDataFlow.cs:405:9:405:11 | this | GlobalDataFlow.cs:405:9:405:11 | this | | GlobalDataFlow.cs:405:9:405:11 | value | GlobalDataFlow.cs:405:9:405:11 | value | | GlobalDataFlow.cs:405:9:405:11 | value | GlobalDataFlow.cs:405:9:405:11 | value | | GlobalDataFlow.cs:405:9:405:11 | value | GlobalDataFlow.cs:405:19:405:34 | SSA def(nonSink0) | @@ -3246,9 +3499,11 @@ | GlobalDataFlow.cs:405:30:405:34 | access to parameter value | GlobalDataFlow.cs:405:43:405:50 | access to local variable nonSink0 | | GlobalDataFlow.cs:405:37:405:51 | call to method Check | GlobalDataFlow.cs:405:37:405:51 | call to method Check | | GlobalDataFlow.cs:405:43:405:50 | access to local variable nonSink0 | GlobalDataFlow.cs:405:43:405:50 | access to local variable nonSink0 | +| GlobalDataFlow.cs:410:9:410:11 | this | GlobalDataFlow.cs:410:9:410:11 | this | | GlobalDataFlow.cs:410:22:410:35 | "taint source" | GlobalDataFlow.cs:193:22:193:32 | access to property OutProperty | | GlobalDataFlow.cs:410:22:410:35 | "taint source" | GlobalDataFlow.cs:193:22:193:32 | access to property OutProperty | | GlobalDataFlow.cs:410:22:410:35 | "taint source" | GlobalDataFlow.cs:410:22:410:35 | "taint source" | +| GlobalDataFlow.cs:415:9:415:11 | this | GlobalDataFlow.cs:415:9:415:11 | this | | GlobalDataFlow.cs:415:22:415:23 | "" | GlobalDataFlow.cs:197:20:197:33 | access to property NonOutProperty | | GlobalDataFlow.cs:415:22:415:23 | "" | GlobalDataFlow.cs:197:20:197:33 | access to property NonOutProperty | | GlobalDataFlow.cs:415:22:415:23 | "" | GlobalDataFlow.cs:415:22:415:23 | "" | @@ -3314,6 +3569,7 @@ | GlobalDataFlow.cs:426:46:426:46 | access to local variable x | GlobalDataFlow.cs:426:44:426:47 | delegate call | | GlobalDataFlow.cs:426:46:426:46 | access to local variable x | GlobalDataFlow.cs:426:44:426:47 | delegate call | | GlobalDataFlow.cs:426:46:426:46 | access to local variable x | GlobalDataFlow.cs:426:46:426:46 | access to local variable x | +| Splitting.cs:3:10:3:11 | this | Splitting.cs:3:10:3:11 | this | | Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | b | | Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | b | | Splitting.cs:3:18:3:18 | b | Splitting.cs:5:13:5:13 | access to parameter b | @@ -3403,6 +3659,7 @@ | Splitting.cs:18:24:18:24 | s | Splitting.cs:20:29:20:29 | access to parameter s | | Splitting.cs:18:24:18:24 | s | Splitting.cs:20:29:20:29 | access to parameter s | | Splitting.cs:18:24:18:24 | s | Splitting.cs:20:29:20:29 | access to parameter s | +| Splitting.cs:20:9:20:11 | this | Splitting.cs:20:9:20:11 | this | | Splitting.cs:20:22:20:30 | call to method Return | Splitting.cs:20:22:20:30 | call to method Return | | Splitting.cs:20:22:20:30 | call to method Return | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | | Splitting.cs:20:22:20:30 | call to method Return | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | @@ -3417,6 +3674,7 @@ | Splitting.cs:20:29:20:29 | access to parameter s | Splitting.cs:20:22:20:30 | call to method Return | | Splitting.cs:20:29:20:29 | access to parameter s | Splitting.cs:20:22:20:30 | call to method Return | | Splitting.cs:20:29:20:29 | access to parameter s | Splitting.cs:20:29:20:29 | access to parameter s | +| Splitting.cs:21:9:21:11 | this | Splitting.cs:21:9:21:11 | this | | Splitting.cs:21:9:21:11 | value | Splitting.cs:21:9:21:11 | value | | Splitting.cs:21:9:21:11 | value | Splitting.cs:21:9:21:11 | value | | Splitting.cs:21:9:21:11 | value | Splitting.cs:21:28:21:32 | access to parameter value | @@ -3434,6 +3692,23 @@ | Splitting.cs:21:28:21:32 | access to parameter value | Splitting.cs:21:21:21:33 | call to method Return | | Splitting.cs:21:28:21:32 | access to parameter value | Splitting.cs:21:21:21:33 | call to method Return | | Splitting.cs:21:28:21:32 | access to parameter value | Splitting.cs:21:28:21:32 | access to parameter value | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:24:10:24:11 | this | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:17:29:24 | [b (line 24): false] SSA def(d) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:17:29:24 | [b (line 24): false] SSA def(d) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:17:29:24 | [b (line 24): true] SSA def(d) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:17:29:24 | [b (line 24): true] SSA def(d) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:21:29:24 | [b (line 24): false] this access | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:21:29:24 | [b (line 24): false] this access | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:21:29:24 | [b (line 24): true] this access | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:21:29:24 | [b (line 24): true] this access | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | | Splitting.cs:24:18:24:18 | b | Splitting.cs:24:18:24:18 | b | | Splitting.cs:24:18:24:18 | b | Splitting.cs:24:18:24:18 | b | | Splitting.cs:24:18:24:18 | b | Splitting.cs:26:13:26:13 | access to parameter b | @@ -3492,9 +3767,13 @@ | Splitting.cs:29:21:29:24 | [b (line 24): true] this access | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | | Splitting.cs:29:21:29:24 | [b (line 24): true] this access | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | | Splitting.cs:29:21:29:24 | [b (line 24): true] this access | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | +| Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:21:9:21:11 | this | +| Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:21:9:21:11 | this | | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | +| Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | Splitting.cs:21:9:21:11 | this | +| Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | Splitting.cs:21:9:21:11 | this | | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | @@ -3524,7 +3803,11 @@ | Splitting.cs:31:13:31:26 | [b (line 24): true] SSA def(x) | Splitting.cs:34:19:34:19 | access to local variable x | | Splitting.cs:31:13:31:26 | [b (line 24): true] SSA def(x) | Splitting.cs:34:19:34:19 | access to local variable x | | Splitting.cs:31:13:31:26 | [b (line 24): true] dynamic x = ... | Splitting.cs:31:13:31:26 | [b (line 24): true] dynamic x = ... | +| Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | Splitting.cs:20:9:20:11 | this | +| Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | Splitting.cs:20:9:20:11 | this | | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | +| Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | Splitting.cs:20:9:20:11 | this | +| Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | Splitting.cs:20:9:20:11 | this | | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | Splitting.cs:31:13:31:26 | [b (line 24): false] SSA def(x) | | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | Splitting.cs:31:13:31:26 | [b (line 24): false] SSA def(x) | @@ -3558,3 +3841,235 @@ | Splitting.cs:33:13:33:13 | [b (line 24): true] access to parameter b | Splitting.cs:33:13:33:13 | [b (line 24): true] access to parameter b | | Splitting.cs:34:13:34:20 | dynamic call to method Check | Splitting.cs:34:13:34:20 | dynamic call to method Check | | Splitting.cs:34:19:34:19 | access to local variable x | Splitting.cs:34:19:34:19 | access to local variable x | +| This.cs:7:5:7:8 | this | This.cs:7:5:7:8 | this | +| This.cs:9:20:9:20 | this | This.cs:9:20:9:20 | this | +| This.cs:9:20:9:20 | this | This.cs:11:13:11:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:11:13:11:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:11:13:11:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:11:13:11:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:9:12:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:9:12:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:9:12:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:9:12:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:16:12:19 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:16:12:19 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:16:12:19 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:16:12:19 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:9:13:15 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:9:13:15 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:9:13:15 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:9:13:15 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:11:13:14 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:11:13:14 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:11:13:14 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:11:13:14 | this access | +| This.cs:9:20:9:20 | this | This.cs:15:9:15:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:15:9:15:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:15:9:15:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:15:9:15:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:16:9:16:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:16:9:16:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:16:9:16:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:16:9:16:16 | this access | +| This.cs:9:27:9:31 | other | This.cs:9:27:9:31 | other | +| This.cs:9:27:9:31 | other | This.cs:9:27:9:31 | other | +| This.cs:9:27:9:31 | other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:11:9:11:17 | call to method Use | This.cs:11:9:11:17 | call to method Use | +| This.cs:11:13:11:16 | this access | This.cs:11:13:11:16 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:9:12:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:9:12:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:9:12:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:9:12:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:16:12:19 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:16:12:19 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:16:12:19 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:16:12:19 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:9:13:15 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:9:13:15 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:9:13:15 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:9:13:15 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:11:13:14 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:11:13:14 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:11:13:14 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:11:13:14 | this access | +| This.cs:11:13:11:16 | this access | This.cs:15:9:15:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:15:9:15:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:15:9:15:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:15:9:15:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:16:9:16:16 | this access | +| This.cs:11:13:11:16 | this access | This.cs:16:9:16:16 | this access | +| This.cs:11:13:11:16 | this access | This.cs:16:9:16:16 | this access | +| This.cs:11:13:11:16 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:9:12:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:12:9:12:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:12:9:12:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:12:9:12:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:12:9:12:12 | this access | This.cs:12:9:12:12 | this access | +| This.cs:12:9:12:12 | this access | This.cs:12:16:12:19 | this access | +| This.cs:12:9:12:12 | this access | This.cs:12:16:12:19 | this access | +| This.cs:12:9:12:12 | this access | This.cs:12:16:12:19 | this access | +| This.cs:12:9:12:12 | this access | This.cs:12:16:12:19 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:9:12:12 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:9:12:12 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:9:12:12 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:9:12:12 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:9:12:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:9:12:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:9:12:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:9:12:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:9:12:20 | call to method M | This.cs:12:9:12:20 | call to method M | +| This.cs:12:16:12:19 | this access | This.cs:9:27:9:31 | other | +| This.cs:12:16:12:19 | this access | This.cs:9:27:9:31 | other | +| This.cs:12:16:12:19 | this access | This.cs:9:27:9:31 | other | +| This.cs:12:16:12:19 | this access | This.cs:9:27:9:31 | other | +| This.cs:12:16:12:19 | this access | This.cs:12:16:12:19 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:16:12:19 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:16:12:19 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:16:12:19 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:16:12:19 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:16:12:19 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:16:12:19 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:16:12:19 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:16:12:19 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:9:13:15 | call to method M | This.cs:13:9:13:15 | call to method M | +| This.cs:13:9:13:15 | this access | This.cs:9:20:9:20 | this | +| This.cs:13:9:13:15 | this access | This.cs:9:20:9:20 | this | +| This.cs:13:9:13:15 | this access | This.cs:9:20:9:20 | this | +| This.cs:13:9:13:15 | this access | This.cs:9:20:9:20 | this | +| This.cs:13:9:13:15 | this access | This.cs:13:9:13:15 | this access | +| This.cs:13:9:13:15 | this access | This.cs:13:11:13:14 | this access | +| This.cs:13:9:13:15 | this access | This.cs:13:11:13:14 | this access | +| This.cs:13:9:13:15 | this access | This.cs:13:11:13:14 | this access | +| This.cs:13:9:13:15 | this access | This.cs:13:11:13:14 | this access | +| This.cs:13:9:13:15 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:9:13:15 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:9:13:15 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:9:13:15 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:9:13:15 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:9:13:15 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:9:13:15 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:9:13:15 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:11:13:14 | this access | This.cs:9:27:9:31 | other | +| This.cs:13:11:13:14 | this access | This.cs:9:27:9:31 | other | +| This.cs:13:11:13:14 | this access | This.cs:9:27:9:31 | other | +| This.cs:13:11:13:14 | this access | This.cs:9:27:9:31 | other | +| This.cs:13:11:13:14 | this access | This.cs:13:11:13:14 | this access | +| This.cs:13:11:13:14 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:11:13:14 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:11:13:14 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:11:13:14 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:11:13:14 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:11:13:14 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:11:13:14 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:11:13:14 | this access | This.cs:16:9:16:16 | this access | +| This.cs:14:9:14:18 | call to method Use | This.cs:14:9:14:18 | call to method Use | +| This.cs:14:13:14:17 | access to parameter other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:15:9:15:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:15:9:15:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:15:9:15:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:15:9:15:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:15:9:15:12 | this access | This.cs:15:9:15:12 | this access | +| This.cs:15:9:15:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:15:9:15:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:15:9:15:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:15:9:15:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:15:9:15:21 | call to method M | This.cs:15:9:15:21 | call to method M | +| This.cs:15:16:15:20 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:16:9:16:16 | call to method M | This.cs:16:9:16:16 | call to method M | +| This.cs:16:9:16:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:16:9:16:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:16:9:16:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:16:9:16:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:16:9:16:16 | this access | This.cs:16:9:16:16 | this access | +| This.cs:16:11:16:15 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:16:11:16:15 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:16:11:16:15 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:16:11:16:15 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:16:11:16:15 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:17:9:17:18 | malloc | This.cs:7:5:7:8 | this | +| This.cs:17:9:17:18 | malloc | This.cs:7:5:7:8 | this | +| This.cs:17:9:17:18 | malloc | This.cs:17:9:17:18 | malloc | +| This.cs:17:9:17:18 | object creation of type This | This.cs:17:9:17:18 | object creation of type This | +| This.cs:22:9:22:11 | this | This.cs:22:9:22:11 | this | +| This.cs:24:14:24:15 | this | This.cs:24:14:24:15 | this | +| This.cs:24:14:24:15 | this | This.cs:26:13:26:16 | this access | +| This.cs:24:14:24:15 | this | This.cs:26:13:26:16 | this access | +| This.cs:24:14:24:15 | this | This.cs:26:20:26:23 | this access | +| This.cs:24:14:24:15 | this | This.cs:26:20:26:23 | this access | +| This.cs:24:14:24:15 | this | This.cs:27:13:27:16 | base access | +| This.cs:24:14:24:15 | this | This.cs:27:13:27:16 | base access | +| This.cs:24:14:24:15 | this | This.cs:27:20:27:23 | this access | +| This.cs:24:14:24:15 | this | This.cs:27:20:27:23 | this access | +| This.cs:26:13:26:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:26:13:26:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:26:13:26:16 | this access | This.cs:26:13:26:16 | this access | +| This.cs:26:13:26:16 | this access | This.cs:26:20:26:23 | this access | +| This.cs:26:13:26:16 | this access | This.cs:26:20:26:23 | this access | +| This.cs:26:13:26:16 | this access | This.cs:27:13:27:16 | base access | +| This.cs:26:13:26:16 | this access | This.cs:27:13:27:16 | base access | +| This.cs:26:13:26:16 | this access | This.cs:27:20:27:23 | this access | +| This.cs:26:13:26:16 | this access | This.cs:27:20:27:23 | this access | +| This.cs:26:13:26:24 | call to method M | This.cs:26:13:26:24 | call to method M | +| This.cs:26:20:26:23 | this access | This.cs:9:27:9:31 | other | +| This.cs:26:20:26:23 | this access | This.cs:9:27:9:31 | other | +| This.cs:26:20:26:23 | this access | This.cs:26:20:26:23 | this access | +| This.cs:26:20:26:23 | this access | This.cs:27:13:27:16 | base access | +| This.cs:26:20:26:23 | this access | This.cs:27:13:27:16 | base access | +| This.cs:26:20:26:23 | this access | This.cs:27:20:27:23 | this access | +| This.cs:26:20:26:23 | this access | This.cs:27:20:27:23 | this access | +| This.cs:27:13:27:16 | base access | This.cs:9:20:9:20 | this | +| This.cs:27:13:27:16 | base access | This.cs:9:20:9:20 | this | +| This.cs:27:13:27:16 | base access | This.cs:27:13:27:16 | base access | +| This.cs:27:13:27:16 | base access | This.cs:27:20:27:23 | this access | +| This.cs:27:13:27:16 | base access | This.cs:27:20:27:23 | this access | +| This.cs:27:13:27:24 | call to method M | This.cs:27:13:27:24 | call to method M | +| This.cs:27:20:27:23 | this access | This.cs:9:27:9:31 | other | +| This.cs:27:20:27:23 | this access | This.cs:9:27:9:31 | other | +| This.cs:27:20:27:23 | this access | This.cs:27:20:27:23 | this access | +| This.cs:28:13:28:21 | malloc | This.cs:22:9:22:11 | this | +| This.cs:28:13:28:21 | malloc | This.cs:22:9:22:11 | this | +| This.cs:28:13:28:21 | malloc | This.cs:28:13:28:21 | malloc | +| This.cs:28:13:28:21 | object creation of type Sub | This.cs:28:13:28:21 | object creation of type Sub | diff --git a/csharp/ql/test/library-tests/dataflow/global/GetAnOutNode.expected b/csharp/ql/test/library-tests/dataflow/global/GetAnOutNode.expected index 63a235d7328..bbd93bd25c3 100644 --- a/csharp/ql/test/library-tests/dataflow/global/GetAnOutNode.expected +++ b/csharp/ql/test/library-tests/dataflow/global/GetAnOutNode.expected @@ -184,3 +184,5 @@ | Splitting.cs:32:9:32:16 | [b (line 24): false] dynamic call to method Check | return | Splitting.cs:32:9:32:16 | [b (line 24): false] dynamic call to method Check | | Splitting.cs:32:9:32:16 | [b (line 24): true] dynamic call to method Check | return | Splitting.cs:32:9:32:16 | [b (line 24): true] dynamic call to method Check | | Splitting.cs:34:13:34:20 | dynamic call to method Check | return | Splitting.cs:34:13:34:20 | dynamic call to method Check | +| This.cs:17:9:17:18 | object creation of type This | return | This.cs:17:9:17:18 | object creation of type This | +| This.cs:28:13:28:21 | object creation of type Sub | return | This.cs:28:13:28:21 | object creation of type Sub | diff --git a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingEdges.expected b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingEdges.expected index b3057910458..418217a02f1 100644 --- a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingEdges.expected +++ b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingEdges.expected @@ -1,3 +1,4 @@ +| Capture.cs:7:10:7:11 | this | Capture.cs:7:10:7:11 | this | | Capture.cs:7:20:7:26 | tainted | Capture.cs:7:20:7:26 | tainted | | Capture.cs:7:20:7:26 | tainted | Capture.cs:7:20:7:26 | tainted | | Capture.cs:7:20:7:26 | tainted | Capture.cs:7:20:7:26 | tainted | @@ -202,6 +203,7 @@ | Capture.cs:46:23:46:30 | access to local variable nonSink0 | Capture.cs:46:23:46:30 | access to local variable nonSink0 | | Capture.cs:49:9:49:27 | access to local function CaptureIn2NotCalled | Capture.cs:49:9:49:27 | access to local function CaptureIn2NotCalled | | Capture.cs:49:9:49:29 | call to local function CaptureIn2NotCalled | Capture.cs:49:9:49:29 | call to local function CaptureIn2NotCalled | +| Capture.cs:52:10:52:12 | this | Capture.cs:52:10:52:12 | this | | Capture.cs:54:16:54:26 | SSA def(sink30) | Capture.cs:54:16:54:26 | SSA def(sink30) | | Capture.cs:54:16:54:26 | String sink30 = ... | Capture.cs:54:16:54:26 | String sink30 = ... | | Capture.cs:54:25:54:26 | "" | Capture.cs:54:16:54:26 | SSA def(sink30) | @@ -329,6 +331,7 @@ | Capture.cs:97:9:97:30 | call to local function CaptureOut2NotCalled | Capture.cs:97:9:97:30 | call to local function CaptureOut2NotCalled | | Capture.cs:98:9:98:23 | call to method Check | Capture.cs:98:9:98:23 | call to method Check | | Capture.cs:98:15:98:22 | access to local variable nonSink0 | Capture.cs:98:15:98:22 | access to local variable nonSink0 | +| Capture.cs:101:10:101:16 | this | Capture.cs:101:10:101:16 | this | | Capture.cs:101:25:101:31 | tainted | Capture.cs:101:25:101:31 | tainted | | Capture.cs:101:25:101:31 | tainted | Capture.cs:101:25:101:31 | tainted | | Capture.cs:101:25:101:31 | tainted | Capture.cs:101:25:101:31 | tainted | @@ -674,6 +677,35 @@ | Capture.cs:172:23:172:24 | "" | Capture.cs:172:23:172:24 | "" | | Capture.cs:173:9:173:23 | call to method Check | Capture.cs:173:9:173:23 | call to method Check | | Capture.cs:173:15:173:22 | access to local variable nonSink0 | Capture.cs:173:15:173:22 | access to local variable nonSink0 | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:14:17:14:17 | this | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:64:9:64:18 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:64:9:64:18 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:67:9:67:21 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:67:9:67:21 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:14:17:14:17 | this | GlobalDataFlow.cs:197:20:197:33 | this access | | GlobalDataFlow.cs:17:9:17:40 | ... = ... | GlobalDataFlow.cs:17:9:17:40 | ... = ... | | GlobalDataFlow.cs:17:9:17:40 | SSA def(DataFlow.Test.SinkField0) | GlobalDataFlow.cs:17:9:17:40 | SSA def(DataFlow.Test.SinkField0) | | GlobalDataFlow.cs:17:9:17:40 | SSA def(DataFlow.Test.SinkField0) | GlobalDataFlow.cs:18:15:18:29 | access to field SinkField0 | @@ -1235,6 +1267,34 @@ | GlobalDataFlow.cs:61:78:61:90 | "not tainted" | GlobalDataFlow.cs:368:52:368:52 | x | | GlobalDataFlow.cs:64:9:64:18 | access to property InProperty | GlobalDataFlow.cs:64:9:64:18 | access to property InProperty | | GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:64:9:64:18 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:67:9:67:21 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:67:9:67:21 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:399:9:399:11 | this | +| GlobalDataFlow.cs:64:9:64:18 | this access | GlobalDataFlow.cs:399:9:399:11 | this | | GlobalDataFlow.cs:64:9:64:39 | ... = ... | GlobalDataFlow.cs:64:9:64:39 | ... = ... | | GlobalDataFlow.cs:64:22:64:39 | access to property SinkProperty0 | GlobalDataFlow.cs:64:22:64:39 | access to property SinkProperty0 | | GlobalDataFlow.cs:64:22:64:39 | access to property SinkProperty0 | GlobalDataFlow.cs:70:28:70:45 | access to property SinkProperty0 | @@ -1243,6 +1303,32 @@ | GlobalDataFlow.cs:64:22:64:39 | access to property SinkProperty0 | GlobalDataFlow.cs:399:9:399:11 | value | | GlobalDataFlow.cs:67:9:67:21 | access to property NonInProperty | GlobalDataFlow.cs:67:9:67:21 | access to property NonInProperty | | GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:67:9:67:21 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:405:9:405:11 | this | +| GlobalDataFlow.cs:67:9:67:21 | this access | GlobalDataFlow.cs:405:9:405:11 | this | | GlobalDataFlow.cs:67:9:67:37 | ... = ... | GlobalDataFlow.cs:67:9:67:37 | ... = ... | | GlobalDataFlow.cs:67:25:67:37 | "not tainted" | GlobalDataFlow.cs:67:25:67:37 | "not tainted" | | GlobalDataFlow.cs:67:25:67:37 | "not tainted" | GlobalDataFlow.cs:405:9:405:11 | value | @@ -3012,11 +3098,57 @@ | GlobalDataFlow.cs:149:21:149:25 | call to method Out | GlobalDataFlow.cs:150:15:150:19 | access to local variable sink6 | | GlobalDataFlow.cs:149:21:149:25 | call to method Out | GlobalDataFlow.cs:150:15:150:19 | access to local variable sink6 | | GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:149:21:149:25 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:311:12:311:14 | this | +| GlobalDataFlow.cs:149:21:149:25 | this access | GlobalDataFlow.cs:311:12:311:14 | this | | GlobalDataFlow.cs:150:9:150:20 | call to method Check | GlobalDataFlow.cs:150:9:150:20 | call to method Check | | GlobalDataFlow.cs:150:15:150:19 | access to local variable sink6 | GlobalDataFlow.cs:150:15:150:19 | access to local variable sink6 | | GlobalDataFlow.cs:151:16:151:20 | String sink7 | GlobalDataFlow.cs:151:16:151:20 | String sink7 | | GlobalDataFlow.cs:152:9:152:25 | call to method OutOut | GlobalDataFlow.cs:152:9:152:25 | call to method OutOut | | GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:152:9:152:25 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:316:10:316:15 | this | +| GlobalDataFlow.cs:152:9:152:25 | this access | GlobalDataFlow.cs:316:10:316:15 | this | | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | GlobalDataFlow.cs:153:15:153:19 | access to local variable sink7 | | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | GlobalDataFlow.cs:153:15:153:19 | access to local variable sink7 | @@ -3033,6 +3165,26 @@ | GlobalDataFlow.cs:154:21:154:22 | "" | GlobalDataFlow.cs:155:20:155:24 | access to local variable sink8 | | GlobalDataFlow.cs:155:9:155:25 | call to method OutRef | GlobalDataFlow.cs:155:9:155:25 | call to method OutRef | | GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:155:9:155:25 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:321:10:321:15 | this | +| GlobalDataFlow.cs:155:9:155:25 | this access | GlobalDataFlow.cs:321:10:321:15 | this | | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | GlobalDataFlow.cs:156:15:156:19 | access to local variable sink8 | | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | GlobalDataFlow.cs:156:15:156:19 | access to local variable sink8 | @@ -3049,6 +3201,24 @@ | GlobalDataFlow.cs:157:22:157:31 | call to method OutYield | GlobalDataFlow.cs:158:15:158:20 | access to local variable sink12 | | GlobalDataFlow.cs:157:22:157:31 | call to method OutYield | GlobalDataFlow.cs:158:15:158:20 | access to local variable sink12 | | GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:157:22:157:31 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:326:25:326:32 | this | +| GlobalDataFlow.cs:157:22:157:31 | this access | GlobalDataFlow.cs:326:25:326:32 | this | | GlobalDataFlow.cs:158:9:158:21 | call to method Check | GlobalDataFlow.cs:158:9:158:21 | call to method Check | | GlobalDataFlow.cs:158:15:158:20 | access to local variable sink12 | GlobalDataFlow.cs:158:15:158:20 | access to local variable sink12 | | GlobalDataFlow.cs:159:13:159:43 | SSA def(sink23) | GlobalDataFlow.cs:159:13:159:43 | SSA def(sink23) | @@ -3077,10 +3247,40 @@ | GlobalDataFlow.cs:163:20:163:27 | call to method NonOut | GlobalDataFlow.cs:164:15:164:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:163:20:163:27 | call to method NonOut | GlobalDataFlow.cs:164:15:164:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:163:20:163:27 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:333:12:333:17 | this | +| GlobalDataFlow.cs:163:20:163:27 | this access | GlobalDataFlow.cs:333:12:333:17 | this | | GlobalDataFlow.cs:164:9:164:23 | call to method Check | GlobalDataFlow.cs:164:9:164:23 | call to method Check | | GlobalDataFlow.cs:164:15:164:22 | access to local variable nonSink0 | GlobalDataFlow.cs:164:15:164:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:165:9:165:31 | call to method NonOutOut | GlobalDataFlow.cs:165:9:165:31 | call to method NonOutOut | | GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:165:9:165:31 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:338:10:338:18 | this | +| GlobalDataFlow.cs:165:9:165:31 | this access | GlobalDataFlow.cs:338:10:338:18 | this | | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | GlobalDataFlow.cs:166:15:166:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | GlobalDataFlow.cs:166:15:166:22 | access to local variable nonSink0 | @@ -3092,6 +3292,18 @@ | GlobalDataFlow.cs:166:15:166:22 | access to local variable nonSink0 | GlobalDataFlow.cs:167:23:167:30 | access to local variable nonSink0 | | GlobalDataFlow.cs:167:9:167:31 | call to method NonOutRef | GlobalDataFlow.cs:167:9:167:31 | call to method NonOutRef | | GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:167:9:167:31 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:343:10:343:18 | this | +| GlobalDataFlow.cs:167:9:167:31 | this access | GlobalDataFlow.cs:343:10:343:18 | this | | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | GlobalDataFlow.cs:168:15:168:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | GlobalDataFlow.cs:168:15:168:22 | access to local variable nonSink0 | @@ -3114,6 +3326,16 @@ | GlobalDataFlow.cs:169:20:169:32 | call to method NonOutYield | GlobalDataFlow.cs:171:36:171:43 | access to local variable nonSink0 | | GlobalDataFlow.cs:169:20:169:32 | call to method NonOutYield | GlobalDataFlow.cs:171:36:171:43 | access to local variable nonSink0 | | GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:169:20:169:32 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:348:25:348:35 | this | +| GlobalDataFlow.cs:169:20:169:32 | this access | GlobalDataFlow.cs:348:25:348:35 | this | | GlobalDataFlow.cs:169:20:169:40 | call to method First | GlobalDataFlow.cs:169:9:169:40 | SSA def(nonSink0) | | GlobalDataFlow.cs:169:20:169:40 | call to method First | GlobalDataFlow.cs:169:9:169:40 | SSA def(nonSink0) | | GlobalDataFlow.cs:169:20:169:40 | call to method First | GlobalDataFlow.cs:169:20:169:40 | call to method First | @@ -3193,6 +3415,7 @@ | GlobalDataFlow.cs:185:13:185:48 | SSA def(sink10) | GlobalDataFlow.cs:186:15:186:20 | access to local variable sink10 | | GlobalDataFlow.cs:185:13:185:48 | SSA def(sink10) | GlobalDataFlow.cs:186:15:186:20 | access to local variable sink10 | | GlobalDataFlow.cs:185:13:185:48 | String sink10 = ... | GlobalDataFlow.cs:185:13:185:48 | String sink10 = ... | +| GlobalDataFlow.cs:185:22:185:42 | malloc | GlobalDataFlow.cs:185:22:185:42 | malloc | | GlobalDataFlow.cs:185:22:185:42 | object creation of type Lazy | GlobalDataFlow.cs:185:13:185:48 | SSA def(sink10) | | GlobalDataFlow.cs:185:22:185:42 | object creation of type Lazy | GlobalDataFlow.cs:185:13:185:48 | SSA def(sink10) | | GlobalDataFlow.cs:185:22:185:42 | object creation of type Lazy | GlobalDataFlow.cs:185:22:185:42 | object creation of type Lazy | @@ -3217,12 +3440,19 @@ | GlobalDataFlow.cs:185:39:185:41 | access to method Out | GlobalDataFlow.cs:185:39:185:41 | access to method Out | | GlobalDataFlow.cs:185:39:185:41 | delegate creation of type Func | GlobalDataFlow.cs:185:39:185:41 | delegate creation of type Func | | GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:185:39:185:41 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:185:39:185:41 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | | GlobalDataFlow.cs:186:9:186:21 | call to method Check | GlobalDataFlow.cs:186:9:186:21 | call to method Check | | GlobalDataFlow.cs:186:15:186:20 | access to local variable sink10 | GlobalDataFlow.cs:186:15:186:20 | access to local variable sink10 | | GlobalDataFlow.cs:189:9:189:49 | ... = ... | GlobalDataFlow.cs:189:9:189:49 | ... = ... | | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | GlobalDataFlow.cs:190:15:190:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | GlobalDataFlow.cs:190:15:190:22 | access to local variable nonSink0 | +| GlobalDataFlow.cs:189:20:189:43 | malloc | GlobalDataFlow.cs:189:20:189:43 | malloc | | GlobalDataFlow.cs:189:20:189:43 | object creation of type Lazy | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | | GlobalDataFlow.cs:189:20:189:43 | object creation of type Lazy | GlobalDataFlow.cs:189:9:189:49 | SSA def(nonSink0) | | GlobalDataFlow.cs:189:20:189:43 | object creation of type Lazy | GlobalDataFlow.cs:189:20:189:43 | object creation of type Lazy | @@ -3247,6 +3477,10 @@ | GlobalDataFlow.cs:189:37:189:42 | access to method NonOut | GlobalDataFlow.cs:189:37:189:42 | access to method NonOut | | GlobalDataFlow.cs:189:37:189:42 | delegate creation of type Func | GlobalDataFlow.cs:189:37:189:42 | delegate creation of type Func | | GlobalDataFlow.cs:189:37:189:42 | this access | GlobalDataFlow.cs:189:37:189:42 | this access | +| GlobalDataFlow.cs:189:37:189:42 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:189:37:189:42 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:189:37:189:42 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:189:37:189:42 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | | GlobalDataFlow.cs:190:9:190:23 | call to method Check | GlobalDataFlow.cs:190:9:190:23 | call to method Check | | GlobalDataFlow.cs:190:15:190:22 | access to local variable nonSink0 | GlobalDataFlow.cs:190:15:190:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:193:13:193:32 | SSA def(sink19) | GlobalDataFlow.cs:193:13:193:32 | SSA def(sink19) | @@ -3260,6 +3494,10 @@ | GlobalDataFlow.cs:193:22:193:32 | access to property OutProperty | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink19 | | GlobalDataFlow.cs:193:22:193:32 | access to property OutProperty | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink19 | | GlobalDataFlow.cs:193:22:193:32 | this access | GlobalDataFlow.cs:193:22:193:32 | this access | +| GlobalDataFlow.cs:193:22:193:32 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:193:22:193:32 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:193:22:193:32 | this access | GlobalDataFlow.cs:410:9:410:11 | this | +| GlobalDataFlow.cs:193:22:193:32 | this access | GlobalDataFlow.cs:410:9:410:11 | this | | GlobalDataFlow.cs:194:9:194:21 | call to method Check | GlobalDataFlow.cs:194:9:194:21 | call to method Check | | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink19 | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink19 | | GlobalDataFlow.cs:197:9:197:33 | ... = ... | GlobalDataFlow.cs:197:9:197:33 | ... = ... | @@ -3273,8 +3511,11 @@ | GlobalDataFlow.cs:197:20:197:33 | access to property NonOutProperty | GlobalDataFlow.cs:198:15:198:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:197:20:197:33 | access to property NonOutProperty | GlobalDataFlow.cs:198:15:198:22 | access to local variable nonSink0 | | GlobalDataFlow.cs:197:20:197:33 | this access | GlobalDataFlow.cs:197:20:197:33 | this access | +| GlobalDataFlow.cs:197:20:197:33 | this access | GlobalDataFlow.cs:415:9:415:11 | this | +| GlobalDataFlow.cs:197:20:197:33 | this access | GlobalDataFlow.cs:415:9:415:11 | this | | GlobalDataFlow.cs:198:9:198:23 | call to method Check | GlobalDataFlow.cs:198:9:198:23 | call to method Check | | GlobalDataFlow.cs:198:15:198:22 | access to local variable nonSink0 | GlobalDataFlow.cs:198:15:198:22 | access to local variable nonSink0 | +| GlobalDataFlow.cs:201:17:201:18 | this | GlobalDataFlow.cs:201:17:201:18 | this | | GlobalDataFlow.cs:201:39:201:45 | tainted | GlobalDataFlow.cs:201:39:201:45 | tainted | | GlobalDataFlow.cs:201:39:201:45 | tainted | GlobalDataFlow.cs:201:39:201:45 | tainted | | GlobalDataFlow.cs:201:39:201:45 | tainted | GlobalDataFlow.cs:201:39:201:45 | tainted | @@ -4102,11 +4343,13 @@ | GlobalDataFlow.cs:308:16:308:27 | access to parameter nonSinkParam | GlobalDataFlow.cs:215:76:215:92 | call to method NonReturnCheck | | GlobalDataFlow.cs:308:16:308:27 | access to parameter nonSinkParam | GlobalDataFlow.cs:215:76:215:92 | call to method NonReturnCheck | | GlobalDataFlow.cs:308:16:308:27 | access to parameter nonSinkParam | GlobalDataFlow.cs:308:16:308:27 | access to parameter nonSinkParam | +| GlobalDataFlow.cs:311:12:311:14 | this | GlobalDataFlow.cs:311:12:311:14 | this | | GlobalDataFlow.cs:313:16:313:29 | "taint source" | GlobalDataFlow.cs:149:21:149:25 | call to method Out | | GlobalDataFlow.cs:313:16:313:29 | "taint source" | GlobalDataFlow.cs:149:21:149:25 | call to method Out | | GlobalDataFlow.cs:313:16:313:29 | "taint source" | GlobalDataFlow.cs:185:39:185:41 | [output] delegate creation of type Func | | GlobalDataFlow.cs:313:16:313:29 | "taint source" | GlobalDataFlow.cs:185:39:185:41 | [output] delegate creation of type Func | | GlobalDataFlow.cs:313:16:313:29 | "taint source" | GlobalDataFlow.cs:313:16:313:29 | "taint source" | +| GlobalDataFlow.cs:316:10:316:15 | this | GlobalDataFlow.cs:316:10:316:15 | this | | GlobalDataFlow.cs:318:9:318:26 | ... = ... | GlobalDataFlow.cs:318:9:318:26 | ... = ... | | GlobalDataFlow.cs:318:9:318:26 | SSA def(x) | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | | GlobalDataFlow.cs:318:9:318:26 | SSA def(x) | GlobalDataFlow.cs:152:20:152:24 | SSA def(sink7) | @@ -4114,6 +4357,7 @@ | GlobalDataFlow.cs:318:13:318:26 | "taint source" | GlobalDataFlow.cs:318:9:318:26 | SSA def(x) | | GlobalDataFlow.cs:318:13:318:26 | "taint source" | GlobalDataFlow.cs:318:9:318:26 | SSA def(x) | | GlobalDataFlow.cs:318:13:318:26 | "taint source" | GlobalDataFlow.cs:318:13:318:26 | "taint source" | +| GlobalDataFlow.cs:321:10:321:15 | this | GlobalDataFlow.cs:321:10:321:15 | this | | GlobalDataFlow.cs:323:9:323:26 | ... = ... | GlobalDataFlow.cs:323:9:323:26 | ... = ... | | GlobalDataFlow.cs:323:9:323:26 | SSA def(x) | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | | GlobalDataFlow.cs:323:9:323:26 | SSA def(x) | GlobalDataFlow.cs:155:20:155:24 | SSA def(sink8) | @@ -4121,6 +4365,7 @@ | GlobalDataFlow.cs:323:13:323:26 | "taint source" | GlobalDataFlow.cs:323:9:323:26 | SSA def(x) | | GlobalDataFlow.cs:323:13:323:26 | "taint source" | GlobalDataFlow.cs:323:9:323:26 | SSA def(x) | | GlobalDataFlow.cs:323:13:323:26 | "taint source" | GlobalDataFlow.cs:323:13:323:26 | "taint source" | +| GlobalDataFlow.cs:326:25:326:32 | this | GlobalDataFlow.cs:326:25:326:32 | this | | GlobalDataFlow.cs:328:22:328:23 | "" | GlobalDataFlow.cs:157:22:157:31 | call to method OutYield | | GlobalDataFlow.cs:328:22:328:23 | "" | GlobalDataFlow.cs:157:22:157:31 | call to method OutYield | | GlobalDataFlow.cs:328:22:328:23 | "" | GlobalDataFlow.cs:328:22:328:23 | "" | @@ -4139,11 +4384,13 @@ | GlobalDataFlow.cs:330:22:330:23 | "" | GlobalDataFlow.cs:330:22:330:23 | "" | | GlobalDataFlow.cs:330:22:330:23 | "" | GlobalDataFlow.cs:330:22:330:23 | "" | | GlobalDataFlow.cs:330:22:330:23 | "" | GlobalDataFlow.cs:330:22:330:23 | "" | +| GlobalDataFlow.cs:333:12:333:17 | this | GlobalDataFlow.cs:333:12:333:17 | this | | GlobalDataFlow.cs:335:16:335:17 | "" | GlobalDataFlow.cs:163:20:163:27 | call to method NonOut | | GlobalDataFlow.cs:335:16:335:17 | "" | GlobalDataFlow.cs:163:20:163:27 | call to method NonOut | | GlobalDataFlow.cs:335:16:335:17 | "" | GlobalDataFlow.cs:189:37:189:42 | [output] delegate creation of type Func | | GlobalDataFlow.cs:335:16:335:17 | "" | GlobalDataFlow.cs:189:37:189:42 | [output] delegate creation of type Func | | GlobalDataFlow.cs:335:16:335:17 | "" | GlobalDataFlow.cs:335:16:335:17 | "" | +| GlobalDataFlow.cs:338:10:338:18 | this | GlobalDataFlow.cs:338:10:338:18 | this | | GlobalDataFlow.cs:340:9:340:14 | ... = ... | GlobalDataFlow.cs:340:9:340:14 | ... = ... | | GlobalDataFlow.cs:340:9:340:14 | SSA def(x) | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | | GlobalDataFlow.cs:340:9:340:14 | SSA def(x) | GlobalDataFlow.cs:165:23:165:30 | SSA def(nonSink0) | @@ -4151,6 +4398,7 @@ | GlobalDataFlow.cs:340:13:340:14 | "" | GlobalDataFlow.cs:340:9:340:14 | SSA def(x) | | GlobalDataFlow.cs:340:13:340:14 | "" | GlobalDataFlow.cs:340:9:340:14 | SSA def(x) | | GlobalDataFlow.cs:340:13:340:14 | "" | GlobalDataFlow.cs:340:13:340:14 | "" | +| GlobalDataFlow.cs:343:10:343:18 | this | GlobalDataFlow.cs:343:10:343:18 | this | | GlobalDataFlow.cs:345:9:345:14 | ... = ... | GlobalDataFlow.cs:345:9:345:14 | ... = ... | | GlobalDataFlow.cs:345:9:345:14 | SSA def(x) | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | | GlobalDataFlow.cs:345:9:345:14 | SSA def(x) | GlobalDataFlow.cs:167:23:167:30 | SSA def(nonSink0) | @@ -4158,6 +4406,7 @@ | GlobalDataFlow.cs:345:13:345:14 | "" | GlobalDataFlow.cs:345:9:345:14 | SSA def(x) | | GlobalDataFlow.cs:345:13:345:14 | "" | GlobalDataFlow.cs:345:9:345:14 | SSA def(x) | | GlobalDataFlow.cs:345:13:345:14 | "" | GlobalDataFlow.cs:345:13:345:14 | "" | +| GlobalDataFlow.cs:348:25:348:35 | this | GlobalDataFlow.cs:348:25:348:35 | this | | GlobalDataFlow.cs:350:22:350:23 | "" | GlobalDataFlow.cs:169:20:169:32 | call to method NonOutYield | | GlobalDataFlow.cs:350:22:350:23 | "" | GlobalDataFlow.cs:169:20:169:32 | call to method NonOutYield | | GlobalDataFlow.cs:350:22:350:23 | "" | GlobalDataFlow.cs:350:22:350:23 | "" | @@ -4468,7 +4717,9 @@ | GlobalDataFlow.cs:393:62:393:63 | "" | GlobalDataFlow.cs:32:15:32:35 | access to property NonSinkProperty1 | | GlobalDataFlow.cs:393:62:393:63 | "" | GlobalDataFlow.cs:32:15:32:35 | access to property NonSinkProperty1 | | GlobalDataFlow.cs:393:62:393:63 | "" | GlobalDataFlow.cs:393:62:393:63 | "" | +| GlobalDataFlow.cs:398:9:398:11 | this | GlobalDataFlow.cs:398:9:398:11 | this | | GlobalDataFlow.cs:398:22:398:23 | "" | GlobalDataFlow.cs:398:22:398:23 | "" | +| GlobalDataFlow.cs:399:9:399:11 | this | GlobalDataFlow.cs:399:9:399:11 | this | | GlobalDataFlow.cs:399:9:399:11 | value | GlobalDataFlow.cs:399:9:399:11 | value | | GlobalDataFlow.cs:399:9:399:11 | value | GlobalDataFlow.cs:399:9:399:11 | value | | GlobalDataFlow.cs:399:9:399:11 | value | GlobalDataFlow.cs:399:9:399:11 | value | @@ -4508,7 +4759,9 @@ | GlobalDataFlow.cs:399:28:399:32 | access to parameter value | GlobalDataFlow.cs:399:41:399:46 | access to local variable sink20 | | GlobalDataFlow.cs:399:35:399:47 | call to method Check | GlobalDataFlow.cs:399:35:399:47 | call to method Check | | GlobalDataFlow.cs:399:41:399:46 | access to local variable sink20 | GlobalDataFlow.cs:399:41:399:46 | access to local variable sink20 | +| GlobalDataFlow.cs:404:9:404:11 | this | GlobalDataFlow.cs:404:9:404:11 | this | | GlobalDataFlow.cs:404:22:404:23 | "" | GlobalDataFlow.cs:404:22:404:23 | "" | +| GlobalDataFlow.cs:405:9:405:11 | this | GlobalDataFlow.cs:405:9:405:11 | this | | GlobalDataFlow.cs:405:9:405:11 | value | GlobalDataFlow.cs:405:9:405:11 | value | | GlobalDataFlow.cs:405:9:405:11 | value | GlobalDataFlow.cs:405:9:405:11 | value | | GlobalDataFlow.cs:405:9:405:11 | value | GlobalDataFlow.cs:405:9:405:11 | value | @@ -4548,9 +4801,11 @@ | GlobalDataFlow.cs:405:30:405:34 | access to parameter value | GlobalDataFlow.cs:405:43:405:50 | access to local variable nonSink0 | | GlobalDataFlow.cs:405:37:405:51 | call to method Check | GlobalDataFlow.cs:405:37:405:51 | call to method Check | | GlobalDataFlow.cs:405:43:405:50 | access to local variable nonSink0 | GlobalDataFlow.cs:405:43:405:50 | access to local variable nonSink0 | +| GlobalDataFlow.cs:410:9:410:11 | this | GlobalDataFlow.cs:410:9:410:11 | this | | GlobalDataFlow.cs:410:22:410:35 | "taint source" | GlobalDataFlow.cs:193:22:193:32 | access to property OutProperty | | GlobalDataFlow.cs:410:22:410:35 | "taint source" | GlobalDataFlow.cs:193:22:193:32 | access to property OutProperty | | GlobalDataFlow.cs:410:22:410:35 | "taint source" | GlobalDataFlow.cs:410:22:410:35 | "taint source" | +| GlobalDataFlow.cs:415:9:415:11 | this | GlobalDataFlow.cs:415:9:415:11 | this | | GlobalDataFlow.cs:415:22:415:23 | "" | GlobalDataFlow.cs:197:20:197:33 | access to property NonOutProperty | | GlobalDataFlow.cs:415:22:415:23 | "" | GlobalDataFlow.cs:197:20:197:33 | access to property NonOutProperty | | GlobalDataFlow.cs:415:22:415:23 | "" | GlobalDataFlow.cs:415:22:415:23 | "" | @@ -4680,6 +4935,7 @@ | GlobalDataFlow.cs:426:46:426:46 | access to local variable x | GlobalDataFlow.cs:426:44:426:47 | delegate call | | GlobalDataFlow.cs:426:46:426:46 | access to local variable x | GlobalDataFlow.cs:426:44:426:47 | delegate call | | GlobalDataFlow.cs:426:46:426:46 | access to local variable x | GlobalDataFlow.cs:426:46:426:46 | access to local variable x | +| Splitting.cs:3:10:3:11 | this | Splitting.cs:3:10:3:11 | this | | Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | b | | Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | b | | Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | b | @@ -4799,6 +5055,7 @@ | Splitting.cs:18:24:18:24 | s | Splitting.cs:20:29:20:29 | access to parameter s | | Splitting.cs:18:24:18:24 | s | Splitting.cs:20:29:20:29 | access to parameter s | | Splitting.cs:18:24:18:24 | s | Splitting.cs:20:29:20:29 | access to parameter s | +| Splitting.cs:20:9:20:11 | this | Splitting.cs:20:9:20:11 | this | | Splitting.cs:20:22:20:30 | call to method Return | Splitting.cs:20:22:20:30 | call to method Return | | Splitting.cs:20:22:20:30 | call to method Return | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | | Splitting.cs:20:22:20:30 | call to method Return | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | @@ -4813,6 +5070,7 @@ | Splitting.cs:20:29:20:29 | access to parameter s | Splitting.cs:20:22:20:30 | call to method Return | | Splitting.cs:20:29:20:29 | access to parameter s | Splitting.cs:20:22:20:30 | call to method Return | | Splitting.cs:20:29:20:29 | access to parameter s | Splitting.cs:20:29:20:29 | access to parameter s | +| Splitting.cs:21:9:21:11 | this | Splitting.cs:21:9:21:11 | this | | Splitting.cs:21:9:21:11 | value | Splitting.cs:21:9:21:11 | value | | Splitting.cs:21:9:21:11 | value | Splitting.cs:21:9:21:11 | value | | Splitting.cs:21:9:21:11 | value | Splitting.cs:21:9:21:11 | value | @@ -4834,6 +5092,41 @@ | Splitting.cs:21:28:21:32 | access to parameter value | Splitting.cs:21:21:21:33 | call to method Return | | Splitting.cs:21:28:21:32 | access to parameter value | Splitting.cs:21:21:21:33 | call to method Return | | Splitting.cs:21:28:21:32 | access to parameter value | Splitting.cs:21:28:21:32 | access to parameter value | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:24:10:24:11 | this | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:17:29:24 | [b (line 24): false] SSA def(d) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:17:29:24 | [b (line 24): false] SSA def(d) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:17:29:24 | [b (line 24): true] SSA def(d) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:17:29:24 | [b (line 24): true] SSA def(d) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:21:29:24 | [b (line 24): false] this access | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:21:29:24 | [b (line 24): false] this access | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:21:29:24 | [b (line 24): true] this access | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:29:21:29:24 | [b (line 24): true] this access | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:13 | [b (line 24): false] dynamic access to element | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:13 | [b (line 24): false] dynamic access to element | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:13 | [b (line 24): true] dynamic access to element | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:30:9:30:13 | [b (line 24): true] dynamic access to element | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:13:31:26 | [b (line 24): false] SSA def(x) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:13:31:26 | [b (line 24): false] SSA def(x) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:13:31:26 | [b (line 24): true] SSA def(x) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:13:31:26 | [b (line 24): true] SSA def(x) | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:34:19:34:19 | access to local variable x | +| Splitting.cs:24:10:24:11 | this | Splitting.cs:34:19:34:19 | access to local variable x | | Splitting.cs:24:18:24:18 | b | Splitting.cs:24:18:24:18 | b | | Splitting.cs:24:18:24:18 | b | Splitting.cs:24:18:24:18 | b | | Splitting.cs:24:18:24:18 | b | Splitting.cs:24:18:24:18 | b | @@ -5020,6 +5313,8 @@ | Splitting.cs:29:21:29:24 | [b (line 24): true] this access | Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | | Splitting.cs:29:21:29:24 | [b (line 24): true] this access | Splitting.cs:34:19:34:19 | access to local variable x | | Splitting.cs:29:21:29:24 | [b (line 24): true] this access | Splitting.cs:34:19:34:19 | access to local variable x | +| Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:21:9:21:11 | this | +| Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:21:9:21:11 | this | | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:30:9:30:13 | [b (line 24): false] dynamic access to element | | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:30:9:30:13 | [b (line 24): false] dynamic access to element | @@ -5031,6 +5326,8 @@ | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | | Splitting.cs:30:9:30:9 | [b (line 24): false] access to local variable d | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | +| Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | Splitting.cs:21:9:21:11 | this | +| Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | Splitting.cs:21:9:21:11 | this | | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | Splitting.cs:30:9:30:13 | [b (line 24): true] dynamic access to element | | Splitting.cs:30:9:30:9 | [b (line 24): true] access to local variable d | Splitting.cs:30:9:30:13 | [b (line 24): true] dynamic access to element | @@ -5096,6 +5393,8 @@ | Splitting.cs:31:13:31:26 | [b (line 24): true] SSA def(x) | Splitting.cs:34:19:34:19 | access to local variable x | | Splitting.cs:31:13:31:26 | [b (line 24): true] SSA def(x) | Splitting.cs:34:19:34:19 | access to local variable x | | Splitting.cs:31:13:31:26 | [b (line 24): true] dynamic x = ... | Splitting.cs:31:13:31:26 | [b (line 24): true] dynamic x = ... | +| Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | Splitting.cs:20:9:20:11 | this | +| Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | Splitting.cs:20:9:20:11 | this | | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | Splitting.cs:31:13:31:26 | [b (line 24): false] SSA def(x) | | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | Splitting.cs:31:13:31:26 | [b (line 24): false] SSA def(x) | | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | @@ -5103,6 +5402,8 @@ | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element | | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | | Splitting.cs:31:17:31:17 | [b (line 24): false] access to local variable d | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | +| Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | Splitting.cs:20:9:20:11 | this | +| Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | Splitting.cs:20:9:20:11 | this | | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | Splitting.cs:31:13:31:26 | [b (line 24): true] SSA def(x) | | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | Splitting.cs:31:13:31:26 | [b (line 24): true] SSA def(x) | | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | Splitting.cs:31:17:31:17 | [b (line 24): true] access to local variable d | @@ -5144,3 +5445,243 @@ | Splitting.cs:33:13:33:13 | [b (line 24): true] access to parameter b | Splitting.cs:33:13:33:13 | [b (line 24): true] access to parameter b | | Splitting.cs:34:13:34:20 | dynamic call to method Check | Splitting.cs:34:13:34:20 | dynamic call to method Check | | Splitting.cs:34:19:34:19 | access to local variable x | Splitting.cs:34:19:34:19 | access to local variable x | +| This.cs:7:5:7:8 | this | This.cs:7:5:7:8 | this | +| This.cs:9:20:9:20 | this | This.cs:9:20:9:20 | this | +| This.cs:9:20:9:20 | this | This.cs:11:13:11:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:11:13:11:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:11:13:11:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:11:13:11:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:9:12:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:9:12:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:9:12:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:9:12:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:16:12:19 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:16:12:19 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:16:12:19 | this access | +| This.cs:9:20:9:20 | this | This.cs:12:16:12:19 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:9:13:15 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:9:13:15 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:9:13:15 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:9:13:15 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:11:13:14 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:11:13:14 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:11:13:14 | this access | +| This.cs:9:20:9:20 | this | This.cs:13:11:13:14 | this access | +| This.cs:9:20:9:20 | this | This.cs:15:9:15:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:15:9:15:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:15:9:15:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:15:9:15:12 | this access | +| This.cs:9:20:9:20 | this | This.cs:16:9:16:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:16:9:16:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:16:9:16:16 | this access | +| This.cs:9:20:9:20 | this | This.cs:16:9:16:16 | this access | +| This.cs:9:27:9:31 | other | This.cs:9:27:9:31 | other | +| This.cs:9:27:9:31 | other | This.cs:9:27:9:31 | other | +| This.cs:9:27:9:31 | other | This.cs:9:27:9:31 | other | +| This.cs:9:27:9:31 | other | This.cs:9:27:9:31 | other | +| This.cs:9:27:9:31 | other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:9:27:9:31 | other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:11:9:11:17 | call to method Use | This.cs:11:9:11:17 | call to method Use | +| This.cs:11:13:11:16 | this access | This.cs:11:13:11:16 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:9:12:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:9:12:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:9:12:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:9:12:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:16:12:19 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:16:12:19 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:16:12:19 | this access | +| This.cs:11:13:11:16 | this access | This.cs:12:16:12:19 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:9:13:15 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:9:13:15 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:9:13:15 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:9:13:15 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:11:13:14 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:11:13:14 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:11:13:14 | this access | +| This.cs:11:13:11:16 | this access | This.cs:13:11:13:14 | this access | +| This.cs:11:13:11:16 | this access | This.cs:15:9:15:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:15:9:15:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:15:9:15:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:15:9:15:12 | this access | +| This.cs:11:13:11:16 | this access | This.cs:16:9:16:16 | this access | +| This.cs:11:13:11:16 | this access | This.cs:16:9:16:16 | this access | +| This.cs:11:13:11:16 | this access | This.cs:16:9:16:16 | this access | +| This.cs:11:13:11:16 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:9:12:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:12:9:12:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:12:9:12:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:12:9:12:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:12:9:12:12 | this access | This.cs:12:9:12:12 | this access | +| This.cs:12:9:12:12 | this access | This.cs:12:16:12:19 | this access | +| This.cs:12:9:12:12 | this access | This.cs:12:16:12:19 | this access | +| This.cs:12:9:12:12 | this access | This.cs:12:16:12:19 | this access | +| This.cs:12:9:12:12 | this access | This.cs:12:16:12:19 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:9:12:12 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:9:12:12 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:9:12:12 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:9:12:12 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:9:12:12 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:9:12:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:9:12:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:9:12:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:9:12:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:9:12:20 | call to method M | This.cs:12:9:12:20 | call to method M | +| This.cs:12:16:12:19 | this access | This.cs:9:27:9:31 | other | +| This.cs:12:16:12:19 | this access | This.cs:9:27:9:31 | other | +| This.cs:12:16:12:19 | this access | This.cs:9:27:9:31 | other | +| This.cs:12:16:12:19 | this access | This.cs:9:27:9:31 | other | +| This.cs:12:16:12:19 | this access | This.cs:12:16:12:19 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:9:13:15 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:16:12:19 | this access | This.cs:13:11:13:14 | this access | +| This.cs:12:16:12:19 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:16:12:19 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:16:12:19 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:16:12:19 | this access | This.cs:15:9:15:12 | this access | +| This.cs:12:16:12:19 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:16:12:19 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:16:12:19 | this access | This.cs:16:9:16:16 | this access | +| This.cs:12:16:12:19 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:9:13:15 | call to method M | This.cs:13:9:13:15 | call to method M | +| This.cs:13:9:13:15 | this access | This.cs:9:20:9:20 | this | +| This.cs:13:9:13:15 | this access | This.cs:9:20:9:20 | this | +| This.cs:13:9:13:15 | this access | This.cs:9:20:9:20 | this | +| This.cs:13:9:13:15 | this access | This.cs:9:20:9:20 | this | +| This.cs:13:9:13:15 | this access | This.cs:13:9:13:15 | this access | +| This.cs:13:9:13:15 | this access | This.cs:13:11:13:14 | this access | +| This.cs:13:9:13:15 | this access | This.cs:13:11:13:14 | this access | +| This.cs:13:9:13:15 | this access | This.cs:13:11:13:14 | this access | +| This.cs:13:9:13:15 | this access | This.cs:13:11:13:14 | this access | +| This.cs:13:9:13:15 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:9:13:15 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:9:13:15 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:9:13:15 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:9:13:15 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:9:13:15 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:9:13:15 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:9:13:15 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:11:13:14 | this access | This.cs:9:27:9:31 | other | +| This.cs:13:11:13:14 | this access | This.cs:9:27:9:31 | other | +| This.cs:13:11:13:14 | this access | This.cs:9:27:9:31 | other | +| This.cs:13:11:13:14 | this access | This.cs:9:27:9:31 | other | +| This.cs:13:11:13:14 | this access | This.cs:13:11:13:14 | this access | +| This.cs:13:11:13:14 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:11:13:14 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:11:13:14 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:11:13:14 | this access | This.cs:15:9:15:12 | this access | +| This.cs:13:11:13:14 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:11:13:14 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:11:13:14 | this access | This.cs:16:9:16:16 | this access | +| This.cs:13:11:13:14 | this access | This.cs:16:9:16:16 | this access | +| This.cs:14:9:14:18 | call to method Use | This.cs:14:9:14:18 | call to method Use | +| This.cs:14:13:14:17 | access to parameter other | This.cs:14:13:14:17 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:14:13:14:17 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:15:9:15:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:15:9:15:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:15:9:15:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:15:9:15:12 | this access | This.cs:9:20:9:20 | this | +| This.cs:15:9:15:12 | this access | This.cs:15:9:15:12 | this access | +| This.cs:15:9:15:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:15:9:15:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:15:9:15:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:15:9:15:12 | this access | This.cs:16:9:16:16 | this access | +| This.cs:15:9:15:21 | call to method M | This.cs:15:9:15:21 | call to method M | +| This.cs:15:16:15:20 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:15:16:15:20 | access to parameter other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:15:16:15:20 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:16:9:16:16 | call to method M | This.cs:16:9:16:16 | call to method M | +| This.cs:16:9:16:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:16:9:16:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:16:9:16:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:16:9:16:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:16:9:16:16 | this access | This.cs:16:9:16:16 | this access | +| This.cs:16:11:16:15 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:16:11:16:15 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:16:11:16:15 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:16:11:16:15 | access to parameter other | This.cs:9:27:9:31 | other | +| This.cs:16:11:16:15 | access to parameter other | This.cs:16:11:16:15 | access to parameter other | +| This.cs:17:9:17:18 | malloc | This.cs:7:5:7:8 | this | +| This.cs:17:9:17:18 | malloc | This.cs:7:5:7:8 | this | +| This.cs:17:9:17:18 | malloc | This.cs:17:9:17:18 | malloc | +| This.cs:17:9:17:18 | object creation of type This | This.cs:17:9:17:18 | object creation of type This | +| This.cs:22:9:22:11 | this | This.cs:22:9:22:11 | this | +| This.cs:24:14:24:15 | this | This.cs:24:14:24:15 | this | +| This.cs:24:14:24:15 | this | This.cs:26:13:26:16 | this access | +| This.cs:24:14:24:15 | this | This.cs:26:13:26:16 | this access | +| This.cs:24:14:24:15 | this | This.cs:26:20:26:23 | this access | +| This.cs:24:14:24:15 | this | This.cs:26:20:26:23 | this access | +| This.cs:24:14:24:15 | this | This.cs:27:13:27:16 | base access | +| This.cs:24:14:24:15 | this | This.cs:27:13:27:16 | base access | +| This.cs:24:14:24:15 | this | This.cs:27:20:27:23 | this access | +| This.cs:24:14:24:15 | this | This.cs:27:20:27:23 | this access | +| This.cs:26:13:26:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:26:13:26:16 | this access | This.cs:9:20:9:20 | this | +| This.cs:26:13:26:16 | this access | This.cs:26:13:26:16 | this access | +| This.cs:26:13:26:16 | this access | This.cs:26:20:26:23 | this access | +| This.cs:26:13:26:16 | this access | This.cs:26:20:26:23 | this access | +| This.cs:26:13:26:16 | this access | This.cs:27:13:27:16 | base access | +| This.cs:26:13:26:16 | this access | This.cs:27:13:27:16 | base access | +| This.cs:26:13:26:16 | this access | This.cs:27:20:27:23 | this access | +| This.cs:26:13:26:16 | this access | This.cs:27:20:27:23 | this access | +| This.cs:26:13:26:24 | call to method M | This.cs:26:13:26:24 | call to method M | +| This.cs:26:20:26:23 | this access | This.cs:9:27:9:31 | other | +| This.cs:26:20:26:23 | this access | This.cs:9:27:9:31 | other | +| This.cs:26:20:26:23 | this access | This.cs:26:20:26:23 | this access | +| This.cs:26:20:26:23 | this access | This.cs:27:13:27:16 | base access | +| This.cs:26:20:26:23 | this access | This.cs:27:13:27:16 | base access | +| This.cs:26:20:26:23 | this access | This.cs:27:20:27:23 | this access | +| This.cs:26:20:26:23 | this access | This.cs:27:20:27:23 | this access | +| This.cs:27:13:27:16 | base access | This.cs:9:20:9:20 | this | +| This.cs:27:13:27:16 | base access | This.cs:9:20:9:20 | this | +| This.cs:27:13:27:16 | base access | This.cs:27:13:27:16 | base access | +| This.cs:27:13:27:16 | base access | This.cs:27:20:27:23 | this access | +| This.cs:27:13:27:16 | base access | This.cs:27:20:27:23 | this access | +| This.cs:27:13:27:24 | call to method M | This.cs:27:13:27:24 | call to method M | +| This.cs:27:20:27:23 | this access | This.cs:9:27:9:31 | other | +| This.cs:27:20:27:23 | this access | This.cs:9:27:9:31 | other | +| This.cs:27:20:27:23 | this access | This.cs:27:20:27:23 | this access | +| This.cs:28:13:28:21 | malloc | This.cs:22:9:22:11 | this | +| This.cs:28:13:28:21 | malloc | This.cs:22:9:22:11 | this | +| This.cs:28:13:28:21 | malloc | This.cs:28:13:28:21 | malloc | +| This.cs:28:13:28:21 | object creation of type Sub | This.cs:28:13:28:21 | object creation of type Sub | diff --git a/csharp/ql/test/library-tests/dataflow/global/This.cs b/csharp/ql/test/library-tests/dataflow/global/This.cs new file mode 100644 index 00000000000..b9e9972483e --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/global/This.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +class This +{ + This() { } + + protected void M(This other) + { + Use(this); + this.M(this); + M(this); + Use(other); + this.M(other); + M(other); + new This(); + } + + class Sub : This + { + Sub() { } + + void M2() + { + this.M(this); + base.M(this); + new Sub(); + } + } + + static void Use(T x) { } +} diff --git a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 274e4aec893..6209b8cd78e 100644 --- a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -14,6 +14,7 @@ | Capture.cs:58:21:58:21 | 1 | Capture.cs:58:17:58:21 | SSA def(i) | | Capture.cs:61:17:61:17 | 1 | Capture.cs:61:13:61:17 | SSA def(i) | | Capture.cs:63:9:63:17 | SSA call def(i) | Capture.cs:64:13:64:13 | access to local variable i | +| LocalDataFlow.cs:49:23:49:23 | this | LocalDataFlow.cs:299:39:299:51 | this access | | LocalDataFlow.cs:49:30:49:30 | b | LocalDataFlow.cs:96:21:96:21 | access to parameter b | | LocalDataFlow.cs:52:13:52:34 | SSA def(sink0) | LocalDataFlow.cs:53:15:53:19 | access to local variable sink0 | | LocalDataFlow.cs:52:21:52:34 | "taint source" | LocalDataFlow.cs:52:13:52:34 | SSA def(sink0) | @@ -303,6 +304,7 @@ | LocalDataFlow.cs:299:13:299:52 | SSA def(sink40) | LocalDataFlow.cs:300:15:300:20 | access to local variable sink40 | | LocalDataFlow.cs:299:22:299:52 | object creation of type Lazy | LocalDataFlow.cs:299:13:299:52 | SSA def(sink40) | | LocalDataFlow.cs:299:39:299:51 | [output] delegate creation of type Func | LocalDataFlow.cs:299:22:299:52 | object creation of type Lazy | +| LocalDataFlow.cs:299:39:299:51 | this access | LocalDataFlow.cs:309:42:309:57 | this access | | LocalDataFlow.cs:300:15:300:20 | access to local variable sink40 | LocalDataFlow.cs:301:22:301:27 | access to local variable sink40 | | LocalDataFlow.cs:301:13:301:33 | SSA def(sink41) | LocalDataFlow.cs:302:15:302:20 | access to local variable sink41 | | LocalDataFlow.cs:301:22:301:27 | access to local variable sink40 | LocalDataFlow.cs:301:22:301:33 | access to property Value | @@ -453,10 +455,13 @@ | LocalDataFlow.cs:429:18:429:30 | SSA def(sink72) | LocalDataFlow.cs:430:23:430:28 | access to local variable sink72 | | LocalDataFlow.cs:435:17:435:24 | access to local variable nonSink0 | LocalDataFlow.cs:437:18:437:33 | SSA def(nonSink17) | | LocalDataFlow.cs:437:18:437:33 | SSA def(nonSink17) | LocalDataFlow.cs:438:23:438:31 | access to local variable nonSink17 | +| LocalDataFlow.cs:458:28:458:30 | this | LocalDataFlow.cs:458:41:458:45 | this access | +| LocalDataFlow.cs:458:50:458:52 | this | LocalDataFlow.cs:458:56:458:60 | this access | | LocalDataFlow.cs:458:50:458:52 | value | LocalDataFlow.cs:458:64:458:68 | access to parameter value | | LocalDataFlow.cs:464:41:464:47 | tainted | LocalDataFlow.cs:466:15:466:21 | access to parameter tainted | | LocalDataFlow.cs:469:44:469:53 | nonTainted | LocalDataFlow.cs:471:15:471:24 | access to parameter nonTainted | | SSA.cs:5:17:5:17 | SSA entry def(this.S) | SSA.cs:67:9:67:14 | access to field S | +| SSA.cs:5:17:5:17 | this | SSA.cs:67:9:67:12 | this access | | SSA.cs:5:26:5:32 | tainted | SSA.cs:8:24:8:30 | access to parameter tainted | | SSA.cs:5:42:5:51 | nonTainted | SSA.cs:12:24:12:33 | access to parameter nonTainted | | SSA.cs:8:13:8:30 | SSA def(ssaSink0) | SSA.cs:9:15:9:22 | access to local variable ssaSink0 | @@ -523,20 +528,26 @@ | SSA.cs:59:23:59:30 | access to local variable ssaSink3 | SSA.cs:59:23:59:30 | SSA def(ssaSink3) | | SSA.cs:63:23:63:30 | SSA def(nonSink0) | SSA.cs:64:15:64:22 | access to local variable nonSink0 | | SSA.cs:63:23:63:30 | access to local variable nonSink0 | SSA.cs:63:23:63:30 | SSA def(nonSink0) | +| SSA.cs:67:9:67:12 | this access | SSA.cs:68:23:68:26 | this access | | SSA.cs:67:9:67:14 | access to field S | SSA.cs:68:23:68:28 | access to field S | | SSA.cs:67:9:67:38 | SSA def(this.S.SsaFieldSink0) | SSA.cs:68:23:68:28 | SSA qualifier def(this.S.SsaFieldSink0) | | SSA.cs:67:32:67:38 | access to parameter tainted | SSA.cs:67:9:67:38 | SSA def(this.S.SsaFieldSink0) | | SSA.cs:67:32:67:38 | access to parameter tainted | SSA.cs:77:20:77:26 | access to parameter tainted | +| SSA.cs:68:23:68:26 | this access | SSA.cs:69:15:69:18 | this access | | SSA.cs:68:23:68:28 | SSA def(this.S) | SSA.cs:69:15:69:20 | access to field S | | SSA.cs:68:23:68:28 | SSA qualifier def(this.S.SsaFieldSink0) | SSA.cs:69:15:69:34 | access to field SsaFieldSink0 | | SSA.cs:68:23:68:28 | access to field S | SSA.cs:68:23:68:28 | SSA def(this.S) | +| SSA.cs:69:15:69:18 | this access | SSA.cs:72:9:72:12 | this access | | SSA.cs:69:15:69:20 | access to field S | SSA.cs:72:9:72:14 | access to field S | +| SSA.cs:72:9:72:12 | this access | SSA.cs:73:23:73:26 | this access | | SSA.cs:72:9:72:14 | access to field S | SSA.cs:73:23:73:28 | access to field S | | SSA.cs:72:9:72:36 | SSA def(this.S.SsaFieldNonSink0) | SSA.cs:73:23:73:28 | SSA qualifier def(this.S.SsaFieldNonSink0) | | SSA.cs:72:35:72:36 | "" | SSA.cs:72:9:72:36 | SSA def(this.S.SsaFieldNonSink0) | +| SSA.cs:73:23:73:26 | this access | SSA.cs:74:15:74:18 | this access | | SSA.cs:73:23:73:28 | SSA def(this.S) | SSA.cs:74:15:74:20 | access to field S | | SSA.cs:73:23:73:28 | SSA qualifier def(this.S.SsaFieldNonSink0) | SSA.cs:74:15:74:37 | access to field SsaFieldNonSink0 | | SSA.cs:73:23:73:28 | access to field S | SSA.cs:73:23:73:28 | SSA def(this.S) | +| SSA.cs:74:15:74:18 | this access | SSA.cs:80:9:80:12 | this access | | SSA.cs:74:15:74:20 | access to field S | SSA.cs:80:9:80:14 | access to field S | | SSA.cs:77:9:77:26 | SSA def(nonSink0) | SSA.cs:78:21:78:28 | access to local variable nonSink0 | | SSA.cs:77:20:77:26 | access to parameter tainted | SSA.cs:77:9:77:26 | SSA def(nonSink0) | @@ -544,14 +555,20 @@ | SSA.cs:78:21:78:28 | SSA def(nonSink0) | SSA.cs:79:15:79:22 | access to local variable nonSink0 | | SSA.cs:79:15:79:22 | access to local variable nonSink0 | SSA.cs:104:24:104:31 | access to local variable nonSink0 | | SSA.cs:79:15:79:22 | access to local variable nonSink0 | SSA.cs:130:39:130:46 | access to local variable nonSink0 | +| SSA.cs:80:9:80:12 | this access | SSA.cs:81:21:81:24 | this access | | SSA.cs:80:9:80:14 | access to field S | SSA.cs:81:21:81:26 | access to field S | | SSA.cs:80:35:80:41 | access to parameter tainted | SSA.cs:83:35:83:41 | access to parameter tainted | +| SSA.cs:81:21:81:24 | this access | SSA.cs:82:15:82:18 | this access | | SSA.cs:81:21:81:26 | SSA def(this.S) | SSA.cs:82:15:82:20 | access to field S | | SSA.cs:81:21:81:26 | SSA qualifier def(this.S.SsaFieldNonSink0) | SSA.cs:82:15:82:37 | access to field SsaFieldNonSink0 | +| SSA.cs:82:15:82:18 | this access | SSA.cs:83:9:83:12 | this access | | SSA.cs:82:15:82:20 | access to field S | SSA.cs:83:9:83:14 | access to field S | +| SSA.cs:83:9:83:12 | this access | SSA.cs:84:9:84:14 | this access | | SSA.cs:83:35:83:41 | access to parameter tainted | SSA.cs:83:9:83:41 | SSA def(this.S.SsaFieldNonSink0) | | SSA.cs:84:9:84:14 | SSA call def(this.S) | SSA.cs:85:15:85:20 | access to field S | | SSA.cs:84:9:84:14 | SSA qualifier def(this.S.SsaFieldNonSink0) | SSA.cs:85:15:85:37 | access to field SsaFieldNonSink0 | +| SSA.cs:84:9:84:14 | this access | SSA.cs:85:15:85:18 | this access | +| SSA.cs:85:15:85:18 | this access | SSA.cs:114:9:114:12 | this access | | SSA.cs:85:15:85:20 | access to field S | SSA.cs:114:9:114:14 | access to field S | | SSA.cs:88:16:88:28 | SSA def(ssaSink4) | SSA.cs:97:9:97:32 | SSA phi(ssaSink4) | | SSA.cs:88:27:88:28 | "" | SSA.cs:88:16:88:28 | SSA def(ssaSink4) | @@ -581,42 +598,57 @@ | SSA.cs:110:9:110:32 | SSA phi(nonSink3) | SSA.cs:110:23:110:30 | access to local variable nonSink3 | | SSA.cs:110:23:110:30 | SSA def(nonSink3) | SSA.cs:111:15:111:22 | access to local variable nonSink3 | | SSA.cs:110:23:110:30 | access to local variable nonSink3 | SSA.cs:110:23:110:30 | SSA def(nonSink3) | +| SSA.cs:114:9:114:12 | this access | SSA.cs:117:13:117:16 | this access | +| SSA.cs:114:9:114:12 | this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:114:9:114:14 | access to field S | SSA.cs:117:13:117:18 | access to field S | | SSA.cs:114:9:114:14 | access to field S | SSA.cs:123:23:123:28 | access to field S | | SSA.cs:114:9:114:33 | SSA def(this.S.SsaFieldSink1) | SSA.cs:123:9:123:30 | SSA phi(this.S.SsaFieldSink1) | | SSA.cs:114:32:114:33 | "" | SSA.cs:114:9:114:33 | SSA def(this.S.SsaFieldSink1) | | SSA.cs:115:13:115:22 | access to parameter nonTainted | SSA.cs:118:17:118:26 | access to parameter nonTainted | | SSA.cs:115:13:115:22 | access to parameter nonTainted | SSA.cs:128:13:128:22 | access to parameter nonTainted | +| SSA.cs:117:13:117:16 | this access | SSA.cs:119:21:119:24 | this access | +| SSA.cs:117:13:117:16 | this access | SSA.cs:121:21:121:24 | this access | | SSA.cs:117:13:117:18 | access to field S | SSA.cs:119:21:119:26 | access to field S | | SSA.cs:117:13:117:18 | access to field S | SSA.cs:121:21:121:26 | access to field S | | SSA.cs:117:13:117:43 | SSA def(this.S.SsaFieldSink1) | SSA.cs:119:21:119:40 | access to field SsaFieldSink1 | | SSA.cs:117:13:117:43 | SSA def(this.S.SsaFieldSink1) | SSA.cs:121:21:121:40 | access to field SsaFieldSink1 | | SSA.cs:117:36:117:43 | access to local variable ssaSink0 | SSA.cs:117:13:117:43 | SSA def(this.S.SsaFieldSink1) | | SSA.cs:118:17:118:26 | access to parameter nonTainted | SSA.cs:128:13:128:22 | access to parameter nonTainted | +| SSA.cs:119:21:119:24 | this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:119:21:119:26 | access to field S | SSA.cs:123:23:123:28 | access to field S | | SSA.cs:119:21:119:40 | access to field SsaFieldSink1 | SSA.cs:123:9:123:30 | SSA phi(this.S.SsaFieldSink1) | +| SSA.cs:121:21:121:24 | this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:121:21:121:26 | access to field S | SSA.cs:123:23:123:28 | access to field S | | SSA.cs:121:21:121:40 | access to field SsaFieldSink1 | SSA.cs:123:9:123:30 | SSA phi(this.S.SsaFieldSink1) | | SSA.cs:123:9:123:30 | SSA phi(this.S.SsaFieldSink1) | SSA.cs:123:23:123:28 | SSA qualifier def(this.S.SsaFieldSink1) | +| SSA.cs:123:23:123:26 | this access | SSA.cs:124:15:124:18 | this access | | SSA.cs:123:23:123:28 | SSA def(this.S) | SSA.cs:124:15:124:20 | access to field S | | SSA.cs:123:23:123:28 | SSA qualifier def(this.S.SsaFieldSink1) | SSA.cs:124:15:124:34 | access to field SsaFieldSink1 | | SSA.cs:123:23:123:28 | access to field S | SSA.cs:123:23:123:28 | SSA def(this.S) | +| SSA.cs:124:15:124:18 | this access | SSA.cs:127:9:127:12 | this access | | SSA.cs:124:15:124:20 | access to field S | SSA.cs:127:9:127:14 | access to field S | +| SSA.cs:127:9:127:12 | this access | SSA.cs:130:13:130:16 | this access | +| SSA.cs:127:9:127:12 | this access | SSA.cs:136:23:136:26 | this access | | SSA.cs:127:9:127:14 | access to field S | SSA.cs:130:13:130:18 | access to field S | | SSA.cs:127:9:127:14 | access to field S | SSA.cs:136:23:136:28 | access to field S | | SSA.cs:127:9:127:36 | SSA def(this.S.SsaFieldNonSink0) | SSA.cs:136:9:136:30 | SSA phi(this.S.SsaFieldNonSink0) | | SSA.cs:127:35:127:36 | "" | SSA.cs:127:9:127:36 | SSA def(this.S.SsaFieldNonSink0) | | SSA.cs:128:13:128:22 | access to parameter nonTainted | SSA.cs:131:17:131:26 | access to parameter nonTainted | +| SSA.cs:130:13:130:16 | this access | SSA.cs:132:21:132:24 | this access | +| SSA.cs:130:13:130:16 | this access | SSA.cs:134:21:134:24 | this access | | SSA.cs:130:13:130:18 | access to field S | SSA.cs:132:21:132:26 | access to field S | | SSA.cs:130:13:130:18 | access to field S | SSA.cs:134:21:134:26 | access to field S | | SSA.cs:130:13:130:46 | SSA def(this.S.SsaFieldNonSink0) | SSA.cs:132:21:132:43 | access to field SsaFieldNonSink0 | | SSA.cs:130:13:130:46 | SSA def(this.S.SsaFieldNonSink0) | SSA.cs:134:21:134:43 | access to field SsaFieldNonSink0 | | SSA.cs:130:39:130:46 | access to local variable nonSink0 | SSA.cs:130:13:130:46 | SSA def(this.S.SsaFieldNonSink0) | +| SSA.cs:132:21:132:24 | this access | SSA.cs:136:23:136:26 | this access | | SSA.cs:132:21:132:26 | access to field S | SSA.cs:136:23:136:28 | access to field S | | SSA.cs:132:21:132:43 | access to field SsaFieldNonSink0 | SSA.cs:136:9:136:30 | SSA phi(this.S.SsaFieldNonSink0) | +| SSA.cs:134:21:134:24 | this access | SSA.cs:136:23:136:26 | this access | | SSA.cs:134:21:134:26 | access to field S | SSA.cs:136:23:136:28 | access to field S | | SSA.cs:134:21:134:43 | access to field SsaFieldNonSink0 | SSA.cs:136:9:136:30 | SSA phi(this.S.SsaFieldNonSink0) | | SSA.cs:136:9:136:30 | SSA phi(this.S.SsaFieldNonSink0) | SSA.cs:136:23:136:28 | SSA qualifier def(this.S.SsaFieldNonSink0) | +| SSA.cs:136:23:136:26 | this access | SSA.cs:137:15:137:18 | this access | | SSA.cs:136:23:136:28 | SSA def(this.S) | SSA.cs:137:15:137:20 | access to field S | | SSA.cs:136:23:136:28 | SSA qualifier def(this.S.SsaFieldNonSink0) | SSA.cs:137:15:137:37 | access to field SsaFieldNonSink0 | | SSA.cs:136:23:136:28 | access to field S | SSA.cs:136:23:136:28 | SSA def(this.S) | @@ -633,6 +665,7 @@ | SSA.cs:154:13:154:13 | access to parameter t | SSA.cs:155:25:155:25 | access to parameter t | | SSA.cs:155:25:155:25 | SSA def(t) | SSA.cs:152:17:152:28 | SSA phi(t) | | SSA.cs:155:25:155:25 | access to parameter t | SSA.cs:152:17:152:28 | SSA phi(t) | +| SSA.cs:166:10:166:13 | this | SSA.cs:166:19:166:22 | this access | | SSA.cs:168:22:168:28 | tainted | SSA.cs:173:24:173:30 | access to parameter tainted | | SSA.cs:168:35:168:35 | i | SSA.cs:171:13:171:13 | access to parameter i | | SSA.cs:170:16:170:28 | SSA def(ssaSink5) | SSA.cs:180:9:180:24 | SSA phi(ssaSink5) | diff --git a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected index 2ff79547c3d..095439122e9 100644 --- a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected @@ -14,6 +14,7 @@ | Capture.cs:58:21:58:21 | 1 | Capture.cs:58:17:58:21 | SSA def(i) | | Capture.cs:61:17:61:17 | 1 | Capture.cs:61:13:61:17 | SSA def(i) | | Capture.cs:63:9:63:17 | SSA call def(i) | Capture.cs:64:13:64:13 | access to local variable i | +| LocalDataFlow.cs:49:23:49:23 | this | LocalDataFlow.cs:299:39:299:51 | this access | | LocalDataFlow.cs:49:30:49:30 | b | LocalDataFlow.cs:49:30:49:30 | b | | LocalDataFlow.cs:49:30:49:30 | b | LocalDataFlow.cs:96:21:96:21 | access to parameter b | | LocalDataFlow.cs:52:13:52:34 | SSA def(sink0) | LocalDataFlow.cs:53:15:53:19 | access to local variable sink0 | @@ -422,6 +423,7 @@ | LocalDataFlow.cs:299:13:299:52 | SSA def(sink40) | LocalDataFlow.cs:300:15:300:20 | access to local variable sink40 | | LocalDataFlow.cs:299:22:299:52 | object creation of type Lazy | LocalDataFlow.cs:299:13:299:52 | SSA def(sink40) | | LocalDataFlow.cs:299:39:299:51 | [output] delegate creation of type Func | LocalDataFlow.cs:299:22:299:52 | object creation of type Lazy | +| LocalDataFlow.cs:299:39:299:51 | this access | LocalDataFlow.cs:309:42:309:57 | this access | | LocalDataFlow.cs:300:15:300:20 | access to local variable sink40 | LocalDataFlow.cs:301:22:301:27 | access to local variable sink40 | | LocalDataFlow.cs:301:13:301:33 | SSA def(sink41) | LocalDataFlow.cs:302:15:302:20 | access to local variable sink41 | | LocalDataFlow.cs:301:22:301:27 | access to local variable sink40 | LocalDataFlow.cs:301:22:301:33 | access to property Value | @@ -598,6 +600,8 @@ | LocalDataFlow.cs:429:18:429:30 | SSA def(sink72) | LocalDataFlow.cs:430:23:430:28 | access to local variable sink72 | | LocalDataFlow.cs:435:17:435:24 | access to local variable nonSink0 | LocalDataFlow.cs:437:18:437:33 | SSA def(nonSink17) | | LocalDataFlow.cs:437:18:437:33 | SSA def(nonSink17) | LocalDataFlow.cs:438:23:438:31 | access to local variable nonSink17 | +| LocalDataFlow.cs:458:28:458:30 | this | LocalDataFlow.cs:458:41:458:45 | this access | +| LocalDataFlow.cs:458:50:458:52 | this | LocalDataFlow.cs:458:56:458:60 | this access | | LocalDataFlow.cs:458:50:458:52 | value | LocalDataFlow.cs:458:50:458:52 | value | | LocalDataFlow.cs:458:50:458:52 | value | LocalDataFlow.cs:458:64:458:68 | access to parameter value | | LocalDataFlow.cs:464:41:464:47 | tainted | LocalDataFlow.cs:464:41:464:47 | tainted | @@ -605,6 +609,7 @@ | LocalDataFlow.cs:469:44:469:53 | nonTainted | LocalDataFlow.cs:469:44:469:53 | nonTainted | | LocalDataFlow.cs:469:44:469:53 | nonTainted | LocalDataFlow.cs:471:15:471:24 | access to parameter nonTainted | | SSA.cs:5:17:5:17 | SSA entry def(this.S) | SSA.cs:67:9:67:14 | access to field S | +| SSA.cs:5:17:5:17 | this | SSA.cs:67:9:67:12 | this access | | SSA.cs:5:26:5:32 | tainted | SSA.cs:5:26:5:32 | tainted | | SSA.cs:5:26:5:32 | tainted | SSA.cs:8:24:8:30 | access to parameter tainted | | SSA.cs:5:42:5:51 | nonTainted | SSA.cs:5:42:5:51 | nonTainted | @@ -679,20 +684,26 @@ | SSA.cs:59:23:59:30 | access to local variable ssaSink3 | SSA.cs:59:23:59:30 | SSA def(ssaSink3) | | SSA.cs:63:23:63:30 | SSA def(nonSink0) | SSA.cs:64:15:64:22 | access to local variable nonSink0 | | SSA.cs:63:23:63:30 | access to local variable nonSink0 | SSA.cs:63:23:63:30 | SSA def(nonSink0) | +| SSA.cs:67:9:67:12 | this access | SSA.cs:68:23:68:26 | this access | | SSA.cs:67:9:67:14 | access to field S | SSA.cs:68:23:68:28 | access to field S | | SSA.cs:67:9:67:38 | SSA def(this.S.SsaFieldSink0) | SSA.cs:68:23:68:28 | SSA qualifier def(this.S.SsaFieldSink0) | | SSA.cs:67:32:67:38 | access to parameter tainted | SSA.cs:67:9:67:38 | SSA def(this.S.SsaFieldSink0) | | SSA.cs:67:32:67:38 | access to parameter tainted | SSA.cs:77:20:77:26 | access to parameter tainted | +| SSA.cs:68:23:68:26 | this access | SSA.cs:69:15:69:18 | this access | | SSA.cs:68:23:68:28 | SSA def(this.S) | SSA.cs:69:15:69:20 | access to field S | | SSA.cs:68:23:68:28 | SSA qualifier def(this.S.SsaFieldSink0) | SSA.cs:69:15:69:34 | access to field SsaFieldSink0 | | SSA.cs:68:23:68:28 | access to field S | SSA.cs:68:23:68:28 | SSA def(this.S) | +| SSA.cs:69:15:69:18 | this access | SSA.cs:72:9:72:12 | this access | | SSA.cs:69:15:69:20 | access to field S | SSA.cs:72:9:72:14 | access to field S | +| SSA.cs:72:9:72:12 | this access | SSA.cs:73:23:73:26 | this access | | SSA.cs:72:9:72:14 | access to field S | SSA.cs:73:23:73:28 | access to field S | | SSA.cs:72:9:72:36 | SSA def(this.S.SsaFieldNonSink0) | SSA.cs:73:23:73:28 | SSA qualifier def(this.S.SsaFieldNonSink0) | | SSA.cs:72:35:72:36 | "" | SSA.cs:72:9:72:36 | SSA def(this.S.SsaFieldNonSink0) | +| SSA.cs:73:23:73:26 | this access | SSA.cs:74:15:74:18 | this access | | SSA.cs:73:23:73:28 | SSA def(this.S) | SSA.cs:74:15:74:20 | access to field S | | SSA.cs:73:23:73:28 | SSA qualifier def(this.S.SsaFieldNonSink0) | SSA.cs:74:15:74:37 | access to field SsaFieldNonSink0 | | SSA.cs:73:23:73:28 | access to field S | SSA.cs:73:23:73:28 | SSA def(this.S) | +| SSA.cs:74:15:74:18 | this access | SSA.cs:80:9:80:12 | this access | | SSA.cs:74:15:74:20 | access to field S | SSA.cs:80:9:80:14 | access to field S | | SSA.cs:77:9:77:26 | SSA def(nonSink0) | SSA.cs:78:21:78:28 | access to local variable nonSink0 | | SSA.cs:77:20:77:26 | access to parameter tainted | SSA.cs:77:9:77:26 | SSA def(nonSink0) | @@ -700,14 +711,20 @@ | SSA.cs:78:21:78:28 | SSA def(nonSink0) | SSA.cs:79:15:79:22 | access to local variable nonSink0 | | SSA.cs:79:15:79:22 | access to local variable nonSink0 | SSA.cs:104:24:104:31 | access to local variable nonSink0 | | SSA.cs:79:15:79:22 | access to local variable nonSink0 | SSA.cs:130:39:130:46 | access to local variable nonSink0 | +| SSA.cs:80:9:80:12 | this access | SSA.cs:81:21:81:24 | this access | | SSA.cs:80:9:80:14 | access to field S | SSA.cs:81:21:81:26 | access to field S | | SSA.cs:80:35:80:41 | access to parameter tainted | SSA.cs:83:35:83:41 | access to parameter tainted | +| SSA.cs:81:21:81:24 | this access | SSA.cs:82:15:82:18 | this access | | SSA.cs:81:21:81:26 | SSA def(this.S) | SSA.cs:82:15:82:20 | access to field S | | SSA.cs:81:21:81:26 | SSA qualifier def(this.S.SsaFieldNonSink0) | SSA.cs:82:15:82:37 | access to field SsaFieldNonSink0 | +| SSA.cs:82:15:82:18 | this access | SSA.cs:83:9:83:12 | this access | | SSA.cs:82:15:82:20 | access to field S | SSA.cs:83:9:83:14 | access to field S | +| SSA.cs:83:9:83:12 | this access | SSA.cs:84:9:84:14 | this access | | SSA.cs:83:35:83:41 | access to parameter tainted | SSA.cs:83:9:83:41 | SSA def(this.S.SsaFieldNonSink0) | | SSA.cs:84:9:84:14 | SSA call def(this.S) | SSA.cs:85:15:85:20 | access to field S | | SSA.cs:84:9:84:14 | SSA qualifier def(this.S.SsaFieldNonSink0) | SSA.cs:85:15:85:37 | access to field SsaFieldNonSink0 | +| SSA.cs:84:9:84:14 | this access | SSA.cs:85:15:85:18 | this access | +| SSA.cs:85:15:85:18 | this access | SSA.cs:114:9:114:12 | this access | | SSA.cs:85:15:85:20 | access to field S | SSA.cs:114:9:114:14 | access to field S | | SSA.cs:88:16:88:28 | SSA def(ssaSink4) | SSA.cs:97:9:97:32 | SSA phi(ssaSink4) | | SSA.cs:88:27:88:28 | "" | SSA.cs:88:16:88:28 | SSA def(ssaSink4) | @@ -741,6 +758,8 @@ | SSA.cs:110:9:110:32 | SSA phi(nonSink3) | SSA.cs:110:23:110:30 | access to local variable nonSink3 | | SSA.cs:110:23:110:30 | SSA def(nonSink3) | SSA.cs:111:15:111:22 | access to local variable nonSink3 | | SSA.cs:110:23:110:30 | access to local variable nonSink3 | SSA.cs:110:23:110:30 | SSA def(nonSink3) | +| SSA.cs:114:9:114:12 | this access | SSA.cs:117:13:117:16 | this access | +| SSA.cs:114:9:114:12 | this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:114:9:114:14 | access to field S | SSA.cs:117:13:117:18 | access to field S | | SSA.cs:114:9:114:14 | access to field S | SSA.cs:123:23:123:28 | access to field S | | SSA.cs:114:9:114:33 | SSA def(this.S.SsaFieldSink1) | SSA.cs:123:9:123:30 | SSA phi(this.S.SsaFieldSink1) | @@ -748,6 +767,8 @@ | SSA.cs:115:13:115:22 | access to parameter nonTainted | SSA.cs:118:17:118:26 | access to parameter nonTainted | | SSA.cs:115:13:115:22 | access to parameter nonTainted | SSA.cs:128:13:128:22 | access to parameter nonTainted | | SSA.cs:115:13:115:29 | access to property Length | SSA.cs:115:13:115:33 | ... > ... | +| SSA.cs:117:13:117:16 | this access | SSA.cs:119:21:119:24 | this access | +| SSA.cs:117:13:117:16 | this access | SSA.cs:121:21:121:24 | this access | | SSA.cs:117:13:117:18 | access to field S | SSA.cs:119:21:119:26 | access to field S | | SSA.cs:117:13:117:18 | access to field S | SSA.cs:121:21:121:26 | access to field S | | SSA.cs:117:13:117:43 | SSA def(this.S.SsaFieldSink1) | SSA.cs:119:21:119:40 | access to field SsaFieldSink1 | @@ -755,32 +776,43 @@ | SSA.cs:117:36:117:43 | access to local variable ssaSink0 | SSA.cs:117:13:117:43 | SSA def(this.S.SsaFieldSink1) | | SSA.cs:118:17:118:26 | access to parameter nonTainted | SSA.cs:128:13:128:22 | access to parameter nonTainted | | SSA.cs:118:17:118:33 | access to property Length | SSA.cs:118:17:118:37 | ... > ... | +| SSA.cs:119:21:119:24 | this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:119:21:119:26 | access to field S | SSA.cs:123:23:123:28 | access to field S | | SSA.cs:119:21:119:40 | access to field SsaFieldSink1 | SSA.cs:123:9:123:30 | SSA phi(this.S.SsaFieldSink1) | +| SSA.cs:121:21:121:24 | this access | SSA.cs:123:23:123:26 | this access | | SSA.cs:121:21:121:26 | access to field S | SSA.cs:123:23:123:28 | access to field S | | SSA.cs:121:21:121:40 | access to field SsaFieldSink1 | SSA.cs:123:9:123:30 | SSA phi(this.S.SsaFieldSink1) | | SSA.cs:123:9:123:30 | SSA phi(this.S.SsaFieldSink1) | SSA.cs:123:23:123:28 | SSA qualifier def(this.S.SsaFieldSink1) | +| SSA.cs:123:23:123:26 | this access | SSA.cs:124:15:124:18 | this access | | SSA.cs:123:23:123:28 | SSA def(this.S) | SSA.cs:124:15:124:20 | access to field S | | SSA.cs:123:23:123:28 | SSA qualifier def(this.S.SsaFieldSink1) | SSA.cs:124:15:124:34 | access to field SsaFieldSink1 | | SSA.cs:123:23:123:28 | access to field S | SSA.cs:123:23:123:28 | SSA def(this.S) | +| SSA.cs:124:15:124:18 | this access | SSA.cs:127:9:127:12 | this access | | SSA.cs:124:15:124:20 | access to field S | SSA.cs:127:9:127:14 | access to field S | +| SSA.cs:127:9:127:12 | this access | SSA.cs:130:13:130:16 | this access | +| SSA.cs:127:9:127:12 | this access | SSA.cs:136:23:136:26 | this access | | SSA.cs:127:9:127:14 | access to field S | SSA.cs:130:13:130:18 | access to field S | | SSA.cs:127:9:127:14 | access to field S | SSA.cs:136:23:136:28 | access to field S | | SSA.cs:127:9:127:36 | SSA def(this.S.SsaFieldNonSink0) | SSA.cs:136:9:136:30 | SSA phi(this.S.SsaFieldNonSink0) | | SSA.cs:127:35:127:36 | "" | SSA.cs:127:9:127:36 | SSA def(this.S.SsaFieldNonSink0) | | SSA.cs:128:13:128:22 | access to parameter nonTainted | SSA.cs:131:17:131:26 | access to parameter nonTainted | | SSA.cs:128:13:128:29 | access to property Length | SSA.cs:128:13:128:33 | ... > ... | +| SSA.cs:130:13:130:16 | this access | SSA.cs:132:21:132:24 | this access | +| SSA.cs:130:13:130:16 | this access | SSA.cs:134:21:134:24 | this access | | SSA.cs:130:13:130:18 | access to field S | SSA.cs:132:21:132:26 | access to field S | | SSA.cs:130:13:130:18 | access to field S | SSA.cs:134:21:134:26 | access to field S | | SSA.cs:130:13:130:46 | SSA def(this.S.SsaFieldNonSink0) | SSA.cs:132:21:132:43 | access to field SsaFieldNonSink0 | | SSA.cs:130:13:130:46 | SSA def(this.S.SsaFieldNonSink0) | SSA.cs:134:21:134:43 | access to field SsaFieldNonSink0 | | SSA.cs:130:39:130:46 | access to local variable nonSink0 | SSA.cs:130:13:130:46 | SSA def(this.S.SsaFieldNonSink0) | | SSA.cs:131:17:131:33 | access to property Length | SSA.cs:131:17:131:37 | ... > ... | +| SSA.cs:132:21:132:24 | this access | SSA.cs:136:23:136:26 | this access | | SSA.cs:132:21:132:26 | access to field S | SSA.cs:136:23:136:28 | access to field S | | SSA.cs:132:21:132:43 | access to field SsaFieldNonSink0 | SSA.cs:136:9:136:30 | SSA phi(this.S.SsaFieldNonSink0) | +| SSA.cs:134:21:134:24 | this access | SSA.cs:136:23:136:26 | this access | | SSA.cs:134:21:134:26 | access to field S | SSA.cs:136:23:136:28 | access to field S | | SSA.cs:134:21:134:43 | access to field SsaFieldNonSink0 | SSA.cs:136:9:136:30 | SSA phi(this.S.SsaFieldNonSink0) | | SSA.cs:136:9:136:30 | SSA phi(this.S.SsaFieldNonSink0) | SSA.cs:136:23:136:28 | SSA qualifier def(this.S.SsaFieldNonSink0) | +| SSA.cs:136:23:136:26 | this access | SSA.cs:137:15:137:18 | this access | | SSA.cs:136:23:136:28 | SSA def(this.S) | SSA.cs:137:15:137:20 | access to field S | | SSA.cs:136:23:136:28 | SSA qualifier def(this.S.SsaFieldNonSink0) | SSA.cs:137:15:137:37 | access to field SsaFieldNonSink0 | | SSA.cs:136:23:136:28 | access to field S | SSA.cs:136:23:136:28 | SSA def(this.S) | @@ -801,6 +833,7 @@ | SSA.cs:154:13:154:13 | access to parameter t | SSA.cs:155:25:155:25 | access to parameter t | | SSA.cs:155:25:155:25 | SSA def(t) | SSA.cs:152:17:152:28 | SSA phi(t) | | SSA.cs:155:25:155:25 | access to parameter t | SSA.cs:152:17:152:28 | SSA phi(t) | +| SSA.cs:166:10:166:13 | this | SSA.cs:166:19:166:22 | this access | | SSA.cs:168:22:168:28 | tainted | SSA.cs:168:22:168:28 | tainted | | SSA.cs:168:22:168:28 | tainted | SSA.cs:173:24:173:30 | access to parameter tainted | | SSA.cs:168:35:168:35 | i | SSA.cs:168:35:168:35 | i |