Module Pulselib.PulseDiagnostic

module Invalidation = PulseInvalidation
module Trace = PulseTrace
module ValueHistory = PulseValueHistory
type t =
| AccessToInvalidAddress of {
invalidation : Invalidation.t;
invalidation_trace : Trace.t;
access_trace : Trace.t;
}
| MemoryLeak of {
procname : IR.Procname.t;
allocation_trace : Trace.t;
location : IBase.Location.t;
}
| StackVariableAddressEscape of {
variable : IR.Var.t;
history : ValueHistory.t;
location : IBase.Location.t;
}

an error to report to the user

val get_message : t -> string
val get_location : t -> IBase.Location.t
val get_issue_type : t -> IBase.IssueType.t
val get_trace : t -> IR.Errlog.loc_trace