Thanks for the help. For the record here is the complete code with
typos fixed. I also switched to default not apply it and only enable
it when doing the ar pass with cilly on the merged code.

(* Convert all global definitions/declarations into static
 *)
open Cil
open Pretty

class makeStaticVisitor = object(self)
  inherit nopCilVisitor
        
  method vglob = function
        | GVarDecl (vi, _)
        | GVar (vi, _, _)
        | GFun ({ svar = vi }, _) -> begin
                vi.vstorage <- Static;
                SkipChildren
          end
        | _ -> SkipChildren
end

let feature : featureDescr =
  { fd_name = "makeStatic";
    fd_enabled = ref false;
    fd_description = "change storage to static for globals" ;
    fd_extraopt = [];
    fd_doit = (fun f -> visitCilFileSameGlobals(new makeStaticVisitor) f);
    fd_post_check = true;
  }

Regards,
 Harald

------------------------------------------------------------------------------
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second 
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
_______________________________________________
CIL-users mailing list
CIL-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cil-users

Reply via email to