Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e9a029c

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 4f57f37 commit e9a029c

9 files changed

Lines changed: 2427 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)