Skip to content

Incorrect typing of term conditional over floats

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


Id Project Category View Due Date Updated
ID0001309 Frama-C Kernel > ACSL implementation public 2012-11-19 2014-02-12
Reporter signoles Assigned To virgile Resolution fixed
Priority normal Severity minor Reproducibility always
Platform - OS - OS Version -
Product Version - Target Version - Fixed in Version Frama-C Fluorine-20130401

Description :

void foo(int c) { float f = 1.0; /*@ assert 0.0 <= (c ? f : 2.0); */ }

In this example, both terms f and 2.0 in the conditional must get type Real. That is not the case. You can see that by running the attached script on this file: frama-c -load-script test.ml test.i IF ????? float : ?

Attachments

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