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

Changes required by the new dynamic frame condition checking system #145

Open
remi-delmas-3000 opened this issue Nov 10, 2022 · 0 comments
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@remi-delmas-3000
Copy link
Contributor

Making the new goto-instrument contracts system available to users (https://github.com/diffblue/cbmc/pull/) require adaptations to the proof build process.

Initially, we would like to allow using the existing build process, and use a new one by setting the USE_DFCC environment variable to 1 (DFCC is short for Dynamic Drame Condition Checking).

When USE_DFCC is set the new build steps should be:

  • build and link project and proof sources as usual
  • call goto-instrument with function pointer restrictions switches
  • call goto-instrument with CPROVER library configuration flags (such as malloc failure modes or --string-abstraction), proof harness identifier, function contract replacement switches, function contract checking switches (and in the future, loop contracts switches);
  • call goto-instrument with loop unrolling directives for both user-defined loops and loops found in the CPROVER library (will unroll any remaining loops not replaced by loop contracts, assigns clause instrumentation scales automatically)
  • call cbmc with switches for checks, without --unwind 1. Removing the unwind bound is needed so that all loops introduced by dynamic frame condition checking can be dynamically unwound to completion during SymEx.
@remi-delmas-3000 remi-delmas-3000 added enhancement New feature or request help wanted Extra attention is needed labels Nov 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants