Skip to content

different translation of casted constants in program-code and in assertion

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


Id Project Category View Due Date Updated
ID0000433 Frama-C Plug-in > jessie public 2010-03-22 2010-03-23
Reporter Jochen Assigned To virgile Resolution open
Priority normal Severity tweak Reproducibility always
Platform - OS - OS Version -
Product Version Frama-C Beryllium-20090902 Target Version - Fixed in Version -

Description :

In the attached file, "my_const" is translated to "1024" in line 8 (C-code), but to "integer_of_int32(int32_of_integer(1024))" in line 9 (Acsl-code).

As a consequence, Simplify is unable to prove the trivial-looking assertion in line 9 (it seems to lack a rule like "integer_of_int32(int32_of_integer(x)) <== -maxInt <= x <= +maxInt").

When I remove the cast in line 4, jessie outputs no proof obligation at all, which is (consistent with) what I expected.

Attachments

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