module Kernel_function:Operations on kernel function.sig
..end
typet =
Db_types.kernel_function
val compare : t -> t -> int
val equal : t -> t -> bool
val hash : t -> int
module Datatype:Project.Datatype.S
with type t = kernel_function
val find_from_sid : int -> Cil_types.stmt * t
Not_found
if there is no statement with such an identifier.exception No_Statement
val find_first_stmt : t -> Cil_types.stmt
No_Statement
if there is no first statement for the given
function.val find_return : t -> Cil_types.stmt
val find_label : t -> string -> Cil_types.stmt Pervasives.ref
Not_found
if the label does not exist in the given function.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
edge_exits_block kf s1 s2
returns the (possibly empty)
list of blocks that are closed when going from s1
to s2
.Invalid_argument
if the statements do not belong to the
same function or are not adjacent in the cfg.val is_definition : t -> bool
val returns_void : t -> bool
val dummy : unit -> t
val get_vi : t -> Cil_types.varinfo
val get_id : t -> int
val get_name : t -> string
val get_type : t -> Cil_types.typ
val get_return_type : t -> Cil_types.typ
val get_location : t -> Cil_types.location
val get_global : t -> Cil_types.global
val get_formals : t -> Cil_types.varinfo list
val get_locals : t -> Cil_types.varinfo list
exception No_Definition
val get_definition : t -> Cil_types.fundec
No_Definition
if the given function is not a definition.val is_formal : Cil_types.varinfo -> t -> bool
true
if the given varinfo is a formal parameter of the given
function. If possible, use this function instead of
Ast_info.Function.is_formal
.val is_local : Cil_types.varinfo -> t -> bool
true
if the given varinfo is a local variable of the given
function. If possible, use this function instead of
Ast_info.Function.is_local
.val is_formal_or_local : Cil_types.varinfo -> t -> bool
true
if the given varinfo is a formal parameter or a local
variable of the given function.
If possible, use this function instead of
Ast_info.Function.is_formal_or_local
.val get_spec : t -> Cil_types.funspec
val postcondition : t -> Cil_types.predicate Cil_types.named
val precondition : t -> Cil_types.predicate Cil_types.named
val populate_spec : (t -> unit) Pervasives.ref
module Make_Table:functor (
Data
:
Project.Datatype.S
) ->
functor (
Info
:
Signature.NAME_SIZE_DPDS
) ->
Computation.HASHTBL_OUTPUT
with type key = t and type data = Data.t
module Set:sig
..end
module Queue:sig
..end
Use carefully the following functions.
val register_stmt : t -> Cil_types.stmt -> Cil_types.block list -> unit
val pretty_name : Format.formatter -> t -> unit