Module Cabscond

module Cabscond: sig .. end
Interface to be used during Cabs2cil

type cond = 
| And of cond * cond
| Or of cond * cond
| Not of cond
| Atom of Cil_types.exp
| Blob
type kind = 
| IF
| FOR
| WHILE
| DOWHILE
type info = {
   id : int;
   kind : kind;
   file : string;
   line : int;
   cond : cond;
}
val active : bool Pervasives.ref

Interface to be used during Cabs2cil
val push_condition : kind -> Cabs.cabsloc -> Cabs.expression -> bool
Call it when entering Cabs2cil.doCondition Return false if inactive.
val pop_condition : unit -> unit
Call it when exiting Cabs2cil.doCondition
val bind : Cabs.expression -> Cil_types.exp -> unit
Call it when constructing an ifChunk

Interface to be used after CIL
val lookup : Cil_types.exp -> info option
val pp_kind : Format.formatter -> kind -> unit
val pp_where : Format.formatter -> string * Cil_types.exp * cond -> unit
val pp_comment : Format.formatter -> Cil_types.stmt -> unit