Module TOPLlib__Topl

val is_active : unit -> bool

Returns whether the TOPL analysis is active.

val get_proc_attr : IR.Procname.t -> IR.ProcAttributes.t option

get_proc_attr proc_name returns the attributes of get_proc_desc proc_name

val get_proc_desc : IR.Procname.t -> IR.Procdesc.t option

Returns a synthesized Procdesc.t, when it corresponds to instrumentation for a TOPL property.

val sourcefile : unit -> IBase.SourceFile.t

The (fake) sourcefile in which synthesized code resides. This function has a side-effect, because that's how SourceFile works, so do NOT call when Topl is inactive.

val cfg : unit -> IR.Cfg.t

The CFG of the synthesized code. This function has a side-effect, because that's how Cfg works, so do NOT call when Topl is inactive.

val instrument_callback : (Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> Biabduction.BiabductionSummary.t option) -> Biabduction.BiabductionSummary.t Absint.InterproceduralAnalysis.t -> Biabduction.BiabductionSummary.t option

Run biabduction with Topl instrumentation if active. Inserts calls to the TOPL automaton. Mutates the arguments: it is the caller's responsibility to instrument procedures at most once.