Module Pulselib__PulseAccessResult
module AbductiveDomain = Pulselib.PulseAbductiveDomain
type 'astate error
=
|
PotentialInvalidAccess of
{
astate : 'astate;
address : Pulselib.PulseBasicInterface.AbstractValue.t;
must_be_valid : Pulselib.PulseBasicInterface.Trace.t * Pulselib.PulseBasicInterface.Invalidation.must_be_valid_reason option;
}
|
PotentialInvalidAccessSummary of
{
astate : AbductiveDomain.summary;
address : Pulselib.PulseBasicInterface.AbstractValue.t;
must_be_valid : Pulselib.PulseBasicInterface.Trace.t * Pulselib.PulseBasicInterface.Invalidation.must_be_valid_reason option;
}
|
ReportableError of
{
astate : 'astate;
diagnostic : Pulselib.PulseBasicInterface.Diagnostic.t;
}
|
ReportableErrorSummary of
{
astate : AbductiveDomain.summary;
diagnostic : Pulselib.PulseBasicInterface.Diagnostic.t;
}
|
ISLError of 'astate
type ('a, 'astate) base_t
= ('a, 'astate error) IStdlib.IStd.result
type 'a t
= ('a, AbductiveDomain.t) base_t
type 'astate abductive_error
=[
|
`ISLError of 'astate
|
`PotentialInvalidAccess of 'astate * Pulselib.PulseBasicInterface.AbstractValue.t * (Pulselib.PulseBasicInterface.Trace.t * Pulselib.PulseBasicInterface.Invalidation.must_be_valid_reason option)
|
`PotentialInvalidAccessSummary of AbductiveDomain.summary * Pulselib.PulseBasicInterface.AbstractValue.t * (Pulselib.PulseBasicInterface.Trace.t * Pulselib.PulseBasicInterface.Invalidation.must_be_valid_reason option)
]
Intermediate datatype since
AbductiveDomain
cannot refer to this module without creating a circular dependency.Purposefully omits
`MemoryLeak
errors as it's a good idea to double-check if you really want to report a leak.
val of_abductive_error : [< 'astate abductive_error ] -> 'astate error
val of_abductive_result : ('a, [< 'astate abductive_error ]) IStdlib.IStd.result -> ('a, 'astate) base_t
val of_abductive_access_result : Pulselib.PulseBasicInterface.Trace.t -> ('a, [< `InvalidAccess of Pulselib.PulseBasicInterface.Invalidation.t * Pulselib.PulseBasicInterface.Trace.t * 'astate | 'astate abductive_error ]) IStdlib.IStd.result -> ('a, 'astate) base_t
val ignore_memory_leaks : (AbductiveDomain.summary, [< `MemoryLeak of AbductiveDomain.summary * IR.Procname.t * Pulselib.PulseBasicInterface.Trace.t * IBase.Location.t | AbductiveDomain.summary abductive_error ]) IStdlib.IStd.result -> (AbductiveDomain.summary, [> AbductiveDomain.summary abductive_error ]) IStdlib.IStd.result