Some functions lose their formals after File.create_project_from_visitor
ID0001073: This issue was created automatically from Mantis Issue 1073. Further discussion may take place here.
Id | Project | Category | View | Due Date | Updated |
---|---|---|---|---|---|
ID0001073 | Frama-C | Kernel | public | 2012-01-27 | 2014-02-12 |
Reporter | Anne | Assigned To | virgile | Resolution | fixed |
Priority | normal | Severity | major | Reproducibility | have not tried |
Platform | - | OS | - | OS Version | - |
Product Version | Frama-C Nitrogen-20111001 | Target Version | - | Fixed in Version | Frama-C Oxygen-20120901 |
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 !).