Skip to content

Commit d02a50a

Browse files
authored
Merge pull request github#10817 from github/mathiasvp/replace-ast-with-ir-use-usedataflow
C++: Replace AST with IR use-use dataflow
2 parents 3ff60e0 + 8aa9207 commit d02a50a

File tree

316 files changed

+10888
-24073
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

316 files changed

+10888
-24073
lines changed

config/identical-files.json

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"java/ql/lib/semmle/code/java/dataflow/internal/DataFlow.qll",
44
"cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlow.qll",
55
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlow.qll",
6-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlow.qll",
76
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlow.qll",
87
"go/ql/lib/semmle/go/dataflow/internal/DataFlow.qll",
98
"python/ql/lib/semmle/python/dataflow/new/internal/DataFlow.qll",
@@ -14,7 +13,6 @@
1413
"java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll",
1514
"cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll",
1615
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll",
17-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll",
1816
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll",
1917
"go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll",
2018
"python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll",
@@ -37,10 +35,6 @@
3735
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll",
3836
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll",
3937
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll",
40-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl1.qll",
41-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll",
42-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll",
43-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll",
4438
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl1.qll",
4539
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll",
4640
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll",
@@ -65,7 +59,6 @@
6559
"java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplCommon.qll",
6660
"cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplCommon.qll",
6761
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll",
68-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImplCommon.qll",
6962
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplCommon.qll",
7063
"go/ql/lib/semmle/go/dataflow/internal/DataFlowImplCommon.qll",
7164
"python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplCommon.qll",
@@ -75,7 +68,6 @@
7568
"TaintTracking Java/C++/C#/Go/Python/Ruby/Swift": [
7669
"cpp/ql/lib/semmle/code/cpp/dataflow/internal/tainttracking1/TaintTracking.qll",
7770
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/tainttracking1/TaintTracking.qll",
78-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/tainttracking1/TaintTracking.qll",
7971
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/tainttracking1/TaintTracking.qll",
8072
"go/ql/lib/semmle/go/dataflow/internal/tainttracking1/TaintTracking.qll",
8173
"java/ql/lib/semmle/code/java/dataflow/internal/tainttracking1/TaintTracking.qll",
@@ -89,9 +81,6 @@
8981
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/tainttracking1/TaintTrackingImpl.qll",
9082
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/tainttracking2/TaintTrackingImpl.qll",
9183
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/tainttracking3/TaintTrackingImpl.qll",
92-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/tainttracking1/TaintTrackingImpl.qll",
93-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/tainttracking2/TaintTrackingImpl.qll",
94-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/tainttracking3/TaintTrackingImpl.qll",
9584
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/tainttracking1/TaintTrackingImpl.qll",
9685
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/tainttracking2/TaintTrackingImpl.qll",
9786
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/tainttracking3/TaintTrackingImpl.qll",
@@ -113,7 +102,6 @@
113102
"java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplConsistency.qll",
114103
"cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplConsistency.qll",
115104
"cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImplConsistency.qll",
116-
"cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImplConsistency.qll",
117105
"csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplConsistency.qll",
118106
"python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImplConsistency.qll",
119107
"ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplConsistency.qll",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: breaking
3+
---
4+
* The `semmle.code.cpp.commons.Buffer` and `semmle.code.cpp.commons.NullTermination` libraries no longer expose `semmle.code.cpp.dataflow.DataFlow`. Please import `semmle.code.cpp.dataflow.DataFlow` directly.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: deprecated
3+
---
4+
* The `WriteConfig` taint tracking configuration has been deprecated. Please use `WriteFlow`.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
category: majorAnalysis
3+
---
4+
* A new C/C++ dataflow library (`semmle.code.cpp.dataflow.new.DataFlow`) has been added.
5+
The new library behaves much more like the dataflow library of other CodeQL supported
6+
languages by following use-use dataflow paths instead of def-use dataflow paths.
7+
The new library also better supports dataflow through indirections, and new predicates
8+
such as `Node::asIndirectExpr` have been added to facilitate working with indirections.
9+
10+
The `semmle.code.cpp.ir.dataflow.DataFlow` library is now identical to the new
11+
`semmle.code.cpp.dataflow.new.DataFlow` library.

cpp/ql/lib/experimental/semmle/code/cpp/dataflow/ProductFlow.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import experimental.semmle.code.cpp.ir.dataflow.DataFlow
2-
import experimental.semmle.code.cpp.ir.dataflow.DataFlow2
1+
import semmle.code.cpp.ir.dataflow.DataFlow
2+
import semmle.code.cpp.ir.dataflow.DataFlow2
33

44
module ProductFlow {
55
abstract class Configuration extends string {

cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/ResolveCall.qll

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)