123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172(**************************************************************************)(* *)(* This file is part of Frama-C. *)(* *)(* Copyright (C) 2007-2023 *)(* CEA (Commissariat à l'énergie atomique et aux énergies *)(* alternatives) *)(* *)(* you can redistribute it and/or modify it under the terms of the GNU *)(* Lesser General Public License as published by the Free Software *)(* Foundation, version 2.1. *)(* *)(* It is distributed in the hope that it will be useful, *)(* but WITHOUT ANY WARRANTY; without even the implied warranty of *)(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *)(* GNU Lesser General Public License for more details. *)(* *)(* See the GNU Lesser General Public License version 2.1 *)(* for more details (enclosed in the file licenses/LGPLv2.1). *)(* *)(**************************************************************************)(** 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(*
Local Variables:
compile-command: "make -C ../.."
End:
*)