expression "term!=term" is considered always a predicate, rather than (in some contexts) a term
ID0002197: This issue was created automatically from Mantis Issue 2197. Further discussion may take place here.
Id | Project | Category | View | Due Date | Updated |
---|---|---|---|---|---|
ID0002197 | Frama-C | Kernel > ACSL implementation | public | 2015-12-07 | 2015-12-07 |
Reporter | Jochen | Assigned To | virgile | Resolution | open |
Priority | normal | Severity | feature | Reproducibility | always |
Platform | Sodium-20150201 | OS | - | OS Version | xubuntu14.04 |
Product Version | - | Target Version | - | Fixed in Version | - |
Description :
Running "frama-c 485.c -no-unicode" on the attached program results in an error message
485.c:2:[kernel] user error: comparison of incompatible types: integer and boolean in annotation.
However, according to the manual "acsl-implementation-Sodium-20150201.pdf", p.16-17, fig.2.1, 2.2, the ACSL grammar allows for a derivation
pred ------> term rel-op term ------> 2 > ( term ) ------> 2 > ( term bin-op term ) ------> 2 > ( id != id ) ------> 2 > (x != x)
The remark on consecutive comparison operators (p.18) shouldn't apply due to the additional parantheses around "x!=x".
Additional Information :
(The file was boiled down from a file generated by a first version of "acslsmith", an adaption of "csmith".)