Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Integrate PDGs created by Flowistry (#119)
## What Changed? - Data and control flow graph construction moves into the Flowistry crate. - Removes `df`, inlining logic and the algebra. - Entails an update of the rustc toolchain (to achieve parity with flowistry). - Graph contains all program locations, not just function calls. - Control flow is non-transitive - The PDG now tracks individual places instead of abstract function arguments. This improves field sensitivity across function calls. - Forge output is gone ## Why Does It Need To? Field sensitivity is now handled as the initial analysis constructs the PDG and in fewer lines of code. ## Caveats At the time of this merge, the following regressions in the PDG have not been fixed yet - willcrichton/flowistry#95 - willcrichton/flowistry#94 - willcrichton/flowistry#93 - And while Will fixed the strong updates willcrichton/flowistry#90 the second issue mentioned there is still present. ## Checklist - [x] Above description has been filled out so that upon quash merge we have a good record of what changed. - [x] New functions, methods, types are documented. Old documentation is updated if necessary - [ ] Documentation in Notion has been updated - [ ] Tests for new behaviors are provided - [ ] New test suites (if any) ave been added to the CI tests (in `.github/workflows/rust.yml`) either as compiler test or integration test. *Or* justification for their omission from CI has been provided in this PR description.
- Loading branch information