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

Reply via email to