You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
1.1 KiB

(*
* 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.
*)
(** Suffix of a normal trace: just sinks and passthroughs, but no sources *)
module type S = sig
include Trace.S
(** A path from some procedure via the given passthroughs to the given call stack, with
passthroughs for each callee *)
type sink_path = Passthrough.Set.t * (Sink.t * Passthrough.Set.t) list
(** get a path for each of the reportable flows to a sink in this trace *)
val get_reportable_sink_paths : t -> trace_of_pname:(Procname.t -> t) -> sink_path list
(** update sink with the given call site *)
val with_callsite : t -> CallSite.t -> t
end
module MakeSink (TraceElem : TraceElem.S) :
Sink.S with module Kind = TraceElem.Kind and type t = TraceElem.t
module Make (TraceElem : TraceElem.S) :
S with module Source = Source.Dummy and module Sink = MakeSink(TraceElem)