Frama-C Bug Tracking System

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000733Frama-CPlug-in > inoutpublic2011-02-20 19:162014-02-12 16:54
Reporteryakobowski 
Assigned Toyakobowski 
PrioritynormalSeverityminorReproducibilityalways
StatusacknowledgedResolutionopen 
PlatformOSOS Version
Product VersionFrama-C Carbon-20110201 
Target VersionFixed in Version 
Summary0000733: Invalid results in presence of pseudo-recursive calls in inout and from
DescriptionThe Inout and From plugins are apparently designed to handle "pseudo" recursive calls, ie. when the value analysis does not detect a recursive call, but the plugin see a circularity in the stacks of examined functions. However, they are all buggy, because of the way the results are cached.

Indeed, when a circularity is encountered, the analysis is stopped immediately. This means that the results for the first function in the cycle is correct, but not those for the intermediate functions.

This can be seen with the example file: the inputs (option -input) for function h2 should include x.
Additional InformationCommit 12050 has removed most of the warnings the plugins printed unnecessarily when those pseudo recursive calls were encountered, so the error can now be completely silent (however, even with the warnings the plugins were buggy, as they implied that the analysis was correct if the value analysis was happy).

I have some (quite obvious) suggestions for correcting the bug, but they are not very efficient wrt to time complexity. Suggestions are welcome.
TagsNo tags attached.
Attached Files? file icon recursion2.i [^] (239 bytes) 2011-02-20 19:16 [Show Content]

- Relationships

-  Notes
(0001527)
pascal (reporter)
2011-02-20 21:09

1/ I know.

2/ From my point of view any sort of recursion (that is, any cycle in the syntactic call graph) is unsupported in the value analysis and derived analyses. Perhaps I should assign the bug to you so that you feel free to do what's necessary (as long as you don't break what works for programs without recursion)?
(0001671)
yakobowski (manager)
2011-03-31 21:59

Bug remains in From and Operation_inputs plugins.

- Issue History
Date Modified Username Field Change
2011-02-20 19:16 yakobowski New Issue
2011-02-20 19:16 yakobowski Status new => assigned
2011-02-20 19:16 yakobowski Assigned To => pascal
2011-02-20 19:16 yakobowski File Added: recursion2.i
2011-02-20 21:09 pascal Note Added: 0001527
2011-02-22 01:08 yakobowski Assigned To pascal => yakobowski
2011-02-23 11:00 svn Checkin
2011-03-31 21:59 yakobowski Note Added: 0001671
2011-03-31 21:59 yakobowski Status assigned => acknowledged
2013-06-11 23:10 yakobowski Severity major => minor


Copyright © 2000 - 2017 MantisBT Team
Powered by Mantis Bugtracker