Frama-C API - CfgNode
Definitions for multithread cfg
include Frama_c_kernel.Datatype.S_with_collections with type t = node
include Frama_c_kernel.Datatype.S with type t = node
include Frama_c_kernel.Datatype.S_no_copy with type t = node
val datatype_descr : t Frama_c_kernel.Descr.tDatatype descriptor.
val packed_descr : Frama_c_kernel.Structural_descr.packPacked version of the descriptor.
val reprs : t listList of representants of the descriptor.
val hash : t -> intHash function: same spec than Hashtbl.hash.
val mem_project : (Frama_c_kernel.Project_skeleton.t -> bool) -> t -> boolmem_project f x must return true iff there is a value p of type Project.t in x such that f p returns true.
module Set : Frama_c_kernel.Datatype.Set with type elt = tmodule Map : Frama_c_kernel.Datatype.Map with type key = tmodule Hashtbl : Frama_c_kernel.Datatype.Hashtbl with type key = tval dead : tNode with cfgn_kind set to NDead. We always reuse this node, as it is never displayed (and it has no successor, thus causing no problem in the dataflow analysis)
val new_node : Eva.Callstack.t -> tFresh node generator. The initial content of the node is unspecified. The nodes are guaranteed to be different from dummy and dead
val node_kind_stmt : node_kind -> Frama_c_kernel.Cil_types.stmt listval node_stmt : t -> Frama_c_kernel.Cil_types.stmt listval node_first_loc : t -> Frama_c_kernel.Filepath.position optionval has_concur_accesses : t -> boolIs there a variable access at this node
val must_be_in_cfg : keep:var_access_kind -> t -> boolShould we keep a node in the cfg considering the concurrent accesses it performs. We keep all accesses with a level equal or above keep. Note that in the current cfg construction model, nodes are labelled with ConcurrentAccess or SharedVarNonConcurrentAccess very late. Thus, must_be_in_cfg must not be called with keep not equal to NotReallySharedVar before that.
val pretty : t Frama_c_kernel.Pretty_utils.formatterval pretty_with_stmts : t Frama_c_kernel.Pretty_utils.formatterval pretty_stmts : t Frama_c_kernel.Pretty_utils.formatterval pretty_kind : node_kind Frama_c_kernel.Pretty_utils.formatterval pretty_kind_debug : node_kind Frama_c_kernel.Pretty_utils.formatterval pretty_kinds_node_list : node list Frama_c_kernel.Pretty_utils.formatterIteration on all the nodes of an automata reachable from the node passed as argument. The order of visit is unspecified. Each node is visited exactly once. The function f_before is called before the children of the node are visited (except in case of cycles), while f_after is called only after all the children have been visited
