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

Reply via email to