Skip to content

Commit 5fc36ce

Browse files
committed
C++: Local field flow using global library
This commit removes fields from the responsibilities of `FlowVar.qll`. The treatment of fields in that file was slow and imprecise. It then adds another copy of the shared global data flow library, used only to find local field flow, and it exposes that local field flow through `localFlow` and `localFlowStep`. This has a performance cost. It adds two cached stages to any query that uses `localFlow`: the stage from `DataFlowImplCommon`, which is shared with all queries that use global data flow, and a new stage just for `localFlowStep`.
1 parent d728f21 commit 5fc36ce

9 files changed

Lines changed: 1976 additions & 16 deletions

File tree

config/identical-files.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll",
1010
"cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll",
1111
"cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll",
12+
"cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll",
1213
"cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll",
1314
"cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll",
1415
"cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll",

0 commit comments

Comments
 (0)