sig
type t = Db_types.kernel_function
val compare : Kernel_function.t -> Kernel_function.t -> int
val equal : Kernel_function.t -> Kernel_function.t -> bool
val hash : Kernel_function.t -> int
module Datatype :
sig
type t = Db_types.kernel_function
val descr : Unmarshal.t
val copy : t -> t
val name : string
val register_comparable :
?compare:(t -> t -> int) ->
?equal:(t -> t -> bool) -> ?hash:(t -> int) -> unit -> unit
val is_comparable_set : unit -> bool
val hash : t -> int
val equal : t -> t -> bool
val compare : t -> t -> int
val mem_project : ((Project.project -> bool) -> t -> bool) option ref
end
exception No_Statement
val find_first_stmt : Kernel_function.t -> Cil_types.stmt
val find_return : Kernel_function.t -> Cil_types.stmt
val find_label :
Kernel_function.t -> string -> Cil_types.stmt Pervasives.ref
val clear_sid_info : unit -> unit
val find_from_sid : int -> Cil_types.stmt * Kernel_function.t
val find_enclosing_block : Cil_types.stmt -> Cil_types.block
val find_all_enclosing_blocks : Cil_types.stmt -> Cil_types.block list
val blocks_closed_by_edge :
Cil_types.stmt -> Cil_types.stmt -> Cil_types.block list
val is_definition : Kernel_function.t -> bool
val returns_void : Kernel_function.t -> bool
val dummy : unit -> Kernel_function.t
val get_vi : Kernel_function.t -> Cil_types.varinfo
val get_id : Kernel_function.t -> int
val get_name : Kernel_function.t -> string
val get_type : Kernel_function.t -> Cil_types.typ
val get_return_type : Kernel_function.t -> Cil_types.typ
val get_location : Kernel_function.t -> Cil_types.location
val get_global : Kernel_function.t -> Cil_types.global
val get_formals : Kernel_function.t -> Cil_types.varinfo list
val get_locals : Kernel_function.t -> Cil_types.varinfo list
exception No_Definition
val get_definition : Kernel_function.t -> Cil_types.fundec
val is_formal : Cil_types.varinfo -> Kernel_function.t -> bool
val get_formal_position : Cil_types.varinfo -> Kernel_function.t -> int
val is_local : Cil_types.varinfo -> Kernel_function.t -> bool
val is_formal_or_local : Cil_types.varinfo -> Kernel_function.t -> bool
val get_spec : Kernel_function.t -> Cil_types.funspec
val postcondition :
Kernel_function.t ->
Cil_types.termination_kind -> Cil_types.predicate Cil_types.named
val precondition : Kernel_function.t -> Cil_types.predicate Cil_types.named
val code_annotations :
Kernel_function.t ->
(Cil_types.stmt * Db_types.rooted_code_annotation Db_types.before_after)
list
val populate_spec : (Kernel_function.t -> unit) Pervasives.ref
module Make_Table :
functor (Data : Project.Datatype.S) ->
functor (Info : Signature.NAME_SIZE_DPDS) ->
sig
val self : Project.Computation.t
val select :
Kind.how ->
Project.Computation.selection -> Project.Computation.selection
val depend : Project.Computation.t -> unit
val name : string
val mark_as_computed : ?project:Project.project -> unit -> unit
val is_computed : ?project:Project.project -> unit -> bool
val do_not_save : unit -> unit
module Datatype : Project.Datatype.S
val howto_marshal :
(Datatype.t -> 'a) -> ('a -> Datatype.t) -> unit
type key = t
type data = Data.t
val replace : key -> data -> unit
val add : key -> data -> unit
val clear : unit -> unit
val length : unit -> int
val iter : (key -> data -> unit) -> unit
val fold : (key -> data -> 'a -> 'a) -> 'a -> 'a
val memo : ?change:(data -> data) -> (key -> data) -> key -> data
val find : key -> data
val find_all : key -> data list
val unsafe_find : key -> data
val mem : key -> bool
val remove : key -> unit
end
module Set :
sig
type elt = t
type t
val descr : Unmarshal.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 elements : t -> elt list
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val equal : t -> t -> bool
val subset : t -> t -> bool
val iter : (elt -> unit) -> t -> unit
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
val exists : (elt -> bool) -> t -> bool
val filter : (elt -> bool) -> t -> t
val cardinal : t -> int
val min_elt : t -> elt
val contains_single_elt : t -> elt option
module Datatype :
sig
type t = t
val descr : Unmarshal.t
val copy : t -> t
val name : string
val register_comparable :
?compare:(t -> t -> int) ->
?equal:(t -> t -> bool) -> ?hash:(t -> int) -> unit -> unit
val is_comparable_set : unit -> bool
val hash : t -> int
val equal : t -> t -> bool
val compare : t -> t -> int
val mem_project :
((Project.project -> bool) -> t -> bool) option ref
end
val pretty : Format.formatter -> Kernel_function.t -> unit
end
module Queue :
sig
module Datatype :
sig
type t = Db_types.kernel_function Queue.t
val descr : Unmarshal.t
val copy : t -> t
val name : string
val register_comparable :
?compare:(t -> t -> int) ->
?equal:(t -> t -> bool) -> ?hash:(t -> int) -> unit -> unit
val is_comparable_set : unit -> bool
val hash : t -> int
val equal : t -> t -> bool
val compare : t -> t -> int
val mem_project :
((Project.project -> bool) -> t -> bool) option ref
end
end
val register_stmt :
Kernel_function.t -> Cil_types.stmt -> Cil_types.block list -> unit
val pretty_name : Format.formatter -> Kernel_function.t -> unit
end