Skip to content

Unsound transformation of ACSL annotations

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


Id Project Category View Due Date Updated
ID0001469 Frama-C Kernel public 2013-08-21 2014-03-13
Reporter pascal Assigned To virgile Resolution fixed
Priority normal Severity major Reproducibility always
Platform - OS - OS Version -
Product Version - Target Version - Fixed in Version Frama-C Neon-20140301

Description :

Test in SVN 23392: tests/misc/logic_ptr_cast.i

Obtained result:

[value] Called Frama_C_show_each({{ &t + {0; 4; 8; 12; 16; 20; 24; 28} }}) ... /*@ assert ((((((p == (int *)t || p == (int *)(&t[1])) || p == (int *)(&t[2])) || p == (int *)(&t[3])) || p == (int *)(&t[4])) || p == (int *)(&t[5])) || p == (int *)(&t[6])) || p == (int *)(&t[7]); */

Expected result:

[value] Called Frama_C_show_each({{ &t + {0; 1; 2; 3; 4; 5; 6; 7} }})

and the same assert as the one written in the program.

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