module NodeHash : InferStdlib.IStd.Caml.Hashtbl.S with type NodeHash.key = Node.t
Hash table with nodes as keys.
procedure descriptions
val append_locals : t ‑> ProcAttributes.var_data list ‑> unit
append a list of new local variables to the existing list of local variables
val compute_distance_to_exit_node : t ‑> unit
Compute the distance of each node to the exit node, if not computed already
val create_node : t ‑> InferBase.Location.t ‑> Node.nodekind ‑> Sil.instr list ‑> Node.t
Create a new cfg node with the given location, kind, list of instructions, and add it to the procdesc.
val from_proc_attributes : ProcAttributes.t ‑> t
Use Cfg.create_proc_desc
if you are adding a proc desc to a cfg
val get_locals : t ‑> ProcAttributes.var_data list
Return name and type and attributes of local variables
val get_nodes_num : t ‑> int
val get_proc_name : t ‑> Typ.Procname.t
val is_java_synchronized : t ‑> bool
Return true
if the procedure signature has the Java synchronized keyword
val signal_did_preanalysis : t ‑> unit
indicate that we have performed preanalysis on the CFG assoociated with t
val pp_signature : Format.formatter ‑> t ‑> unit
val pp_local : Format.formatter ‑> ProcAttributes.var_data ‑> unit
val is_specialized : t ‑> bool
val specialize_types : t ‑> Typ.Procname.t ‑> (Exp.t * Typ.t) list ‑> t
Creates a copy of a procedure description and a list of type substitutions of the form (name, typ) where name is a parameter. The resulting procdesc is isomorphic but all the type of the parameters are replaced in the instructions according to the list. The virtual calls are also replaced to match the parameter types
val specialize_with_block_args : t ‑> Typ.Procname.t ‑> Exp.closure option list ‑> t
Creates a copy of a procedure description given a list of possible closures that are passed as arguments to the method. The resulting procdesc is isomorphic but a) the block parameters are replaces with the closures b) the parameters of the method are extended with parameters for the captured variables in the closures
val is_connected : t ‑> (unit, [ `Join | `Other ]) InferStdlib.IStd.Result.t
checks whether a cfg for the given procdesc is connected or not