Module BufferOverrunTrace.Issue

Trace set with issue information

include IStdlib.PrettyPrintable.PrintableOrderedType
include IStdlib.IStd.Caml.Set.OrderedType
type t
val compare : t -> t -> int
include IStdlib.PrettyPrintable.PrintableType with type t := t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
type binary =
  1. | ArrayAccess
  2. | Binop
val binary : IBase.Location.t -> binary -> Set.t -> Set.t -> t

Construct issue trace of binary operation. When binary is ArrayAccess, the former Set.t typed parameter is offset and the latter is length of array access.

val alloc : IBase.Location.t -> Set.t -> t

Construct issue trace of allocation

val call : IBase.Location.t -> Set.t -> t -> t

Merge caller's trace set and callee's issue, i.e., call location caller callee

val has_unknown : t -> bool

Check if the issue trace includes unknown function calls

val exists_str : f:(string -> bool) -> t -> bool

Check if the issue trace includes an abstract location that satisfies f

val make_err_trace : description:string -> t -> (string * Absint.Errlog.loc_trace) list

Convert to the common Errlog format. The return value is a list of labelled Errlog.loc_traces.