sig
type t
val create : Cil_types.kernel_function -> Build.??.t
val get_kf : Build.??.t -> Cil_types.kernel_function
type arg_nodes
val get_states :
Build.??.t -> PdgTypes.data_state Cil_datatype.Stmt.Hashtbl.t
val print_state : Format.formatter -> PdgTypes.data_state -> unit
val empty_state : PdgTypes.data_state
val bottom_state : PdgTypes.data_state
val process_declarations :
Build.??.t ->
formals:Cil_types.varinfo list ->
locals:Cil_types.varinfo list -> PdgTypes.data_state
val process_asgn :
Build.??.t ->
PdgTypes.data_state ->
Cil_types.stmt ->
l_loc:Locations.Zone.t ->
exact:bool ->
l_dpds:Locations.Zone.t ->
l_decl:Cil_datatype.Varinfo.Set.t ->
r_dpds:Locations.Zone.t ->
r_decl:Cil_datatype.Varinfo.Set.t -> PdgTypes.data_state
val process_skip :
Build.??.t ->
PdgTypes.data_state -> Cil_types.stmt -> PdgTypes.data_state option
val process_asm :
Build.??.t ->
PdgTypes.data_state -> Cil_types.stmt -> PdgTypes.data_state option
val process_unreachable :
Build.??.t ->
PdgTypes.data_state -> Cil_types.stmt -> PdgTypes.data_state option
val process_unreachable_call :
Build.??.t ->
PdgTypes.data_state -> Cil_types.stmt -> PdgTypes.data_state option
val process_jump :
Build.??.t -> Cil_types.stmt -> bool * Cil_datatype.Stmt.Hptset.t -> unit
val process_stmt_labels : Build.??.t -> Cil_types.stmt -> unit
val process_block : Build.??.t -> Cil_types.stmt -> Cil_types.block -> unit
val process_entry_point : Build.??.t -> Cil_types.stmt list -> unit
val process_jump_with_exp :
Build.??.t ->
Cil_types.stmt ->
bool * Cil_datatype.Stmt.Hptset.t ->
PdgTypes.data_state ->
Locations.Zone.t -> Cil_datatype.Varinfo.Set.t -> unit
val test_and_merge_states :
old:PdgTypes.data_state ->
PdgTypes.data_state -> bool * PdgTypes.data_state
val process_call_node : Build.??.t -> Cil_types.stmt -> unit
val process_call_args :
Build.??.t ->
PdgTypes.data_state ->
Cil_types.stmt ->
(Locations.Zone.t * Cil_datatype.Varinfo.Set.t) list ->
Build.??.arg_nodes
val process_call_params :
Build.??.t ->
PdgTypes.data_state ->
Cil_types.stmt ->
Cil_types.kernel_function -> Build.??.arg_nodes -> PdgTypes.data_state
val process_call_ouput :
Build.??.t ->
PdgTypes.data_state ->
PdgTypes.data_state ->
Cil_types.stmt ->
int ->
Locations.Zone.t ->
bool -> Locations.Zone.t -> Locations.Zone.t -> PdgTypes.data_state
val process_call_return :
Build.??.t ->
PdgTypes.data_state ->
PdgTypes.data_state ->
Cil_types.stmt ->
l_loc:Locations.Zone.t ->
exact:bool ->
l_dpds:Locations.Zone.t ->
l_decl:Cil_datatype.Varinfo.Set.t ->
r_dpds:Locations.Zone.t -> Locations.Zone.t -> PdgTypes.data_state
val add_retres :
Build.??.t ->
PdgTypes.data_state ->
Cil_types.stmt ->
Locations.Zone.t -> Cil_datatype.Varinfo.Set.t -> PdgTypes.data_state
val store_last_state : Build.??.t -> PdgTypes.data_state -> unit
val finalize_pdg : Build.??.t -> Function_Froms.t option -> PdgTypes.Pdg.t
end