Skip to content
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

[Civl] Fix Lheap and add Lmap #825

Merged
merged 5 commits into from
Dec 10, 2023
Merged

[Civl] Fix Lheap and add Lmap #825

merged 5 commits into from
Dec 10, 2023

Conversation

shazqadeer
Copy link
Contributor

@shazqadeer shazqadeer commented Dec 10, 2023

This PR has two goals.

First, fix the soundness of nested Lheap accesses. Specifically, Lheap occurrences must be erasable so the only operations allowed are the primitives, reads, and writes. Additionally, all reads and writes must be guarded by the boundary checks. This PR addresses all this systematically disallowing reads anywhere else except assignments (so that instrumenting the boundary checks become relatively easy).

Second, a parallel type to Lheap called Lmap is added. Type checking for Lmap builds on top of the type checking for Lheap.

@shazqadeer shazqadeer merged commit 645dd8d into master Dec 10, 2023
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant