On Thu, Feb 28, 2013 at 04:26:21PM +0100, Mauro Baluda wrote: > With the purpose of building an interprocedural CFG I would like to be > able to have a separate sid for every function call > If I have a sequence of calls a();b(); they appear in the same stmt of > kind Instr, can I split an Instr into a sequence of Instr?
Sure. You can for instance write a visitor with a method vstmt like: method vstmt s = match s.skind with | Instr l -> let l' = List.map (fun i -> mkStmt (Instr [i])) l in (* in-place modification instead of replacement by ChangeTo because this is a vstmt, which could be referenced by a Goto *) s.skind <- Block (mkBlock l'); SkipChildren | _ -> DoChildren Best regards, -- Gabriel ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb _______________________________________________ CIL-users mailing list CIL-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cil-users