Skip to content

Translation of abrupt clause into assert do not take 'for :' clause into account

ID0001632: This issue was created automatically from Mantis Issue 1632. Further discussion may take place here.


Id Project Category View Due Date Updated
ID0001632 Frama-C Kernel > ACSL implementation public 2014-01-27 2014-10-29
Reporter virgile Assigned To virgile Resolution open
Priority low Severity minor Reproducibility always
Platform - OS - OS Version -
Product Version Frama-C GIT, precise the release id Target Version - Fixed in Version -

Description :

In the program written given below, the returns clause is translated into two assert that are not related to the foo behavior, resulting in an unprovable assertion in the else branch.

Steps To Reproduce :

/*@ behavior foo: assumes a == 0; / int foo(int a) { /@ for foo: returns \result == 0; */ { if (a==0) { return 0; } else return 2; } }

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information