sig
  module UD :
    sig
      module VS :
        sig
          type elt = Cil_datatype.Varinfo.t
          type t = Cil_datatype.Varinfo.Set.t
          val empty : t
          val is_empty : t -> bool
          val mem : elt -> t -> bool
          val add : elt -> t -> t
          val singleton : elt -> t
          val remove : elt -> t -> t
          val union : t -> t -> t
          val inter : t -> t -> t
          val diff : t -> t -> t
          val subset : t -> t -> bool
          val iter : (elt -> unit) -> t -> unit
          val fold : (elt -> '-> 'a) -> t -> '-> 'a
          val for_all : (elt -> bool) -> t -> bool
          val exists : (elt -> bool) -> t -> bool
          val filter : (elt -> bool) -> t -> t
          val partition : (elt -> bool) -> t -> t * t
          val cardinal : t -> int
          val elements : t -> elt list
          val choose : t -> elt
          val split : elt -> t -> t * bool * t
          val find : elt -> t -> elt
          val of_list : elt list -> t
          val min_elt : t -> elt
          val max_elt : t -> elt
          val nearest_elt_le : elt -> t -> elt
          val nearest_elt_ge : elt -> t -> elt
          val ty : t Type.t
          val name : string
          val descr : t Descr.t
          val packed_descr : Structural_descr.pack
          val reprs : t list
          val equal : t -> t -> bool
          val compare : t -> t -> int
          val hash : t -> int
          val pretty_code : Format.formatter -> t -> unit
          val internal_pretty_code :
            Type.precedence -> Format.formatter -> t -> unit
          val pretty : Format.formatter -> t -> unit
          val varname : t -> string
          val mem_project : (Project_skeleton.t -> bool) -> t -> bool
          val copy : t -> t
        end
      val getUseDefFunctionRef :
        (Cil_types.exp ->
         Cil_types.exp list -> VS.t * VS.t * Cil_types.exp list)
        ref
      val considerVariableUse : (Cil_types.varinfo -> bool) ref
      val considerVariableDef : (Cil_types.varinfo -> bool) ref
      val considerVariableAddrOfAsUse : (Cil_types.varinfo -> bool) ref
      val extraUsesOfExpr : (Cil_types.exp -> VS.t) ref
      val onlyNoOffsetsAreDefs : bool ref
      val ignoreSizeof : bool ref
      val varUsed : VS.t ref
      val varDefs : VS.t ref
      class useDefVisitorClass : Cil.cilVisitor
      val useDefVisitor : useDefVisitorClass
      val computeUseExp : ?acc:VS.t -> Cil_types.exp -> VS.t
      val computeUseDefInstr :
        ?acc_used:VS.t -> ?acc_defs:VS.t -> Cil_types.instr -> VS.t * VS.t
      val computeUseDefStmtKind :
        ?acc_used:VS.t -> ?acc_defs:VS.t -> Cil_types.stmtkind -> VS.t * VS.t
      val computeDeepUseDefStmtKind :
        ?acc_used:VS.t -> ?acc_defs:VS.t -> Cil_types.stmtkind -> VS.t * VS.t
      val computeUseLocalTypes : ?acc_used:VS.t -> Cil_types.fundec -> VS.t
    end
  module VS :
    sig
      type elt = Cil_datatype.Varinfo.t
      type t = Cil_datatype.Varinfo.Set.t
      val empty : t
      val is_empty : t -> bool
      val mem : elt -> t -> bool
      val add : elt -> t -> t
      val singleton : elt -> t
      val remove : elt -> t -> t
      val union : t -> t -> t
      val inter : t -> t -> t
      val diff : t -> t -> t
      val subset : t -> t -> bool
      val iter : (elt -> unit) -> t -> unit
      val fold : (elt -> '-> 'a) -> t -> '-> 'a
      val for_all : (elt -> bool) -> t -> bool
      val exists : (elt -> bool) -> t -> bool
      val filter : (elt -> bool) -> t -> t
      val partition : (elt -> bool) -> t -> t * t
      val cardinal : t -> int
      val elements : t -> elt list
      val choose : t -> elt
      val split : elt -> t -> t * bool * t
      val find : elt -> t -> elt
      val of_list : elt list -> t
      val min_elt : t -> elt
      val max_elt : t -> elt
      val nearest_elt_le : elt -> t -> elt
      val nearest_elt_ge : elt -> t -> elt
      val ty : t Type.t
      val name : string
      val descr : t Descr.t
      val packed_descr : Structural_descr.pack
      val reprs : t list
      val equal : t -> t -> bool
      val compare : t -> t -> int
      val hash : t -> int
      val pretty_code : Format.formatter -> t -> unit
      val internal_pretty_code :
        Type.precedence -> Format.formatter -> t -> unit
      val pretty : Format.formatter -> t -> unit
      val varname : t -> string
      val mem_project : (Project_skeleton.t -> bool) -> t -> bool
      val copy : t -> t
    end
  val debug : bool ref
  val live_label : String.t ref
  val live_func : String.t ref
  val debug_print : Format.formatter -> VS.t -> unit
  val min_print : Format.formatter -> VS.t -> unit
  val printer : (Format.formatter -> VS.t -> unit) ref
  module LiveFlow :
    sig
      val name : string
      val debug : bool
      type t = VS.t
      module StmtStartData :
        sig
          type data = VS.t
          val clear : unit -> unit
          val mem : Cil_types.stmt -> bool
          val find : Cil_types.stmt -> data
          val replace : Cil_types.stmt -> data -> unit
          val add : Cil_types.stmt -> data -> unit
          val iter : (Cil_types.stmt -> data -> unit) -> unit
          val length : unit -> int
        end
      val pretty : Format.formatter -> VS.t -> unit
      val funcExitData : VS.t
      val combineStmtStartData : Cil_types.stmt -> old:t -> t -> t option
      val combineSuccessors : VS.t -> VS.t -> VS.t
      val doStmt : Cil_types.stmt -> UD.VS.t Dataflow2.action
      val doInstr : '-> Cil_types.instr -> '-> VS.t Dataflow2.action
      val filterStmt : '-> '-> bool
    end
  module L : sig val compute : Cil_types.stmt list -> unit end
  val all_stmts : Cil_types.stmt list ref
  class nullAdderClass :
    object
      method behavior : Cil.visitor_behavior
      method current_func : Cil_types.fundec option
      method current_kinstr : Cil_types.kinstr
      method current_stmt : Cil_types.stmt option
      method fill_global_tables : unit
      method get_filling_actions : (unit -> unit) Queue.t
      method plain_copy_visitor : Cil.cilVisitor
      method pop_stmt : Cil_types.stmt -> unit
      method project : Project.t option
      method push_stmt : Cil_types.stmt -> unit
      method queueInstr : Cil_types.instr list -> unit
      method reset_current_func : unit -> unit
      method set_current_func : Cil_types.fundec -> unit
      method unqueueInstr : unit -> Cil_types.instr list
      method vallocates :
        Cil_types.identified_term list ->
        Cil_types.identified_term list Cil.visitAction
      method vallocation :
        Cil_types.identified_term Cil_types.allocation ->
        Cil_types.identified_term Cil_types.allocation Cil.visitAction
      method vannotation :
        Cil_types.global_annotation ->
        Cil_types.global_annotation Cil.visitAction
      method vassigns :
        Cil_types.identified_term Cil_types.assigns ->
        Cil_types.identified_term Cil_types.assigns Cil.visitAction
      method vattr :
        Cil_types.attribute -> Cil_types.attribute list Cil.visitAction
      method vattrparam :
        Cil_types.attrparam -> Cil_types.attrparam Cil.visitAction
      method vbehavior :
        Cil_types.funbehavior -> Cil_types.funbehavior Cil.visitAction
      method vblock : Cil_types.block -> Cil_types.block Cil.visitAction
      method vcode_annot :
        Cil_types.code_annotation ->
        Cil_types.code_annotation Cil.visitAction
      method vcompinfo :
        Cil_types.compinfo -> Cil_types.compinfo Cil.visitAction
      method vdeps :
        Cil_types.identified_term Cil_types.deps ->
        Cil_types.identified_term Cil_types.deps Cil.visitAction
      method venuminfo :
        Cil_types.enuminfo -> Cil_types.enuminfo Cil.visitAction
      method venumitem :
        Cil_types.enumitem -> Cil_types.enumitem Cil.visitAction
      method vexpr : Cil_types.exp -> Cil_types.exp Cil.visitAction
      method vfieldinfo :
        Cil_types.fieldinfo -> Cil_types.fieldinfo Cil.visitAction
      method vfile : Cil_types.file -> Cil_types.file Cil.visitAction
      method vfrees :
        Cil_types.identified_term list ->
        Cil_types.identified_term list Cil.visitAction
      method vfrom :
        Cil_types.identified_term Cil_types.from ->
        Cil_types.identified_term Cil_types.from Cil.visitAction
      method vfunc : Cil_types.fundec -> Cil_types.fundec Cil.visitAction
      method vglob :
        Cil_types.global -> Cil_types.global list Cil.visitAction
      method videntified_predicate :
        Cil_types.identified_predicate ->
        Cil_types.identified_predicate Cil.visitAction
      method videntified_term :
        Cil_types.identified_term ->
        Cil_types.identified_term Cil.visitAction
      method vimpact_pragma :
        Cil_types.term Cil_types.impact_pragma ->
        Cil_types.term Cil_types.impact_pragma Cil.visitAction
      method vinit :
        Cil_types.varinfo ->
        Cil_types.offset -> Cil_types.init -> Cil_types.init Cil.visitAction
      method vinitoffs : Cil_types.offset -> Cil_types.offset Cil.visitAction
      method vinst : Cil_types.instr -> Cil_types.instr list Cil.visitAction
      method vlogic_ctor_info_decl :
        Cil_types.logic_ctor_info ->
        Cil_types.logic_ctor_info Cil.visitAction
      method vlogic_ctor_info_use :
        Cil_types.logic_ctor_info ->
        Cil_types.logic_ctor_info Cil.visitAction
      method vlogic_info_decl :
        Cil_types.logic_info -> Cil_types.logic_info Cil.visitAction
      method vlogic_info_use :
        Cil_types.logic_info -> Cil_types.logic_info Cil.visitAction
      method vlogic_label :
        Cil_types.logic_label -> Cil_types.logic_label Cil.visitAction
      method vlogic_type :
        Cil_types.logic_type -> Cil_types.logic_type Cil.visitAction
      method vlogic_type_def :
        Cil_types.logic_type_def -> Cil_types.logic_type_def Cil.visitAction
      method vlogic_type_info_decl :
        Cil_types.logic_type_info ->
        Cil_types.logic_type_info Cil.visitAction
      method vlogic_type_info_use :
        Cil_types.logic_type_info ->
        Cil_types.logic_type_info Cil.visitAction
      method vlogic_var_decl :
        Cil_types.logic_var -> Cil_types.logic_var Cil.visitAction
      method vlogic_var_use :
        Cil_types.logic_var -> Cil_types.logic_var Cil.visitAction
      method vloop_pragma :
        Cil_types.term Cil_types.loop_pragma ->
        Cil_types.term Cil_types.loop_pragma Cil.visitAction
      method vlval : Cil_types.lval -> Cil_types.lval Cil.visitAction
      method vmodel_info :
        Cil_types.model_info -> Cil_types.model_info Cil.visitAction
      method voffs : Cil_types.offset -> Cil_types.offset Cil.visitAction
      method vpredicate :
        Cil_types.predicate -> Cil_types.predicate Cil.visitAction
      method vpredicate_named :
        Cil_types.predicate Cil_types.named ->
        Cil_types.predicate Cil_types.named Cil.visitAction
      method vquantifiers :
        Cil_types.quantifiers -> Cil_types.quantifiers Cil.visitAction
      method vslice_pragma :
        Cil_types.term Cil_types.slice_pragma ->
        Cil_types.term Cil_types.slice_pragma Cil.visitAction
      method vspec : Cil_types.funspec -> Cil_types.funspec Cil.visitAction
      method vstmt : Cil_types.stmt -> Cil_types.stmt Cil.visitAction
      method vterm : Cil_types.term -> Cil_types.term Cil.visitAction
      method vterm_lhost :
        Cil_types.term_lhost -> Cil_types.term_lhost Cil.visitAction
      method vterm_lval :
        Cil_types.term_lval -> Cil_types.term_lval Cil.visitAction
      method vterm_node :
        Cil_types.term_node -> Cil_types.term_node Cil.visitAction
      method vterm_offset :
        Cil_types.term_offset -> Cil_types.term_offset Cil.visitAction
      method vtype : Cil_types.typ -> Cil_types.typ Cil.visitAction
      method vvdec : Cil_types.varinfo -> Cil_types.varinfo Cil.visitAction
      method vvrbl : Cil_types.varinfo -> Cil_types.varinfo Cil.visitAction
    end
  val null_adder : Cil_types.fundec -> Cil_types.stmt list
  val computeLiveness : Cil_types.fundec -> unit
  val getLiveSet : Cil_types.stmt -> LiveFlow.StmtStartData.data option
  val print_everything : unit -> unit
  val match_label : Cil_types.label -> bool
  class doFeatureClass :
    object
      method behavior : Cil.visitor_behavior
      method current_func : Cil_types.fundec option
      method current_kinstr : Cil_types.kinstr
      method current_stmt : Cil_types.stmt option
      method fill_global_tables : unit
      method get_filling_actions : (unit -> unit) Queue.t
      method plain_copy_visitor : Cil.cilVisitor
      method pop_stmt : Cil_types.stmt -> unit
      method project : Project.t option
      method push_stmt : Cil_types.stmt -> unit
      method queueInstr : Cil_types.instr list -> unit
      method reset_current_func : unit -> unit
      method set_current_func : Cil_types.fundec -> unit
      method unqueueInstr : unit -> Cil_types.instr list
      method vallocates :
        Cil_types.identified_term list ->
        Cil_types.identified_term list Cil.visitAction
      method vallocation :
        Cil_types.identified_term Cil_types.allocation ->
        Cil_types.identified_term Cil_types.allocation Cil.visitAction
      method vannotation :
        Cil_types.global_annotation ->
        Cil_types.global_annotation Cil.visitAction
      method vassigns :
        Cil_types.identified_term Cil_types.assigns ->
        Cil_types.identified_term Cil_types.assigns Cil.visitAction
      method vattr :
        Cil_types.attribute -> Cil_types.attribute list Cil.visitAction
      method vattrparam :
        Cil_types.attrparam -> Cil_types.attrparam Cil.visitAction
      method vbehavior :
        Cil_types.funbehavior -> Cil_types.funbehavior Cil.visitAction
      method vblock : Cil_types.block -> Cil_types.block Cil.visitAction
      method vcode_annot :
        Cil_types.code_annotation ->
        Cil_types.code_annotation Cil.visitAction
      method vcompinfo :
        Cil_types.compinfo -> Cil_types.compinfo Cil.visitAction
      method vdeps :
        Cil_types.identified_term Cil_types.deps ->
        Cil_types.identified_term Cil_types.deps Cil.visitAction
      method venuminfo :
        Cil_types.enuminfo -> Cil_types.enuminfo Cil.visitAction
      method venumitem :
        Cil_types.enumitem -> Cil_types.enumitem Cil.visitAction
      method vexpr : Cil_types.exp -> Cil_types.exp Cil.visitAction
      method vfieldinfo :
        Cil_types.fieldinfo -> Cil_types.fieldinfo Cil.visitAction
      method vfile : Cil_types.file -> Cil_types.file Cil.visitAction
      method vfrees :
        Cil_types.identified_term list ->
        Cil_types.identified_term list Cil.visitAction
      method vfrom :
        Cil_types.identified_term Cil_types.from ->
        Cil_types.identified_term Cil_types.from Cil.visitAction
      method vfunc : Cil_types.fundec -> Cil_types.fundec Cil.visitAction
      method vglob :
        Cil_types.global -> Cil_types.global list Cil.visitAction
      method videntified_predicate :
        Cil_types.identified_predicate ->
        Cil_types.identified_predicate Cil.visitAction
      method videntified_term :
        Cil_types.identified_term ->
        Cil_types.identified_term Cil.visitAction
      method vimpact_pragma :
        Cil_types.term Cil_types.impact_pragma ->
        Cil_types.term Cil_types.impact_pragma Cil.visitAction
      method vinit :
        Cil_types.varinfo ->
        Cil_types.offset -> Cil_types.init -> Cil_types.init Cil.visitAction
      method vinitoffs : Cil_types.offset -> Cil_types.offset Cil.visitAction
      method vinst : Cil_types.instr -> Cil_types.instr list Cil.visitAction
      method vlogic_ctor_info_decl :
        Cil_types.logic_ctor_info ->
        Cil_types.logic_ctor_info Cil.visitAction
      method vlogic_ctor_info_use :
        Cil_types.logic_ctor_info ->
        Cil_types.logic_ctor_info Cil.visitAction
      method vlogic_info_decl :
        Cil_types.logic_info -> Cil_types.logic_info Cil.visitAction
      method vlogic_info_use :
        Cil_types.logic_info -> Cil_types.logic_info Cil.visitAction
      method vlogic_label :
        Cil_types.logic_label -> Cil_types.logic_label Cil.visitAction
      method vlogic_type :
        Cil_types.logic_type -> Cil_types.logic_type Cil.visitAction
      method vlogic_type_def :
        Cil_types.logic_type_def -> Cil_types.logic_type_def Cil.visitAction
      method vlogic_type_info_decl :
        Cil_types.logic_type_info ->
        Cil_types.logic_type_info Cil.visitAction
      method vlogic_type_info_use :
        Cil_types.logic_type_info ->
        Cil_types.logic_type_info Cil.visitAction
      method vlogic_var_decl :
        Cil_types.logic_var -> Cil_types.logic_var Cil.visitAction
      method vlogic_var_use :
        Cil_types.logic_var -> Cil_types.logic_var Cil.visitAction
      method vloop_pragma :
        Cil_types.term Cil_types.loop_pragma ->
        Cil_types.term Cil_types.loop_pragma Cil.visitAction
      method vlval : Cil_types.lval -> Cil_types.lval Cil.visitAction
      method vmodel_info :
        Cil_types.model_info -> Cil_types.model_info Cil.visitAction
      method voffs : Cil_types.offset -> Cil_types.offset Cil.visitAction
      method vpredicate :
        Cil_types.predicate -> Cil_types.predicate Cil.visitAction
      method vpredicate_named :
        Cil_types.predicate Cil_types.named ->
        Cil_types.predicate Cil_types.named Cil.visitAction
      method vquantifiers :
        Cil_types.quantifiers -> Cil_types.quantifiers Cil.visitAction
      method vslice_pragma :
        Cil_types.term Cil_types.slice_pragma ->
        Cil_types.term Cil_types.slice_pragma Cil.visitAction
      method vspec : Cil_types.funspec -> Cil_types.funspec Cil.visitAction
      method vstmt : Cil_types.stmt -> Cil_types.stmt Cil.visitAction
      method vterm : Cil_types.term -> Cil_types.term Cil.visitAction
      method vterm_lhost :
        Cil_types.term_lhost -> Cil_types.term_lhost Cil.visitAction
      method vterm_lval :
        Cil_types.term_lval -> Cil_types.term_lval Cil.visitAction
      method vterm_node :
        Cil_types.term_node -> Cil_types.term_node Cil.visitAction
      method vterm_offset :
        Cil_types.term_offset -> Cil_types.term_offset Cil.visitAction
      method vtype : Cil_types.typ -> Cil_types.typ Cil.visitAction
      method vvdec : Cil_types.varinfo -> Cil_types.varinfo Cil.visitAction
      method vvrbl : Cil_types.varinfo -> Cil_types.varinfo Cil.visitAction
    end
  val do_live_feature : Cil_types.file -> unit
  val feature : Cil.featureDescr
end