Module Backend.CallbackOfChecker
val mk_interprocedural_field_t : (Payloads.t, 'payload option) IStdlib.IStd.Field.t -> Absint.Exe_env.t -> Summary.t -> ?tenv:IR.Tenv.t -> unit -> 'payload Absint.InterproceduralAnalysis.t * Summary.Stats.t IStdlib.IStd.ref
val interprocedural : f_analyze_dep:(IR.Procdesc.t -> 'payloads_orig -> (IR.Procdesc.t * 'payloads) option) -> get_payload:(Payloads.t -> 'payloads_orig) -> set_payload:(Payloads.t -> 'payload_checker -> Payloads.t) -> ('payloads Absint.InterproceduralAnalysis.t -> 'payload_checker) -> Callbacks.proc_callback_t
the general form of interprocedural checkers: can read and update several payloads, and massage analysis results (mostly used to join option types)
val interprocedural_with_field : (Payloads.t, 'payload option) IStdlib.IStd.Field.t -> ('payload Absint.InterproceduralAnalysis.t -> 'payload option) -> Callbacks.proc_callback_t
interprocedural field checker
expectschecker
to compute a payload (option) suitable forfield
, given an inter-procedural analysis of callees that computes the same payload type
val interprocedural_file : (Payloads.t, 'payload option) IStdlib.IStd.Field.t -> ('payload Absint.InterproceduralAnalysis.file_t -> Absint.IssueLog.t) -> Callbacks.file_callback_t
interprocedural_file field checker
expectschecker
to compute anIssueLog
.t from the file-level analysis, given an inter-procedural analysis of dependencies that computes the payload type corresponding tofield
val intraprocedural : (Absint.IntraproceduralAnalysis.t -> unit) -> Callbacks.proc_callback_t
runs a simple intra-procedural analysis (one that doesn't need the results of the analysis on any transitive dependencies to analyze a given procedure)
val intraprocedural_with_field_dependency : (Payloads.t, 'payload) IStdlib.IStd.Field.t -> (Absint.IntraproceduralAnalysis.t -> 'payload -> unit) -> Callbacks.proc_callback_t
an intra-procedural analysis that depends on the summary payload found by another
val intraprocedural_with_field : (Payloads.t, 'payload option) IStdlib.IStd.Field.t -> (Absint.IntraproceduralAnalysis.t -> 'payload option) -> Callbacks.proc_callback_t
runs an intra-procedural analysis that nonetheless produces a payload