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 covers the specification improvements requested in #91.
The
DIRECT functions:
field now works properly - as an example, the following will parse correctly:DIRECT functions: gamma_load32, gamma_load8, bvule64, bvult64, bvuge64, bvsub64, memory_load128_le, zero_extend64_32, sign_extend64_32
It is not really feasible to create instantiate all possible helper functions due to the very large possible numbers of sizes for some operations, and this approach is ok for now as the DIRECT functions is just a temporary measure until we have a more sophisticated specifications system.
It is now possible to manually specify variables that should be in a procedure's modifies clause in a specification. You do not need to specify
Gamma_
variables separately. For example, the following will add the global variables mem and R0 to the modifies clause of get_secret() and correctly propagate this through to any procedures that call get_secret():You do not need to specify the entire modifies clause, just variables that you want to add to it.
Boogie global variables that were modified by a stubbed out PLT procedure are also now properly added to the modifies clause of those procedures (in practice this is usually just R16 and R17).