|
|
|
(*
|
|
|
|
* Copyright (c) 2015 - present Facebook, Inc.
|
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* This source code is licensed under the BSD style license found in the
|
|
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
|
|
*)
|
|
|
|
|
|
|
|
(** Module to manage the table of attributes. *)
|
|
|
|
|
|
|
|
open! IStd
|
|
|
|
|
|
|
|
type attributes_kind
|
|
|
|
|
|
|
|
val deserialize_attributes_kind : Sqlite3.Data.t -> attributes_kind
|
|
|
|
|
|
|
|
val store : ProcAttributes.t -> unit
|
|
|
|
(** Save .attr file for the procedure into the attributes database. *)
|
|
|
|
|
|
|
|
val load : Typ.Procname.t -> ProcAttributes.t option
|
|
|
|
(** Load the attributes for the procedure from the attributes database. *)
|
|
|
|
|
|
|
|
val load_defined : Typ.Procname.t -> ProcAttributes.t option
|
|
|
|
(** Load attributes for the procedure but only if is_defined is true *)
|
|
|
|
|
|
|
|
val find_file_capturing_procedure : Typ.Procname.t -> (SourceFile.t * [`Include | `Source]) option
|
|
|
|
(** Find the file where the procedure was captured, if a cfg for that file exists.
|
|
|
|
Return also a boolean indicating whether the procedure is defined in an
|
|
|
|
include file. *)
|
|
|
|
|
|
|
|
val pp_attributes_kind : Format.formatter -> attributes_kind -> unit
|