C#: Fix perf.

This commit is contained in:
Anders Schack-Mulligen
2026-04-08 10:25:02 +02:00
parent 371bc3012e
commit 1d9c0ae388
2 changed files with 9 additions and 2 deletions

View File

@@ -133,12 +133,14 @@ AssignableDefinitionNode assignableDefinitionNode(AssignableDefinition def) {
predicate localFlowStep = localFlowStepImpl/2;
private predicate localFlowStepPlus(Node source, Node sink) = fastTC(localFlowStep/2)(source, sink)
/**
* Holds if data flows from `source` to `sink` in zero or more local
* (intra-procedural) steps.
*/
pragma[inline]
predicate localFlow(Node source, Node sink) { localFlowStep*(source, sink) }
predicate localFlow(Node source, Node sink) { localFlowStepPlus(source, sink) or source = sink }
/**
* Holds if data can flow from `e1` to `e2` in zero or more

View File

@@ -1,12 +1,17 @@
private import csharp
private import TaintTrackingPrivate
private predicate localTaintStepPlus(DataFlow::Node source, DataFlow::Node sink) =
fastTC(localTaintStep/2)(source, sink)
/**
* Holds if taint propagates from `source` to `sink` in zero or more local
* (intra-procedural) steps.
*/
pragma[inline]
predicate localTaint(DataFlow::Node source, DataFlow::Node sink) { localTaintStep*(source, sink) }
predicate localTaint(DataFlow::Node source, DataFlow::Node sink) {
localTaintStepPlus(source, sink) or source = sink
}
/**
* Holds if taint can flow from `e1` to `e2` in zero or more