-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Diff-informed queries: phase 3 (non-trivial locations) #19957
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
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-informed
locally and in CI. Should create a follow-up issue.where
, or if it's good enough to overapproximate and just pass the--check-diff-informed
tests.