You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
1.1 KiB

(*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
open! IStd
open PulseBasicInterface
open PulseDomainInterface
val apply_prepost :
is_isl_error_prepost:bool
-> Procname.t
-> Location.t
-> callee_prepost:AbductiveDomain.t
-> captured_vars_with_actuals:(Var.t * ((AbstractValue.t * ValueHistory.t) * Typ.t)) list
-> formals:Var.t list
-> actuals:((AbstractValue.t * ValueHistory.t) * Typ.t) list
-> AbductiveDomain.t
-> ( AbductiveDomain.t
* (AbstractValue.t * ValueHistory.t) option
* (AbstractValue.t * ValueHistory.t) AbstractValue.Map.t )
AccessResult.t
SatUnsat.t
(** result of applying one pre/post pair of a callee's summary:
- {!SatUnsat.Unsat} if that path in the callee is infeasible
- otherwise, there can be an error detected
- otherwise, the result is a new abstract state, an optional return value, and a substitution
[callee_abstract_value -> caller_abstract_value] mapping callee's abstract values to what they
became in the new (caller) state *)