|View Issue Details [ Jump to Notes ] [ Related Changesets ] ||[ Issue History ] [ Print ] |
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001073||Frama-C||Kernel||public||2012-01-27 13:15||2014-02-12 16:59|
|Assigned To||virgile|| |
|Priority||normal||Severity||major||Reproducibility||have not tried|
|Product Version||Frama-C Nitrogen-20111001|| |
|Target Version||Fixed in Version||Frama-C Oxygen-20120901|| |
|Summary||0001073: Some functions lose their formals after File.create_project_from_visitor|
|Description||When a function is defined but not declared, it loses its formal arguments when creating a new project with [File.create_project_from_visitor]. |
The problem is that [Cil.setFormalsDecl] is not called for these functions in the generated project.
|Additional Information||A simple way to experiment is to use Filter with a parameter that makes everything visible (I have sent such a mini-plug-in to Virgile and Boris). |
In the generated project, we can see with [-then-on newproj -print] that these functions have lost their formals.
Moreover, [Cil.getFormalsDecl fundec.svar] raises Not_found on these [fundec].
I haven't found where this should be fixed (File ? Globals.Functions ? ...), but a workaround is to call [Cil.setFormalsDecl] afterward on such functions (ugly, but working !).
|Tags||No tags attached.|