Frama-C API - Pdg
can be raised by most of the functions when called with a Top PDG. Top means that we were not able to compute the PDG for this function.
include Frama_c_kernel.Datatype.S
include Frama_c_kernel.Datatype.S_no_copy
val descr : t Frama_c_kernel.Descr.t
Datatype descriptor.
val packed_descr : Frama_c_kernel.Structural_descr.pack
Packed version of the descriptor.
val reprs : t list
List of representants of the descriptor.
val hash : t -> int
Hash function: same spec than Hashtbl.hash
.
val pretty : Stdlib.Format.formatter -> t -> unit
Pretty print each value in an user-friendly way.
val mem_project : (Frama_c_kernel.Project_skeleton.t -> bool) -> t -> bool
mem_project f x
must return true
iff there is a value p
of type Project.t
in x
such that f p
returns true
.
val top : Frama_c_kernel.Kernel_function.t -> t
val bottom : Frama_c_kernel.Kernel_function.t -> t
val is_top : t -> bool
val is_bottom : t -> bool
val get_kf : t -> Frama_c_kernel.Kernel_function.t
val fold_call_nodes : ('a -> Node.t -> 'a) -> 'a -> t -> Frama_c_kernel.Cil_types.stmt -> 'a
type dpd_info = Node.t * Frama_c_kernel.Locations.Zone.t option
a dependency to another node. The dependency can be restricted to a zone. (None means no restriction ie. total dependency)
val fold_direct_dpds : t -> ('a -> (Dpd.t * Frama_c_kernel.Locations.Zone.t option) -> Node.t -> 'a) -> 'a -> Node.t -> 'a
val fold_direct_codpds : t -> ('a -> (Dpd.t * Frama_c_kernel.Locations.Zone.t option) -> Node.t -> 'a) -> 'a -> Node.t -> 'a
val pretty_bw : ?bw:bool -> Stdlib.Format.formatter -> t -> unit
val pretty_graph : ?bw:bool -> Stdlib.Format.formatter -> G.t -> unit
type fi = (Node.t, unit) PdgIndex.FctIndex.t
val make : Frama_c_kernel.Kernel_function.t -> G.t -> data_state Frama_c_kernel.Cil_datatype.Stmt.Hashtbl.t -> fi -> t
make fundec graph states index
val get_states : t -> data_state Frama_c_kernel.Cil_datatype.Stmt.Hashtbl.t
val build_dot : string -> t -> unit
build the PDG .dot file and put it in filename
.
module Printer : sig ... end