int -> integer -> real
ID0000117: This issue was created automatically from Mantis Issue 117. Further discussion may take place here.
Id | Project | Category | View | Due Date | Updated |
---|---|---|---|---|---|
ID0000117 | Frama-C | Kernel | public | 2009-06-05 | 2009-06-23 |
Reporter | sboldo | Assigned To | virgile | Resolution | fixed |
Priority | normal | Severity | major | Reproducibility | always |
Platform | - | OS | - | OS Version | - |
Product Version | Frama-C GIT, precise the release id | Target Version | - | Fixed in Version | Frama-C Beryllium-20090601-beta1 |
Description :
From ACSL, I assume that "C integral types char , short , int and long , signed or unsigned, are all subtypes of type integer ; integer is itself a subtype of type real ;"
Therefore int is a subtype of real. But it does not work in practice:
int i; /*@ loop invariant C== \pow(2., i) */
\pow takes 2 real numbers. This annotation is refused by the message:
Error during analysis of annotation: invalid implicit conversion from int to real