We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
Hey, I'm working with CBMC 5.95.1 and I noticed that CBMC does not add asserted conditions to the path conditions. For e.g.:
#include <assert.h> extern int __VERIFIER_nondet_int(void); int main() { int x = __VERIFIER_nondet_int(); assert(x < 0); assert(x <= 0); }
CBMC would report a warning about both assertions but there's actually no value for x that can trigger the second assertion.
The text was updated successfully, but these errors were encountered:
That's indeed true, see #5866: we might revisit this at some point, but until then please redefine the assert macro like this:
assert
#undef assert #define assert(C) __CPROVER_assert((C), "assertion"); __CPROVER_assume(C)
Sorry, something went wrong.
@salvadorer Just for interest, this is why they don't alter the path condition:
#2031 92b92d6
I'm still reasonably convinced this is the correct design decision.
Closing as this is documented behaviour.
No branches or pull requests
Hey,
I'm working with CBMC 5.95.1 and I noticed that CBMC does not add asserted conditions to the path conditions. For e.g.:
CBMC would report a warning about both assertions but there's actually no value for x that can trigger the second assertion.
The text was updated successfully, but these errors were encountered: