Module Split_return

module Split_return: sig .. end
This module is used to merge together the final states of a function according to a given strategy. Default is to merge all states together

type split_strategy = 
| NoSplit
| SplitEqList of Datatype.Big_int.t list
module SplitStrategy: Datatype.Make_with_collections(sig
type t = Split_return.split_strategy 
val name : string
val rehash : 'a -> 'a
val structural_descr : Structural_descr.t
val reprs : Split_return.split_strategy list
val compare : Split_return.split_strategy -> Split_return.split_strategy -> int
val equal : 'a -> 'a -> bool
val hash : Split_return.split_strategy -> int
val copy : 'a -> 'a
val internal_pretty_code : 'a -> 'b
val pretty : Format.formatter -> Split_return.split_strategy -> unit
val varname : 'a -> string
val mem_project : 'a -> 'b -> bool
end)
module ReturnUsage: sig .. end
module AutoStrategy: State_builder.Option_ref(ReturnUsage.RUDatatype)(sig
val name : string
val dependencies : State.t list
end)
module KfStrategy: Kernel_function.Make_Table(SplitStrategy)(sig
val size : int
val dependencies : State.t list
val name : string
end)
val strategy : KfStrategy.key -> KfStrategy.data
val default : State_set.t -> Cvalue.Model.t list
val split_eq_aux : Kernel_function.t ->
Cil_types.lval ->
Abstract_interp.Int.t ->
Cvalue.Model.t list -> Cvalue.Model.t * Cvalue.Model.t list
val split_eq_multiple : Kernel_function.t ->
Cil_types.lval ->
Abstract_interp.Int.t list -> State_set.t -> Cvalue.Model.t list
val join_final_states : Kernel_function.t ->
return_lv:(Cil_types.lhost * Cil_types.offset) option ->
State_set.t -> Cvalue.Model.t list
Join the given state_set. The strategy is defined according to the name of the function.