Module InferModules__BufferOverrunTrace

module F = Stdlib.Format
module BoTrace : sig ... end
module Set : sig ... end
module Issue : sig ... end
include BoTrace
type lib_fun =
| Snprintf
| Strndup
| Vsnprintf
val compare_lib_fun : lib_fun -> lib_fun -> int
type final =
| UnknownFrom of InferIR.Typ.Procname.t option
val compare_final : final -> final -> int
type elem =
| ArrayDeclaration
| Assign of InferModules.AbsLoc.PowLoc.t
| Global of InferModules.AbsLoc.Loc.t
| Parameter of InferModules.AbsLoc.Loc.t
| Through of {
risky_fun : lib_fun option;
}
val compare_elem : elem -> elem -> int
type t =
| Empty
| Final of {
location : InferBase.Location.t;
kind : final;
}
| Elem of {
location : InferBase.Location.t;
length : int;
kind : elem;
from : t;
}
| Call of {
location : InferBase.Location.t;
length : int;
caller : t;
callee : t;
}
val compare : t -> t -> int
val snprintf : lib_fun
val strndup : lib_fun
val vsnprintf : lib_fun
val length : t -> int
val compare : t -> t -> Core_kernel__.Import.int
val final : InferBase.Location.t -> final -> t
val add_elem : InferBase.Location.t -> elem -> t -> t
val singleton : InferBase.Location.t -> elem -> t
val through : risky_fun:lib_fun option -> elem
val call : InferBase.Location.t -> caller:t -> callee:t -> t
val pp_pname_opt : F.formatter -> InferIR.Typ.Procname.t option -> unit
val pp_location : Stdlib.Format.formatter -> InferBase.Location.t -> unit
val pp_lib_fun : F.formatter -> lib_fun -> unit
val pp_final : F.formatter -> final -> unit
val pp_elem : F.formatter -> elem -> unit
val pp : F.formatter -> t -> unit
val pp_arrow : F.formatter -> t -> unit
val final_exists : f:(final -> bool) -> t -> bool
val has_unknown : t -> bool
val elem_has_risky : elem -> bool
val has_risky : t -> bool
val exists_str : f:(string -> bool) -> t -> bool
val final_err_desc : final -> string
val elem_err_desc : elem -> string
val make_err_trace : int -> t -> InferIR.Errlog.loc_trace_elem list -> InferIR.Errlog.loc_trace_elem list