sig
exception Top
exception Bottom
type t
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
val top : Kernel_function.t -> t
val bottom : Kernel_function.t -> t
val is_top : t -> bool
val is_bottom : t -> bool
val get_kf : t -> Kernel_function.t
val iter_nodes : (PdgTypes.Node.t -> unit) -> t -> unit
val fold_call_nodes :
('a -> PdgTypes.Node.t -> 'a) -> 'a -> t -> Cil_types.stmt -> 'a
val iter_direct_dpds :
t -> (PdgTypes.Node.t -> unit) -> PdgTypes.Node.t -> unit
val iter_direct_codpds :
t -> (PdgTypes.Node.t -> unit) -> PdgTypes.Node.t -> unit
type dpd_info = PdgTypes.Node.t * Locations.Zone.t option
val get_all_direct_dpds :
t -> PdgTypes.Node.t -> PdgTypes.Pdg.dpd_info list
val get_x_direct_dpds :
PdgTypes.Dpd.td -> t -> PdgTypes.Node.t -> PdgTypes.Pdg.dpd_info list
val get_all_direct_codpds :
t -> PdgTypes.Node.t -> PdgTypes.Pdg.dpd_info list
val get_x_direct_codpds :
PdgTypes.Dpd.td -> t -> PdgTypes.Node.t -> PdgTypes.Pdg.dpd_info list
val fold_direct_dpds :
t ->
('a -> PdgTypes.Dpd.t * Locations.Zone.t option -> PdgTypes.Node.t -> 'a) ->
'a -> PdgTypes.Node.t -> 'a
val fold_direct_codpds :
t ->
('a -> PdgTypes.Dpd.t * Locations.Zone.t option -> PdgTypes.Node.t -> 'a) ->
'a -> PdgTypes.Node.t -> 'a
val pretty_bw : ?bw:bool -> Stdlib.Format.formatter -> t -> unit
val pretty_graph :
?bw:bool -> Stdlib.Format.formatter -> PdgTypes.G.t -> unit
type fi = (PdgTypes.Node.t, unit) PdgIndex.FctIndex.t
val get_index : t -> PdgTypes.Pdg.fi
val make :
Kernel_function.t ->
PdgTypes.G.t ->
PdgTypes.data_state Cil_datatype.Stmt.Hashtbl.t -> PdgTypes.Pdg.fi -> t
val get_states : t -> PdgTypes.data_state Cil_datatype.Stmt.Hashtbl.t
val build_dot : string -> t -> unit
module Printer :
sig
val iter_vertex : (PdgTypes.Node.t -> unit) -> t -> unit
val iter_edges_e : (PdgTypes.G.E.t * bool -> unit) -> t -> unit
val graph_attributes : t -> Graph.Graphviz.DotAttributes.graph list
val default_vertex_attributes :
t -> Graph.Graphviz.DotAttributes.vertex list
val vertex_name : PdgTypes.Node.t -> string
val vertex_attributes :
PdgTypes.Node.t -> Graph.Graphviz.DotAttributes.vertex list
val get_subgraph :
PdgTypes.Node.t -> Graph.Graphviz.DotAttributes.subgraph option
val default_edge_attributes :
'a -> Graph.Graphviz.DotAttributes.edge list
val edge_attributes :
PdgTypes.G.E.t * bool -> Graph.Graphviz.DotAttributes.edge list
end
end