Source.Make
include TaintTraceElem.S with module Kind = Kind
include Ppx_compare_lib.Comparable.S with type t := t
val compare : t Base__Ppx_compare_lib.compare
include Ppx_compare_lib.Equal.S with type t := t
val equal : t Base__Ppx_compare_lib.equal
module Kind = Kind
val call_site : t -> CallSite.t
val make : ?indexes:IStdlib.IntSet.t -> Kind.t -> CallSite.t -> t
val with_callsite : t -> CallSite.t -> t
val pp : Absint.TaintTraceElem.F.formatter -> t -> unit
module Set : IStdlib.PrettyPrintable.PPSet with type elt = t
type spec = {
source : t;
type of the returned source
*)index : int option;
index of the returned source if Some; return value if None
*)}
val get :
caller_pname:IR.Procname.t ->
CallSite.t ->
HilExp.t list ->
IR.Tenv.t ->
spec list
return Some (taint spec) if the call site with the given actuals is a taint source, None otherwise
val get_tainted_formals :
IR.Procdesc.t ->
IR.Tenv.t ->
(IR.Mangled.t * IR.Typ.t * t option) list
return each formal of the function paired with either Some(source) if the formal is a taint source, or None if the formal is not a taint source