Diff-informed queries: phase 3 (non-trivial locations)#19957
Diff-informed queries: phase 3 (non-trivial locations)#19957d10c wants to merge 96 commits intogithub:mainfrom
Conversation
ff3a4b9 to
95fe462
Compare
aff62c2 to
6d0ae3a
Compare
c871f5e to
276c7f0
Compare
cb2db2f to
c70036d
Compare
java/ql/lib/semmle/code/java/security/TempDirLocalInformationDisclosureQuery.qll
Fixed
Show fixed
Hide fixed
c70036d to
08c4cc2
Compare
857b583 to
3e3e856
Compare
|
DCA results: some slowdowns on Python, but they don't seem to be related to these changes. Java had some timeout-related failures, so I'll restart that. Overall, no negative performance impact on empty-diff. |
443655d to
5112a9c
Compare
5112a9c to
085720a
Compare
|
This is a very large diff for a single PR. Would it be a lot of extra work to split this into one PR per language? Then it will also be possible to merge a bit at the time (there might be issues with getting DCA running successfully for this many languages and it will be a shame to block merging changes while waiting for DCA/review for other languages). |
|
Sure, I can split it off into separate PRs per language. |
Thank you - that will be really appreciated. You also structured the commits very nicely, so it seems doable 😄 |
This PR enables diff-informed mode on queries that select a location other than dataflow source or sink. This entails adding a non-trivial location override that returns the locations that are actually selected.
Prior work includes PRs like #19663, #19759, and #19817. This PR uses the same patch script as those PRs to find candidate queries to convert to diff-enabled. This is the final step in mass-enabling diff-informed queries on all the languages.
Commit-by-commit reviewing is recommended.
Potentially tricky cases:
--check-diff-informedlocally and in CI. Should create a follow-up issue.where, or if it's good enough to overapproximate and just pass the--check-diff-informedtests.