Module InferIR__Cfg

Control Flow Graph for Interprocedural Analysis

type t = InferIR.Procdesc.t InferIR.Typ.Procname.Hash.t

A control-flow graph is a collection of all the CFGs for the procedure names in a file

val get_all_defined_proc_names : t -> InferIR.Typ.Procname.t list

get all the procedure names that are defined in the current file

val store : InferBase.SourceFile.t -> t -> unit

Save the individual Procdesc.t and ProcAttributes.t to the database for the procedures in the cfg.

Functions for manipulating an interprocedural CFG

val create : unit -> t

create a new empty cfg

val create_proc_desc : t -> InferIR.ProcAttributes.t -> InferIR.Procdesc.t

Create a new procdesc and add it to the cfg

val iter_sorted : t -> f:(InferIR.Procdesc.t -> unit) -> unit

Iterate over all the proc descs in the cfg in ascending order

val inline_java_synthetic_methods : t -> unit

Inline the java synthetic methods in the cfg (in-place)

val pp_proc_signatures : Stdlib.Format.formatter -> t -> unit