C#: Remove splitting-awareness from data flow.#21473
C#: Remove splitting-awareness from data flow.#21473aschackmull merged 10 commits intogithub:mainfrom
Conversation
59e0041 to
591f9d7
Compare
There was a problem hiding this comment.
Pull request overview
This PR removes the C#-specific “splitting-aware” control-flow reachability layer previously used to constrain local data-flow/taint steps, simplifying the internal C# data-flow implementation now that splitting is largely gone.
Changes:
- Deleted
dataflow/internal/ControlFlowReachability.qlland removed its imports/uses across internal data-flow and taint tracking. - Replaced reachability-configuration–based stepping with direct local step predicates and simplified reverse post-update handling.
- Updated
config/identical-files.jsonto drop the “C# ControlFlowReachability” identical-files group.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll | Removes dependency on splitting-aware reachability and simplifies local taint expression stepping and post-update reverse steps. |
| csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll | Removes reachability configuration scaffolding; refactors local flow/argument/store/read/lambda logic to not rely on splitting-aware reachability. |
| csharp/ql/lib/semmle/code/csharp/dataflow/internal/ControlFlowReachability.qll | Deletes the splitting-aware control-flow reachability helper module used by internal data-flow. |
| csharp/ql/consistency-queries/DataFlowConsistency.ql | Updates post-update node handling to match the refactored LocalFlow reverse-step API. |
| config/identical-files.json | Removes the identical-files entry tying the deleted file to its rangeanalysis counterpart. |
You can also share your feedback on Copilot code review. Take the survey.
591f9d7 to
e7edf15
Compare
hvitved
left a comment
There was a problem hiding this comment.
LGTM (assuming CI is happy); nice simplification 🎉 DCA reports a slowdown on efcore-binlog; did you investigate?
I did not, actually, since stage timings indicate that the slowdown is in |
Now that splitting has been (almost) eradicated from C#, the code that makes C# data flow splitting-aware has become superfluous.