-
Notifications
You must be signed in to change notification settings - Fork 62
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
Heapster: duplicate read memblocks #1505
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…time of a permission
…ed when they are used
…o duplicate read-only memblock permissions when they are used by a proof, so that Rust shared references can be duplicated in code; updated recombinePerm to handle this possibility by dropping redundant memblock perms or part of memblock perms that are redundant; also updated implEndLifetimeM to drop conjuncts that are relative to the just-ended lifetime
…ing Rust reference duplication
…termined variables as part of simplifying them, in case they contain non-determined variables that are provably equal to determined ones
m-yac
approved these changes
Nov 11, 2021
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything looks good to me!
m-yac
added
the
subsystem: heapster
Issues specifically related to memory verification using Heapster
label
Nov 11, 2021
eddywestbrook
added
the
PR: ready to merge
Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run
label
Nov 11, 2021
…well as logic to drop redundant fields when they are recombined
…r; also added a case to simplify1PermForDetVars to generalize eq(llvmword e) perms when e has undetermined vars
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
PR: ready to merge
Magic flag for pull requests to ask Mergify to merge given an approval and a successful CI run
subsystem: heapster
Issues specifically related to memory verification using Heapster
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR changes the implication prover (specifically in
proveVarLLVMBlocks
) to duplicate read-onlymemblock
permissions when they are used by a proof, so that Rust shared references can be duplicated in code. As part of supporting this change, this PR also:recombinePerm
to handle this possibility by dropping redundantmemblock
perms or parts ofmemblock
perms that are redundantimplEndLifetimeM
to drop conjuncts that are relative to the just-ended lifetime, which could cause therecombinePerm
change to drop necessarymemblock
perms in favor ofmemblock
perms whose lifetimes have endeddouble_dup_ref
function to the rust_data example to exercise type-checking Rust reference duplicationsimplifyPermsForDetVars
to cast the permissions on determined variables as part of simplifying them, in case they contain non-determined variables that are provably equal to determined ones