Procedure summaries: the results of the capture and all the analysis for a single procedure, plus some statistics
module Stats : sig ... end
module Status : sig ... end
type t
=
{
payloads : InferModules.Payloads.t; | |
sessions : int InferStdlib.IStd.ref; | (** Session number: how many nodes went through symbolic execution *) |
stats : Stats.t; | |
status : Status.t; | |
proc_desc : InferIR.Procdesc.t; |
}
summary of a procedure name
val has_model : InferIR.Typ.Procname.t ‑> bool
Check if a summary for a given procedure exists in the models directory
val get_proc_desc : t ‑> InferIR.Procdesc.t
val get_formals : t ‑> (InferIR.Mangled.t * InferIR.Typ.t) list
Get the formal parameters of the procedure
val get_err_log : t ‑> InferIR.Errlog.t
val get_loc : t ‑> InferBase.Location.t
val get_unsafe : InferIR.Typ.Procname.t ‑> t
val reset : InferIR.Procdesc.t ‑> t
Reset a summary rebuilding the dependents and preserving the proc attributes if present.
val load_from_file : InferBase.DB.filename ‑> t option
val pp_html : InferBase.SourceFile.t ‑> InferStdlib.Pp.color ‑> Format.formatter ‑> t ‑> unit
Print the summary in html format
val pdesc_resolve_attributes : InferIR.Procdesc.t ‑> InferIR.ProcAttributes.t
Like proc_resolve_attributes but start from a proc_desc.
val proc_resolve_attributes : InferIR.Typ.Procname.t ‑> InferIR.ProcAttributes.t option
Try to find the attributes for a defined proc. First look at specs (to get attributes computed by analysis) then look at the attributes table. If no attributes can be found, return None.
val proc_is_library : InferIR.ProcAttributes.t ‑> bool
Check if the procedure is from a library: It's not defined, and there is no spec file for it.