12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152(**************************************************************************)(* *)(* SPDX-License-Identifier LGPL-2.1 *)(* Copyright (C) *)(* CEA (Commissariat à l'énergie atomique et aux énergies alternatives) *)(* *)(**************************************************************************)(** Callgraph API *)moduletypeGraph=sigmoduleG:Graph.Sig.G(** The underlying graph datastructure *)valcompute:unit->unit(** Compute the graph *)valget:unit->G.t(** Get the graph from the AST. *)moduleSubgraph:sigvalget:unit->G.tend(** Subgraph of [get ()] wrt [Options.Roots.get ()] *)valdump:unit->unit(** Dump the (possibly sub-)graph in the file of the corresponding command
line argument. *)valis_computed:unit->bool(** Is the graph already built? *)valadd_hook:(G.t->unit)->unit(** Call registered hook each time the graph is computed *)valself:State.tend(** Signature for a callgraph. Each edge is labeled by the callsite. Its source
is the caller, while the destination is the callee. *)moduletypeS=GraphwithtypeG.V.t=Kernel_function.tandtypeG.E.label=Cil_types.stmt(** Signature for a graph of services *)moduletypeServices=sigincludeGraphwithtypeG.V.t=Kernel_function.tService_graph.vertexandtypeG.E.label=Service_graph.edgevalentry_point:unit->G.V.toptionvalis_root:Kernel_function.t->boolend