Skip to content

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 !).

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information