Hi, On Wed, Jul 21, 2010 at 02:55:48PM +0800, haihao shen wrote: > let d_cfgedge (src) () (dest) = > match src.skind with > | If (_, tb, fb, _) -> > (if (List.mem dest tb.bstmts) then > dprintf "%a -> %a [label=\"true\"]" > d_cfgnodename src > d_cfgnodename dest > else if (List.mem dest fb.bstmts) then > dprintf "%a -> %a [label=\"false\"]" > d_cfgnodename src > d_cfgnodename dest > else > dprintf "%a -> %a [label=\"true$\"]"(*true likely, note that no false > likely!!!*) > d_cfgnodename src > d_cfgnodename dest); > | _ -> dprintf "%a -> %a" > d_cfgnodename src > d_cfgnodename dest
You probably want to use List.memq (physical identity) rather than List.mem. Except if you copy some statements during your transformations, but this is bad practice in CIL and should be avoided as much as possible. If you still have problems, send a minimal exemple here (e.g. the code of the C function where the highlighted code is hit). Regards, -- Gabriel Kerneis ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ CIL-users mailing list CIL-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cil-users