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

Add new optional flags for the cprover contracts library. #224

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

remi-delmas-3000
Copy link
Contributor

Description of changes:

  • defining DFCC_DEBUG_LIB in proof makefiles activates debug asserts in cprover_contracts.c
  • defining DFCC_SIMPLE_INVALID_POINTER_MODEL in proof makefiles removes offset nondeterminism for invalid pointers produced in failure paths of the __CPROVER_is_fresh predicate. Mitigates some proof performance issues, but is possibly unsound due to reduced nondeterminism.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

- --dfcc-debug-lib activates debug asserts in cprover_contracts.c
- --dfcc-simple-invalid-pointer-model removes offset nondeterminism
 for invalid pointers produced in failure paths of the __CPROVER_is_fresh
 predicate. Mitigates some proof performance issues, but is possibly unsound
 due to reduced nondeterminism.
#
# Removes offset nondeterminism for invalid pointers created in failure paths
# of the __CPROVER_is_fresh predicate. Improves performance for some proofs.
# Unsound because of reduced nondeterminism.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a way that we make this more clear to users? Maybe add unsound to the name of the flag? Does CBMC emit warnings when this flag is used? Is there a PR or GitHub issue link that we could add here?

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.

2 participants