let get_init_funcs () =
let init_funcs = InitFunc.get () in
try
let callees =
let kf, _ = Globals.entry_point () in
!Db.Users.get kf
in
(** add the entry point as root *) |
let init_funcs =
Datatype.String.Set.add (Kernel.MainFunction.get ()) init_funcs
in
(* add the callees of entry point as roots *)
Kernel_function.Hptset.fold
(fun kf acc -> Datatype.String.Set.add (Kernel_function.get_name kf) acc)
callees
init_funcs
with Globals.No_such_entry_point _ ->
(* always an entry point for the semantic callgraph since value analysis has
been computed. *)
assert false