statement contract apparently confuses parser
ID0002301: This issue was created automatically from Mantis Issue 2301. Further discussion may take place here.
Id | Project | Category | View | Due Date | Updated |
---|---|---|---|---|---|
ID0002301 | Frama-C | Plug-in > wp | public | 2017-05-11 | 2017-07-21 |
Reporter | Jochen | Assigned To | correnson | Resolution | open |
Priority | normal | Severity | crash | Reproducibility | always |
Platform | Phosphorus-20170501-beta1 | OS | xubuntu 16.04.1 | OS Version | - |
Product Version | - | Target Version | - | Fixed in Version | - |
Description :
Running "frama-c -wp assigns.c" on the attached program produces a warning:
assigns.c:12:[wp] warning: Missing assigns clause (assigns 'everything' instead)
The warning is unjustified since the loop in line 12 does have a "loop assigns" clauses, and loops don't use (plain) "assigns" clauses.
If the trivial assertion in line 9 is activated, the warning disappears, and everything is proven.
If instead the braces in line 5 and 7 are removed, Frama-c reports a crash (text see "Additional Information").
Additional Information :
Crash message:
[kernel] Parsing FRAMAC_SHARE/libc/__fc_builtin_for_normalization.i (no preprocessing) [kernel] Parsing assigns.c (with preprocessing) [wp] failure: Several assigns ? [kernel] Current source was: assigns.c:2 The full backtrace is: Raised at file "src/kernel_services/plugin_entry_points/log.ml", line 568, characters 30-31 Called from file "src/kernel_services/plugin_entry_points/log.ml", line 562, characters 9-16 Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 565, characters 15-16 Called from file "src/plugins/wp/wpStrategy.ml", line 470, characters 13-63 Called from file "src/plugins/wp/wpStrategy.ml", line 505, characters 8-34 Called from file "list.ml", line 73, characters 12-15 Called from file "src/plugins/wp/wpStrategy.ml", line 541, characters 2-34 Called from file "map.ml", line 168, characters 20-25 Called from file "map.ml", line 168, characters 10-18 Called from file "src/plugins/wp/wpAnnot.ml", line 1023, characters 2-39 Called from file "src/plugins/wp/wpAnnot.ml", line 1094, characters 15-41 Called from file "src/plugins/wp/wpAnnot.ml", line 1273, characters 14-39 Called from file "src/plugins/wp/wpAnnot.ml", line 1274, characters 9-22 Called from file "src/plugins/wp/wpAnnot.ml", line 1363, characters 2-47 Called from file "map.ml", line 168, characters 20-25 Called from file "src/plugins/wp/Generator.ml", line 136, characters 4-39 Called from file "src/plugins/wp/register.ml", line 654, characters 15-40 Called from file "src/libraries/stdlib/extlib.ml", line 299, characters 14-17 Re-raised at file "src/libraries/stdlib/extlib.ml", line 299, characters 47-48 Called from file "src/libraries/stdlib/extlib.ml", line 300, characters 2-12 Called from file "src/libraries/stdlib/extlib.ml", line 300, characters 2-12 Called from file "queue.ml", line 134, characters 6-20 Called from file "src/kernel_internals/runtime/boot.ml", line 37, characters 4-20 Called from file "src/kernel_services/cmdline_parameters/cmdline.ml", line 789, characters 2-9 Called from file "src/kernel_services/cmdline_parameters/cmdline.ml", line 819, characters 18-64 Called from file "src/kernel_services/cmdline_parameters/cmdline.ml", line 228, characters 4-8
Plug-in wp aborted: internal error.
Please report as 'crash' at http://bts.frama-c.com/.
Your Frama-C version is Phosphorus-20170501-beta1.
Note that a version and a backtrace alone often do not contain enough
information to understand the bug. Guidelines for reporting bugs are at:
http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:bug_reporting_guidelines