Merge pull request #15853 from hvitved/dataflow/get-location

Data flow: Replace `hasLocationInfo` with `getLocation`
This commit is contained in:
Tom Hvitved
2024-03-18 20:21:46 +01:00
committed by GitHub
96 changed files with 419 additions and 277 deletions

View File

@@ -5,6 +5,7 @@
module DataFlow {
private import internal.DataFlowImplSpecific
private import codeql.dataflow.DataFlow
import DataFlowMake<SwiftDataFlow>
private import codeql.swift.elements.Location
import DataFlowMake<Location, SwiftDataFlow>
import internal.DataFlowImpl1
}

View File

@@ -7,6 +7,7 @@ module TaintTracking {
private import codeql.swift.dataflow.internal.DataFlowImplSpecific
private import codeql.swift.dataflow.internal.TaintTrackingImplSpecific
private import codeql.dataflow.TaintTracking
import TaintFlowMake<SwiftDataFlow, SwiftTaintTracking>
private import codeql.swift.elements.Location
import TaintFlowMake<Location, SwiftDataFlow, SwiftTaintTracking>
import codeql.swift.dataflow.internal.tainttracking1.TaintTrackingImpl
}

View File

@@ -1,3 +1,4 @@
private import DataFlowImplSpecific
private import codeql.dataflow.internal.DataFlowImpl
import MakeImpl<SwiftDataFlow>
private import codeql.swift.elements.Location
import MakeImpl<Location, SwiftDataFlow>

View File

@@ -1,3 +1,4 @@
private import DataFlowImplSpecific
private import codeql.dataflow.internal.DataFlowImplCommon
import MakeImplCommon<SwiftDataFlow>
import codeql.swift.elements.Location
import MakeImplCommon<Location, SwiftDataFlow>

View File

@@ -8,6 +8,6 @@ private import DataFlowImplSpecific
private import TaintTrackingImplSpecific
private import codeql.dataflow.internal.DataFlowImplConsistency
private module Input implements InputSig<SwiftDataFlow> { }
private module Input implements InputSig<Location, SwiftDataFlow> { }
module Consistency = MakeConsistency<SwiftDataFlow, SwiftTaintTracking, Input>;
module Consistency = MakeConsistency<Location, SwiftDataFlow, SwiftTaintTracking, Input>;

View File

@@ -15,7 +15,7 @@ module Public {
import DataFlowPublic
}
module SwiftDataFlow implements InputSig {
module SwiftDataFlow implements InputSig<Swift::Location> {
import Private
import Public

View File

@@ -26,7 +26,7 @@ class Node extends TNode {
* For more information, see
* [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
*/
predicate hasLocationInfo(
deprecated predicate hasLocationInfo(
string filepath, int startline, int startcolumn, int endline, int endcolumn
) {
this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)

View File

@@ -11,7 +11,7 @@ private import DataFlowImplSpecific::Public
private import DataFlowImplCommon
private import codeql.swift.dataflow.ExternalFlow
module Input implements InputSig<DataFlowImplSpecific::SwiftDataFlow> {
module Input implements InputSig<Location, DataFlowImplSpecific::SwiftDataFlow> {
class SummarizedCallableBase = Function;
ArgumentPosition callbackSelfParameterPosition() { result instanceof ThisArgumentPosition }
@@ -102,14 +102,14 @@ module Input implements InputSig<DataFlowImplSpecific::SwiftDataFlow> {
}
}
private import Make<DataFlowImplSpecific::SwiftDataFlow, Input> as Impl
private import Make<Location, DataFlowImplSpecific::SwiftDataFlow, Input> as Impl
private module StepsInput implements Impl::Private::StepsInputSig {
DataFlowCall getACall(Public::SummarizedCallable sc) { result.asCall().getStaticTarget() = sc }
}
module SourceSinkInterpretationInput implements
Impl::Private::External::SourceSinkInterpretationInputSig<Location>
Impl::Private::External::SourceSinkInterpretationInputSig
{
class Element = AstNode;
@@ -222,7 +222,7 @@ module Private {
module External {
import Impl::Private::External
import Impl::Private::External::SourceSinkInterpretation<Location, SourceSinkInterpretationInput>
import Impl::Private::External::SourceSinkInterpretation<SourceSinkInterpretationInput>
}
/**

View File

@@ -4,8 +4,9 @@
private import codeql.dataflow.TaintTracking
private import DataFlowImplSpecific
private import codeql.swift.elements.Location
module SwiftTaintTracking implements InputSig<SwiftDataFlow> {
module SwiftTaintTracking implements InputSig<Location, SwiftDataFlow> {
import TaintTrackingPrivate
import TaintTrackingPublic
}