Module Soteria_c_lib.Call_graph

include sig ... end
type node = Symbol_std.t
module Node_set : sig ... end
module Hashtbl : sig ... end
val with_node_capacity : int -> 'a Hashtbl.t
val node_count : 'a Hashtbl.t -> int
val pp : Node_set.t Hashtbl.t Fmt.t
val add_edge : Node_set.t Hashtbl.t -> Hashtbl.key -> Node_set.elt -> unit
val add_double_edge : Node_set.t Hashtbl.t -> Hashtbl.key -> Node_set.elt -> unit
val set_edges_from : 'a Hashtbl.t -> Hashtbl.key -> 'a -> unit
val reachable_from : Node_set.t Hashtbl.t -> Node_set.t -> Node_set.t
val weak_topological_order : t -> node list

A callgraph is just a hashtbl mapping caller to the list of their callees

val resolve_static_function : 'a Cerb_frontend.AilSyntax.expression -> Cerb_frontend.AilSyntax.ail_identifier option
val expr_callees : Node_set.t -> Ail_tys.expr -> unit
val stmt_callees : Node_set.t -> Cerb_frontend.GenTypes.genTypeCategory Cerb_frontend.AilSyntax.statement -> unit
val of_prog : Ail_tys.linked_program -> t