Module Absint.InterproceduralAnalysis
type 'payload t
=
{
proc_desc : IR.Procdesc.t;
the procedure to analyze
tenv : IR.Tenv.t;
Tenv
.t corresponding to the current procedureerr_log : Errlog.t;
the issue log for the current procedure (internally a mutable data structure)
exe_env : Exe_env.t;
Exe_env.t
for the current analysisanalyze_dependency : IR.Procname.t -> (IR.Procdesc.t * 'payload) option;
On-demand analysis of callees or other dependencies of the analysis of the current procedure. Uses
Ondemand.analyze_procedure
.analyze_pdesc_dependency : IR.Procdesc.t -> 'payload option;
same as above when we already know the
Procdesc
.tupdate_stats : ?add_symops:int -> ?failure_kind:IBase.SymOp.failure_kind -> unit -> unit;
update the
Summary.Stats.t
of the summary of the current procedure}
Analysis data for interprocedural analysis. This is the data for one procedure under analysis, and callbacks to analyze dependencies of it as well as do bookkeeping regarding the current procedure. Basically anything that needs to access the
Summary.t
of the current procedure should go here.
type 'payload file_t
=
{
source_file : IBase.SourceFile.t;
the source file under analysis
procedures : IR.Procname.t list;
list of procedures declared in the source file
file_exe_env : Exe_env.t;
Exe_env.t
for the current analysisanalyze_file_dependency : IR.Procname.t -> (IR.Procdesc.t * 'payload) option;
On-demand analysis of dependencies needed for the file analysis, e.g. the proc names in
procedures
}
Analysis data for the analysis of a source file.