Reviewed By: jberdine Differential Revision: D3684221 fbshipit-source-id: fe6917fmaster
parent
185f6493bc
commit
36e2175293
@ -0,0 +1,36 @@
|
||||
(*
|
||||
* Copyright (c) 2016 - 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.
|
||||
*)
|
||||
|
||||
open! Utils
|
||||
|
||||
module F = Format
|
||||
|
||||
(* for now this is just a call site, but in the future we may add input access path, output kind,
|
||||
etc. depending on what we need *)
|
||||
type t =
|
||||
{
|
||||
site : CallSite.t;
|
||||
}
|
||||
|
||||
let make site =
|
||||
{ site }
|
||||
|
||||
let compare pt1 pt2 =
|
||||
(match pt1, pt2 with
|
||||
| {site=site1}, {site=site2} -> CallSite.compare site1 site2
|
||||
)[@warning "+9"]
|
||||
|
||||
let pp fmt s =
|
||||
F.fprintf fmt "%a" CallSite.pp s.site
|
||||
|
||||
module Set = PrettyPrintable.MakePPSet(struct
|
||||
type nonrec t = t
|
||||
let compare = compare
|
||||
let pp_element = pp
|
||||
end)
|
@ -0,0 +1,20 @@
|
||||
(*
|
||||
* Copyright (c) 2016 - 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 F = Format
|
||||
|
||||
type t
|
||||
|
||||
val make : CallSite.t -> t
|
||||
|
||||
val compare : t -> t -> int
|
||||
|
||||
val pp : F.formatter -> t -> unit
|
||||
|
||||
module Set : PrettyPrintable.PPSet with type elt = t
|
@ -0,0 +1,16 @@
|
||||
(*
|
||||
* Copyright (c) 2016 - 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 type S = sig
|
||||
include TraceElem.S
|
||||
|
||||
val to_callee : t -> CallSite.t -> t
|
||||
(** ith param * ith source kind *)
|
||||
val get : CallSite.t -> (int * t) list
|
||||
end
|
@ -0,0 +1,19 @@
|
||||
(*
|
||||
* Copyright (c) 2016 - 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 type S = sig
|
||||
include TraceElem.S
|
||||
|
||||
val is_footprint : t -> bool
|
||||
val to_return : t -> CallSite.t -> t
|
||||
val make_footprint : CallSite.t -> t
|
||||
|
||||
(** ith return value * ith sink kind *)
|
||||
val get : CallSite.t -> (int * t) list
|
||||
end
|
@ -0,0 +1,26 @@
|
||||
(*
|
||||
* Copyright (c) 2016 - 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 F = Format
|
||||
|
||||
module type S = sig
|
||||
type kind
|
||||
type t
|
||||
|
||||
val call_site : t -> CallSite.t
|
||||
val kind : t -> kind
|
||||
val is_empty : t -> bool
|
||||
|
||||
val make : kind -> CallSite.t -> t
|
||||
val make_empty : CallSite.t -> t
|
||||
|
||||
val compare : t -> t -> int
|
||||
val equal : t -> t -> bool
|
||||
val pp : F.formatter -> t -> unit
|
||||
end
|
Loading…
Reference in new issue