Module Backend__CallbackOfChecker
val mk_interprocedural_field_t : (Backend.Payloads.t, 'payload option) IStdlib.IStd.Field.t -> Absint.Exe_env.t -> Backend.Summary.t -> ?tenv:IR.Tenv.t -> unit -> 'payload Absint.InterproceduralAnalysis.t * Backend.Summary.Stats.t IStdlib.IStd.ref
val interprocedural : f_analyze_dep:(IR.Procdesc.t -> 'payloads_orig -> (IR.Procdesc.t * 'payloads) option) -> f_analyze_pdesc_dep:('payloads_orig -> 'payloads option) -> get_payload:(Backend.Payloads.t -> 'payloads_orig) -> set_payload:(Backend.Payloads.t -> 'payload_checker -> Backend.Payloads.t) -> ('payloads Absint.InterproceduralAnalysis.t -> 'payload_checker) -> Backend.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 : (Backend.Payloads.t, 'payload option) IStdlib.IStd.Field.t -> ('payload Absint.InterproceduralAnalysis.t -> 'payload option) -> Backend.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 : (Backend.Payloads.t, 'payload option) IStdlib.IStd.Field.t -> ('payload Absint.InterproceduralAnalysis.file_t -> IR.IssueLog.t) -> Backend.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) -> Backend.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 : (Backend.Payloads.t, 'payload) IStdlib.IStd.Field.t -> (Absint.IntraproceduralAnalysis.t -> 'payload -> unit) -> Backend.Callbacks.proc_callback_t
an intra-procedural analysis that depends on the summary payload found by another
val intraprocedural_with_field : (Backend.Payloads.t, 'payload option) IStdlib.IStd.Field.t -> (Absint.IntraproceduralAnalysis.t -> 'payload option) -> Backend.Callbacks.proc_callback_t
runs an intra-procedural analysis that nonetheless produces a payload